для доказательства концепции я хочу сохранить права. Я знаю, что существуют разные способы управления доступом (DAC, MAC, RBAC и т. д.). Моей первой идеей было использование базы данных, но я ищу более установленные стандарты, такие как XACML, но, к сожалению, я не смог найти реальных альтернатив. спасибо за любые советы!
Как хранить права? альтернативы XACML
Ответы (1)
Во-первых, сделайте шаг назад и посмотрите на сопоставимые товары.
В управлении доступом у вас есть разные модели, которые придумали со временем. Исторически у вас сначала были DAC и MAC. У вас было понятие списков управления доступом (также известных как управление доступом на основе идентификации или IBAC).
Затем внезапно одной личности пользователя стало недостаточно. Мы начали распределять пользователей по ролям и группам. Это привело к созданию RBAC или контроля доступа на основе ролей, который NIST формализовал в стандарт.
Перенесемся на 10+ лет вперед, и ролей уже недостаточно. ACL и RBAC слишком ориентированы на пользователя. Они не учитывают контекст или отношения. Они недостаточно мелкозернистые. Появляется новая модель под названием ABAC или управление доступом на основе атрибутов. NIST также находится в процессе стандартизации ABAC. ABAC способен реализовать любой тип требований к управлению доступом и может обслуживать атрибуты пользователя, ресурса, действия и контекста.
Вы можете прочитать больше о ABAC здесь.
Итак, что насчет XACML? XACML — расширяемый язык разметки управления доступом — является реализацией модели ABAC. Это наиболее распространенная реализация ABAC. Вы спрашиваете, есть ли альтернативы. Вот некоторые из них, которые приходят на ум:
- SecPal: это (было?) исследовательская инициатива Microsoft. Насколько мне известно, он не используется вне исследований.
- Permis — это модель управления доступом на основе политик. Он также не получил широкого распространения.
- У Microsoft есть собственный язык для Windows Server, который называется SDDL. Вы можете прочитать подробнее об этом от Microsoft.
Однако на практике большинство реализаций ABAC, которые я видел, используют XACML или смесь собственного кода + RBAC. Излишне говорить, что последний не очень хорошо масштабируется и его трудно поддерживать.
Если вы хотите узнать больше, ознакомьтесь со следующими ресурсами:
- мой личный блог
- мой личный SlideShare