Поддержка ABAC для Spring Security или Apache Shiro

Я пытаюсь найти любую открытую или коммерческую реализацию парадигмы управления доступом на основе атрибутов (ABAC), которая будет работать вместе с платформами Spring Security или Apache Shiro. Сейчас я не могу найти ни одного из них. Я не думаю, что я первый, кому нужна такая функциональность, поэтому не могли бы вы порекомендовать фреймворки, которые ее поддерживают?

Кроме того, можно ли рассматривать разрешения в Apache Shiro как частный случай реализации парадигмы ABAC?


person alexanoid    schedule 15.08.2016    source источник


Ответы (4)


jCasbin — это мощная и эффективная библиотека управления доступом с открытым исходным кодом для проектов Java. . Он обеспечивает поддержку принудительной авторизации на основе различных моделей управления доступом. ABAC — одна из моделей, поддерживаемых jCasbin.
ABAC: синтаксический сахар как ресурс. Владелец может использоваться для получения атрибута ресурса.
В jCasbin модель управления доступом абстрагируется в файл CONF на основе метамодели PERM (политика, эффект, запрос, совпадения). Таким образом, переключить или обновить механизм авторизации для проекта так же просто, как изменить конфигурацию. Вы можете настроить собственную модель управления доступом, комбинируя доступные модели. Например, вы можете объединить роли RBAC и атрибуты ABAC в одной модели и использовать один набор правил политики.
Он поддерживает загрузку Spring через плагин: jcasbinspring-boott-plugin

Кроме того, существует еще один проект с открытым исходным кодом, который называется EasyAback. (Исходные документы проекта написаны на русском языке, я их перевел и, кроме того, добавил некоторые другие документы и схему ссылка)

person M-Razavi    schedule 02.01.2019
comment
@ColmBhandal спасибо, я обновил ссылку. - person M-Razavi; 16.06.2021

В этом примере github показано, как можно реализовать ABAC поверх среды Spring-Security с использованием Spring Expression Language (СПЕЛ). отличный блог описывает пример кода с помощью простого веб-приложение. Имея опыт работы с XACML, я обнаружил, что этот проект очень хорошо знаком с XACML. По сути, он отображает концепции XACML для определения политики в JSON (вместо XACML/XML) и использует знакомый API и структуру Spring-Security.

person Farrukh Najmi    schedule 27.08.2018

В качестве альтернативы Java с открытым исходным кодом вы можете найти несколько на странице XACML Википедии: AuthzForce , Apache OpenAZ, WSO2 Балана. Для AuthzForce вы можете найти образцы Java-кода фильтров авторизации ABAC/XACML, используя либо встроенный Java PDP или (удаленный) RESTful PDP.

person cdan    schedule 23.05.2017

Отказ от ответственности: я работаю в Axiomatics

Axiomatics предоставляет реализацию управления доступом на основе атрибутов (ABAC), которая интегрируется с различными средами:

  • Интеграция с родной Spring Security
  • интеграция с другими Java-приложениями через наш SDK и API
  • интеграция со шлюзами API, например. Апигей
  • безопасность базы данных

У нас были клиенты, которые интегрировались с Apache Shiro. Apache Shiro — это упрощенная форма ABAC. Их можно интегрировать с ABAC.

Реализация аксиоматики основана на XACML.

person David Brossard    schedule 17.08.2016