Balana и WSO2 Identity Server дают разные результаты
У меня есть политика, и когда я запускаю запрос в WSO2 Identity Server, я получаю разрешение, как и ожидалось. Но когда я создаю другой пример политики из:
И отправьте мой же запрос еще раз, я получаю следующую ошибку:
<Response xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17">
<Result>
<Decision>Indeterminate</Decision>
<Status>
<StatusCode Value="urn:oasis:names:tc:xacml:1.0:status:missing-attribute"/>
<StatusMessage>Couldn't find AttributeDesignator attribute</StatusMessage>
<StatusDetail>
<MissingAttributeDetail AttributeId="http://kmarket.com/id/role" DataType="http://www.w3.org/2001/XMLSchema#string" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" ></MissingAttributeDetail>
</StatusDetail>
</Status>
</Result>
</Response>
По какой-то причине запрос выполняется в соответствии с этим примером политики вместо моей исходной политики. Теперь интересно то, что я скачал исходный код Balana (XACML Engine, используемый WSO2 Identity Server) и провел тесты с обоими политиками и моим запросом, и я получаю разрешение, как и ожидалось. Но когда я делаю то же самое в WSO2, он не работает, и я получаю неопределенную ошибку. Я попробовал и функцию "Попробуй", и "Оценить с помощью PDP" с одинаковыми результатами.
Вот запрос, который я использовал, почему он применяется к образцу политики, а не к моей первоначальной политике через WSO2, но не Balana?
<Request xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" CombinedDecision="false" ReturnPolicyIdList="false">
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action">
<Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" IncludeInResult="false">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">write</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject">
<Attribute AttributeId="urn:samhsa:names:tc:company:1.0:subject:provider-npi" IncludeInResult="false">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">1548797430</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:recipient-subject">
<Attribute AttributeId="urn:samhsa:names:tc:company:1.0:subject:provider-npi" IncludeInResult="false">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">1347570297</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:1.0:subject-category:purpose-of-use">
<Attribute AttributeId="urn:samhsa:names:tc:company:1.0:purpose-of-use-code" IncludeInResult="false">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">TREAT</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource">
<Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" IncludeInResult="false">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">@outlook.com</AttributeValue>
</Attribute>
</Attributes>
<Attributes Category="urn:oasis:names:tc:xacml:3.0:attribute-category:environment">
<Attribute AttributeId="urn:oasis:names:tc:xacml:1.0:environment:current-dateTime" IncludeInResult="false">
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#dateTime">2013-07-12T00:00:00-04:00</AttributeValue>
</Attribute>
</Attributes>
</Request>
1 ответ
По ошибке, похоже, что атрибут поиска не настроен. Я предполагаю, что у политики есть идентификатор атрибута с именем " http://kmarket.com/id/role", но его нет в запросе, поэтому вызывается поиск атрибутов. вам нужно зарегистрировать поиск атрибутов, чтобы поддержать его... Пожалуйста, найдите образец поиска атрибутов здесь [1]. В образце balana этот искатель атрибутов уже был там с самим образцом