Внедрите geo XACML с помощью Authzforce и разместите его на heroku
Я совершенно новичок в обеих темах. Может ли кто-нибудь помочь мне с пошаговыми руководствами по их реализации? Альтернатива им обоим также может быть предложена.
2 ответа
Сначала предупреждение: спецификация GeoXACML была написана как расширение XACML 2.0, поскольку это была последняя версия XACML в то время (последняя версия GeoXACML датируется 2011 годом). Теперь AuthzForce поддерживает только XACML 3.0. Тем не менее, в этом нет ничего сложного, термины и элементы модели XACML 2.0, используемые в GeoXACML, можно легко адаптировать к XACML 3.0 (в частности, мало изменений в схеме XACML). Если у вас есть проблемы с этим процессом, сообщите нам. Я настоятельно рекомендую в любом случае перейти на XACML 3.0, если вы все еще используете XACML 2.0.
Возвращаясь к первоначальному вопросу, предполагая, что вы согласны использовать GeoXACML с XACML 3.0, вы можете реализовать его в AuthzForce только с двумя типами расширений AuthzForce:
- Типы данных XACML: как следует из названия, это расширение, которое вы должны реализовать в AuthzForce для поддержки новых типов данных, определенных в разделе 6.3.1 спецификации GeoXACML v1.0.1. Смотрите вики-страницу на github-репозитории AuthzForce, чтобы узнать, как разработать такое расширение.
- Функции XACML: как следует из названия, это расширение, которое вы должны реализовать в AuthzForce для поддержки новых функций, определенных в разделе 6.3.2 спецификации GeoXACML v1.0.1. Смотрите вики-страницу на github-репозитории AuthzForce, чтобы узнать, как разработать такое расширение.
С этим, я думаю, вы покрыты.
Если у вас есть проблемы, связанные с AuthzForce при разработке расширений, используйте один из каналов поддержки, упомянутых на github (или проблемы с github).
Я рассмотрел ваш вопрос и ваши комментарии в этой теме. Я понимаю, что вы новичок в XACML в целом. Имея это в виду, я постараюсь поднять ваше понимание XACML и того, как интегрировать GeoXACML или вообще реализовать географические ограничения в вашей политике в моем ответе.
Понимание XACML
Язык политики XACML столь же выразителен, как и естественный язык. Например, рассмотрим следующее предложение:
Джейн Доу хочет просматривать конфиденциальный документ на работе в рабочее время.
Предложение, подобное этому, включает четыре грамматических строительных блока:
- предмет
- действие
- ресурс
- среда, в которой сделан запрос
Каждый из этих "строительных блоков" может быть описан с использованием атрибутов.
Чтобы создать политики авторизации для организации, вам необходимо получить требования от лиц, ответственных за определение политик информационной безопасности.
Затем вы должны принять политики, предоставленные персоналом, ответственным за политику авторизации, и определить атрибуты.
Мы обычно смотрим на определение:
Краткое имя: удобное имя атрибута, например, роль или гражданство. Это имя обычно отображается в редакторах и средствах отчетности.
Пространство имен: контекст, к которому относится атрибут. Пространство имен следует обратному соглашению об именовании имен доменов, как мы используем в Java. Таким образом, если у нас есть com.organization.user, мы можем добавить короткое имя, например role, для создания полностью квалифицированного идентификатора атрибута XACML com.organization.role.
Категория: концепция, которая пришла прямо из XACML и в которой говорится, что атрибут всегда принадлежит категории. Существует 4 часто используемых категории: субъект, действие, ресурс и окружение; они определены в шаге 2 нашего урока.
Тип данных: классификация данных. Значения атрибутов могут быть разных типов в XACML. Чаще всего используются строковые, целые и логические значения. Существует более десятка типов данных, доступных для выбора.
Диапазон значений: необязательное поле для указания шаблона или диапазона предоставленных значений. Значения атрибута могут быть совершенно случайными (например, имя пользователя). Другие принадлежат фиксированному списку значений, например, именам состояний или шаблону, например, почтовым индексам.
Для получения дополнительной информации о внедрении ABAC в организации, пожалуйста, ознакомьтесь с публикацией в блоге, которую я написал на веб-сайте моего работодателя: https://www.axiomatics.com/blog/intro-to-attribute-based-access-control-abac/
У меня также есть статья в моем личном блоге, основанная на вопросе Stackru: " Как авторизовать определенные ресурсы на основе пользователей, которые создали их в REST, используя аннотации?". Ответ дает еще один хороший обзор XACML и ABAC в целом.
Что касается GeoXACML и географических ограничений в целом
Я не уверен в вашем конкретном случае использования, но хочу упомянуть, что ipAddress - это тип данных в XACML, в случае, если он подходит для вашего случая использования (т. Е. Ваши системы сталкиваются с IP-адресами, которые не маршрутизируются через VPN или другие IP-адреса). методы запутывания и т. д.). Список типов данных можно найти здесь: http://docs.oasis-open.org/xacml/3.0/xacml-3.0-core-spec-os-en.html.
Я не знаю ни о каком программном обеспечении, которое предлагает GeoXACML из коробки с реализацией XACML корпоративного уровня. Мы, работодатель, можем предложить здесь, в Axiomatics, - расширить наше программное обеспечение, сервер политики Axiomatics, чтобы вы могли включить GeoXACML или даже другие географические функции на свой вкус. (Примечание. Когда мой коллега Дэвид Броссар в вышеприведенном комментарии предлагал вам "попробовать Axiomatics PS", это означало "Сервер политики Axiomatics".)
"X" в XACML обозначает расширяемый. И действительно, модель достаточно расширяема, чтобы предложить гибкость, необходимую для выполнения таких действий.
Базовая спецификация XACML версии 3.0 на самом деле содержит раздел, называемый точками расширения XACML, в котором перечислены все точки, в которых модель и схема XACML могут быть расширены с помощью новой семантики. Точки расширения:
- категория
- AttributeId
- Тип данных
- FunctionId
- MatchId
- ObligationId
- AdviceId
- PolicyCombiningAlgId
- RuleCombiningAlgId
- StatusCode
- SubjectCategory
Вы можете ответить на любые вопросы здесь, в Stackru или через страницы контактов на предоставленных веб-сайтах.
Лучший, Майкл