Я рассмотрел ваш вопрос и ваши комментарии в этой теме.Я понимаю, что вы новичок в XACML в целом.Имея это в виду, я постараюсь поднять ваше понимание XACML и как интегрировать GeoXACML или вообще реализовать географические ограничения в вашей политике в моем ответе.
Понимание XACML
Язык политики XACML столь же выразителен, как и естественный язык.Например, рассмотрим следующее предложение:
Джейн Доу хочет просматривать конфиденциальный документ на работе в рабочее время.
Подобное предложение включает четыре грамматических строительных блока:
- тема
- действие
- ресурс
- среда, в которой выполняется запрос
Каждыйиз этих «строительных блоков» можно описать с помощью атрибутов.
Чтобы создать политики авторизации для организации, вам необходимо получить требования от лиц, ответственных за определение политик информационной безопасности.
Далее вы должны взять политики, предоставленные персоналом, ответственным за политику авторизации, и определить атрибуты.
Обычно мы рассматриваем определение:
Краткое имя: удобное для пользователя имя атрибута, например, роли или гражданства.Это имя обычно отображается в редакторах и средствах отчетности.
Пространство имен: контекст, к которому относится атрибут.Пространство имен следует обратному соглашению об именовании имен доменов, как мы используем в Java.Итак, если у нас есть com.organization.user, мы можем добавить короткое имя, например роль, для создания полностью квалифицированного идентификатора атрибута XACML com.organization.role.
Категория: концепция, котораяприходит прямо из XACML, в котором говорится, что атрибут всегда принадлежит категории.Существует 4 часто используемых категории: субъект, действие, ресурс и окружение;они определены в шаге 2 нашего учебника.
Тип данных: классификация данных.Значения атрибутов могут быть разных типов в XACML.Чаще всего используются строковые, целые и логические значения.На выбор доступно более дюжины типов данных.
Диапазон значений: необязательное поле для указания шаблона или диапазона предоставленных значений.Значения атрибута могут быть совершенно случайными (например, имя пользователя).Другие относятся к фиксированному списку значений, например, именам состояний или шаблону, например, почтовым индексам.
Для получения дополнительной информации о внедрении ABAC в организации, пожалуйста, прочитайте сообщение в блоге, которое я написал на моемВеб-сайт работодателя здесь: https://www.axiomatics.com/blog/intro-to-attribute-based-access-control-abac/
У меня также есть статья в моем личном блоге , основанная на вопросе StackOverflow: " Как авторизовать определенные ресурсы на основе пользователей, которые их создали в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
- DataType
- FunctionId
- MatchId
- ObligationId
- AdviceId
- PolicyCombiningAlgId
- RuleCombiningAlgId
- StatusCode
- SubjectCategory
Вы можете следить за любымвопросы здесь на StackOverflow или через контактные страницы на предоставленных веб-сайтах.
Best, Michael