Fiware IDM: динамический ресурс разрешений

Я развернул приложение, основанное на универсальных активаторах Fiware, в Docker. Версии:

  • Орион 1.14
  • Лебедь 1.9.0
  • Авторизация 5.4.1
  • Кейрок: последний
  • Пеп-прокси: 7.0.1

но когда я хочу создать разрешение в keyrock, я не могу найти конкретный синтаксис или последовательность символов для ввода динамического ресурса в поле ресурса, например: /resource1/<user>/info, или указать только префикс ресурса, например: /resource2/<whatever>.

пример динамического ресурса

Действительно ли существует синтаксис для динамического ресурса, и authzforce может создавать разрешения, связанные с динамическим ресурсом, или необходимо создать правило XACML?


person Sevastián Ríos    schedule 13.07.2018    source источник
comment
В настоящее время это не поддерживается с использованием формата глагола/ресурса. Вы можете реализовать его, настроив расширенное правило XACML.   -  person Álvaro Alonso    schedule 16.07.2018
comment
Удачи с этим! В сообществе Fiware практически нет документации по этому поводу. Вы можете начать искать, как Fiware IdM хранит правила Verb + PATH в Authzforce (поскольку он фактически преобразует каждое из этих правил в политики XACML, по крайней мере, так это работало, когда он был основан на проекте Openstack Keystone), а затем генерирует свои собственные Политика XACML. Мне жаль, что я не могу помочь вам больше, чем это.   -  person Emiliano Viotti    schedule 21.08.2018


Ответы (1)


Да, необходимо создать расширенное правило XACML. Например, вы можете просмотреть шаблон правила XACML в исходном коде IDM, который используется для генерации базового правила (для статического пути к ресурсу); вам придется настроить его (помимо удаления кода шаблона <%...%>), особенно изменить элементы Target и Condition (используйте функцию string-concatenate XACML для динамического создания строки /resource1/{param}/info).

Другая трудность заключается в том, чтобы получить значение {param} в PEP и убедиться, что оно отправлено в запросе XACML на AuthzForce PDP. Pep-proxy получает/отправляет только следующие атрибуты XACML, как видно из ссылки Код клиента Authzforce Пепа (имена сокращены для краткости): идентификатор ресурса, идентификатор подресурса, идентификатор действия, роль субъекта. Поэтому, если вы хотите, чтобы идентификатор пользователя был, например, {param}, вам нужно изменить только что упомянутый Pep-код, т. е. извлечь идентификатор пользователя из переменной userInfo и добавить соответствующий атрибут XACML (идентификатор субъекта) в запрос. Или используйте свой собственный Пеп и делайте, что хотите, конечно.

person cdan    schedule 30.08.2018