Идентификация WSO2 / Как зарегистрировать расширение XACML PIP Java и его требования

Просматривая документацию WSO2 и несколько блогов, я обнаружил три разных типа механизмов реестра для добавления новых утверждений в модуль Java PIP:

  1. С помощью установочного файла с именемentitlement.properties и путем добавления статических свойств Java для каждой переменной, как описано в примере из руководства WSO2, см.: Написание пользовательской информационной точки политики;

  2. С помощью supportedAttributesIds.add, как описано в ссылке Как написать точку PIP для WSO2 IS;

  3. С помощью метода установки: public Set getSupportedIds() { Set<String> ids = new HashSet<String>(); ids.add("http://kmarket.com/id/role"); return ids; } как описано в сообщении Stackoverflow Как добавить пользовательский атрибут в хранилище атрибутов PIP

Укажите, какой из трех вариантов является обновленным и рекомендуемым решением для добавления новых полей, созданных при поиске внешних источников данных, выполняемых Balana PIP в качестве расширения класса «AttributeFinderModule».

Я также протестировал код, опубликованный в этом примере, и скомпилировал его с помощью Java 6 JDK, см. ссылку на источник Как добавить определяемый пользователем атрибут в пользовательское хранилище атрибутов PIP После перезапуска сервер WSO2 продолжает отображать следующую ошибку:

Error while loading entitlement policies. Exception occurred while trying to invoke service method getAllPolicies
The following error details are available. Please refer logs for more details.
org.apache.axis2.AxisFault: Exception occurred while trying to invoke service method getAllPolicies
at org.wso2.carbon.identity.entitlement.ui.client.EntitlementPolicyAdminServiceClient.handleException(EntitlementPolicyAdminServiceClient.java:478)
at org.wso2.carbon.identity.entitlement.ui.client.EntitlementPolicyAdminServiceClient.getAllPolicies(EntitlementPolicyAdminServiceClient.java:81)
at org.apache.jsp.entitlement.index_jsp._jspService(org.apache.jsp.entitlement.index_jsp:183)

при добавлении расширенного расширения Java AttributeFinder. Это известная ошибка на сервере WSO2?


person Claude Falbriard    schedule 15.09.2015    source источник
comment
Вы также можете использовать Axiomatics Services Manager, который позволяет редактировать PIP во время выполнения на лету. Вам не нужно редактировать какой-либо файл свойств, и вам не нужно перезапускать PDP.   -  person David Brossard    schedule 16.09.2015


Ответы (2)


Первый способ настраивается, вам не нужно перестраивать и развертывать PIP, когда вы хотите добавить новый атрибут. Вам просто нужно добавить их в entitlement.properties файл. и перезапустите ИС.

Другими двумя способами вам придется перестраивать модуль PIP для каждого изменения атрибута.

Но если вы собираетесь добавлять и атрибутировать, вы также должны реализовать логику для этого, поэтому в этом случае также имеет смысл использовать последние два способа.

person Abimaran Kugathasan    schedule 15.09.2015
comment
После активации кода расширения PIP по примеру 1. и с помощью строки: PIP.AttributeDesignators.Designator.2=com.red.carbon.pip.RedAttributeFinder в entitlement.properties я получаю общую ошибку в механизме XACML , сообщение: Ошибка при загрузке политик прав. org.apache.axis2.AxisFault: Исключение при попытке вызвать службу. В журнале wso2carbon.log не было обнаружено сообщений об ошибках. Мой вопрос: как лучше всего изолировать ошибки в коде PIP и его расширениях и где область журнала используется подпрограммой? - person Claude Falbriard; 16.09.2015
comment
Упрощенный пример с исходным кодом, который расширяет PIPAttributeFinder, был бы очень полезен, особенно код, который был протестирован на текущей версии 5 WSO2 IS, работающей с Balana XACML V3. Мы планируем использовать веб-службы вместо поиска ресурсов базы данных. Также сообщите о дополнительных библиотеках .jar (зависимостях), которые необходимо поместить в ‹IS-HOME›/repository/components/lib, и рекомендации по активации и отладке регистратора. - person Claude Falbriard; 17.09.2015
comment
Тестирование инструкций после примера 3) PAP WSO2 отображает ошибку при загрузке и импорте трех примеров политик: [ kmarket-blue-policy.xml, kmarket-silver-policy.xml, kmarket-gold-polixy.xml], отображается следующее сообщение об ошибке: Ошибка загрузки политики. Недопустимая политика прав. Политика недействительна в соответствии со схемой XACML. - person Claude Falbriard; 22.09.2015

Я заменил программный модуль KmarketPIPAttributeFinder последней версией из исходного репозитория svn (см. ссылку ниже) и скомпилировал его. Это решило проблему в WSO2 Identity Server версии 5, и подпрограмма начала регистрировать атрибуты PIP, которые теперь видны в расширениях PDP.

Загрузите последний код со страницы: https://svn.wso2.org/repos/wso2/carbon/platform/trunk/components/identity/org.wso2.carbon.identity.samples.entitlement.pip/src./main/java/org/wso2/carbon/identity/samples/entitlement/pip/KmarketPIPAttributeFinder.java

person Claude Falbriard    schedule 23.09.2015
comment
Похоже, это больше не работает с версией 5.11.0. - person Florian R. Klein; 08.02.2021