Отказ от ответственности: я работаю в Axiomatics, поставщике реализации XACML
Хранение логики авторизации, если вы пойдете своим путем, может быть выполнено либо в СУБД, либо в базе данных XML. Это не имеет значения. Я сомневаюсь, что XML даст вам какие-либо дополнительные возможности.
Теперь, если вам нужна система авторизации, которая может обслуживать системы РСУБД и другие типы приложений (CRM, .NET, Java...), вам нужно использовать решение, которое независимо от тип приложения, которое он защищает. Это цель XACML, расширяемого языка разметки управления доступом.
XACML обеспечивает управление доступом на основе атрибутов и политик (ABAC и PBAC). Это дает вам возможность писать чрезвычайно выразительные политики авторизации и управлять ими централизованно в одном репозитории. Затем центральный механизм авторизации (называемый Policy Decision Point или PDP) будет предоставлять решения вашим различным приложениям.
Как указывает Белл, минимальный набор атрибутов, который вам понадобится, обычно включает атрибуты о пользователе (Subject), ресурсе и действии. XACML также позволяет добавлять атрибуты среды. Это означает, что вы можете написать следующий тип политики:
Врачи могут просматривать медицинские записи пациентов, которым они назначены.
- Врачи описывает пользователя/субъект
- представление описывает действие
- медицинские записи описывает целевой ресурс
- пациентов также описывает целевой ресурс. Это метаданные о ресурсе
- они назначены — интересный случай. Это атрибут, который определяет отношения между врачом и пациентом. В ABAC это реализовано как doctor.id==patient.assignedDoctorId. Это одно из ключевых преимуществ использования XACML.
Преимущества XACML включают в себя: - возможность внедрить логику авторизации, как упоминалось Беллом - возможность обновлять логику авторизации, не проходя жизненный цикл разработки/развертывания - возможность реализации мелкозернистой авторизации одинаковым образом для многих различных приложений - возможность иметь видимость и аудит логики авторизации
ХТН
person
David Brossard
schedule
30.06.2013