Система RBAC с двумя параметрами

0

Im ищет пример или лучшие практики для системы RBAC с двумя параметрами. Вместо того, чтобы просто иметь пользователя, связанного с ролью, и эту роль, связанную с группой разрешений; пользователь может быть связан с ролью "для конкретного проекта", и тогда пользователь может иметь разрешения этой роли только для этого проекта (или для других проектов, для которых пользователь выполняет эту роль). Пользователь может иметь определенную роль в одном проекте и другую роль в другом проекте; разрешения, предоставляемые роли, согласованы для каждого проекта; и разрешения пользователей для проекта основаны на роли, которую пользователь имеет в проекте.

(Если это имеет значение, я пытаюсь ограничить доступ к странице, когда содержимое страницы разрабатывается с помощью параметра запроса URL, который устанавливает идентификатор проекта через инструкцию GET.)

ABAC выглядит многообещающим, но у меня возникают проблемы с обволакиванием вокруг него. Я понимаю, что атрибут users определяет, имеет ли пользователь роль (и/или разрешения). В моем случае кажется, что я мог бы рассматривать проект как "пользователь", а мой пользователь как атрибут проекта (true, если мой пользователь имеет роль для этого проекта или false, если нет)

Теги:
rbac

1 ответ

0
Лучший ответ

Если вы хотите придерживаться стандарта RBAC, вам придется использовать разные роли для разных проектов. Например, если роль "admin" используется в проектах "P1" и "P2", вы можете создать роль "P1: admin" и другую роль "P2: admin".

ABAC - это еще одна возможность. Однако, если я правильно вас понимаю, неправильно утверждать, что "атрибут пользователя определяет, имеет ли пользователь роль (и/или разрешения)". В ABAC есть только атрибуты (в том смысле, что роли являются атрибутами), что обеспечивает большую гибкость, чем RBAC. В запросе вы можете иметь атрибут, представляющий проект ( "P1" или "P2" ), и другой атрибут, представляющий роль для этого конкретного проекта ( "admin" ). Правильно указанная политика сможет распознать, что вы ссылаетесь на роль "admin" как часть проекта "P1" , например.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню