Как реализовать управление доступом на основе атрибутов (ABAC) в переполнении стека

Я просто нахожу одну основу AT&Т, чтобы построить ABAC.

Эта структура использует XACML следующий формат XML для создания правил. Но этот фреймворк просто реализуем для Java.

Однако я работаю с PHP и использую JSON для написания правил.

Правильно ли мое решение? Можете ли вы предложить некоторые фреймворки или решения, поддерживающие PHP?

2

Решение

Чтобы завершить ответ Дэвида относительно AuthzForce: это открытый исходный код, совместимый с XACML 3.0 и обеспечивающий API Java (AuthzForce Core) и REST API для PAP и PDP. Таким образом, вы можете использовать REST API из вашей PHP-программы. API поддерживает формат XML и JSON для интерфейсов PAP и PDP. Однако мы не используем профиль JSON XACML для PDP. Вместо этого для всего API мы используем сопоставляются Конвенция, предоставленная Apache CXF. Такое соглашение допускает автоматический перевод из XML (точнее, внутренней производной от XML модели, используемой в коде реализации) в JSON, и наоборот, автоматически.

РЕДАКТИРОВАТЬ (2018-02-26):
AuthzForce Core и Server теперь поддерживают стандартный профиль JSON XACML для PDP. AuthzForce также предоставляет минимальный RESTful PDP основанный на Core, либо упакованный как приложение Spring-boot, либо просто реализация JAX-RS для повторного использования в любой среде JAX-RS.

3

Другие решения

AT&T рамки был R&D рамки, разработанные AT&T несколько лет назад, а затем выпустили в Apache. В соответствии с GitHub, это все еще активно. Я не знаю о коммерческом использовании продукта (хотя я подозреваю, что AT&Используй это сам).

Три основные структуры, используемые там:

  • WSO2 Балана. Это Java PDP с открытым исходным кодом. Он также входит в состав WSO2 Identity Server. Большинство пользователей открытого кода используют Balana.
  • SunXACML: это оригинальная реализация XACML 3.0. Это довольно старый, но крепкий (это было около 10 лет или около того). Это также с открытым исходным кодом и Java.
  • Axiomatics Policy Server. Это коммерческое решение (отказ от ответственности: я работаю для Аксиоматики). Это наиболее распространенное коммерческое решение. Он также реализован на Java, но поддерживает интеграцию и для PHP.

Вы можете найти эту информацию на Страница Википедии XACML. Есть еще один интересный движок под названием AuthZForce, но у меня мало опыта с ним.

Все эти механизмы, AFAIK, используют формат XML XACML для хранения политик. Вы утверждаете, что вам нужен JSON. В JSON отсутствует профиль политики XACML. Возник вопрос по теме, который вы можете читай здесь.

Учитывая, что Сервер политики Axiomatics представлен как JSON API, вы можете использовать его для интеграции с PHP. Другие двигатели, вероятно, имеют аналогичный подход. Если вы используете Amazon AWS, вы можете запросить копию Аксиоматический сервер политики AMI.

ABAC является технологически нейтральным, то есть не относится к Java, Ruby, .NET, PHP или любому другому языку. То, на чем написано ядро ​​PDP, не имеет отношения к тому, на чем написано ваше приложение, если вы можете интегрировать их вместе.

Надеюсь, это поможет,
Дэвид.

2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector