Как упоминал Дэвид, XACML можно использовать на уровне базы данных для фильтрации.
Реализация XACML для базы данных
Диаграмма ниже для SQL, но может использоваться в качестве общего примера для любой технологии базы данных.
Посмотрим, как это работает:
- Оператор SQL перехвачен.
- Запрос отправляется во внешнюю службу авторизации, которая реализует XACML
- Механизм авторизации (PDP) оценивает соответствующие политики, написанные на XACML или ALFA (реализация XACML).
- Может запрашивать внешние источники атрибутов (PIP) для получения дополнительной информации.
- Результат: оператор SQL динамически изменяется, чтобы получать только авторизованные данные для пользователя.
Как это будет использоваться в приложении
Реализация XACML, которую вы выбрали, в идеале должна иметь SDK на вашем языке или поддерживать профиль XACML REST. Любой из них будет работать для интеграции в ваше приложение.
Учитывая, что вы используете вызовы REST, я не думаю, что вам пришлось бы добавлять много кода для интеграции вашего приложения с реализацией XACML.
Реализация XACML для шлюза API
Принцип, используемый в этой интеграции, заключается в способности шлюза API вызывать сторонние службы.
В этом случае сторонней службой является точка принятия решения (PDP) реализации XACML. Реализация должна поддерживать REST / JSON.
Шлюз API настроен на отправку подробных запросов авторизации на PDP.
Запросы выполняются с использованием интерфейса REST / JSON, предоставляемого PDP. Затем PDP возвращает ответ.
Профиль JSON в XACML расширяет схему запроса / ответа, позволяя кодировать как запрос, так и ответ в JSON вместо традиционной кодировки XML. Это делает запрос и ответ намного проще для чтения, а также намного меньше по размеру, что позволяет передавать меньше данных.
Реализации XACML
Полный список реализаций XACML, , вы можете проверить этот список в Википедии .
Полное раскрытие. Я работаю над Axiomatics с Дэвидом Броссаром, который разработал профиль JSON для XACML, который будет использоваться вместе с профилем REST.
Axiomatics обеспечивает Аксиоматический фильтр доступа к данным для реляционных баз данных и SmartGuard для HADOOP . Axiomatics Policy Server изначально поддерживает профили JSON и REST.