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

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

  • Орион 1.14
  • Лебедь 1.9.0
  • Authzforce 5.4.1
  • Keyrock: последний
  • Пеп-прокси: 7.0.1

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

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

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

1 ответ

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

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

Другие вопросы по тегам