Balana и WSO2 Identity Server дают разные результаты

У меня есть политика, и когда я запускаю запрос в WSO2 Identity Server, я получаю разрешение, как и ожидалось. Но когда я создаю другой пример политики из:

http://svn.wso2.org/repos/wso2/carbon/platform/tags/4.0.7/products/is/4.1.0/modules/distribution/conf/policies/sample-kmarket-sliver-policy.xml

И отправьте мой же запрос еще раз, я получаю следующую ошибку:

<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 этот искатель атрибутов уже был там с самим образцом

[1] http://svn.wso2.org/repos/wso2/carbon/platform/tags/4.0.7/components/identity/org.wso2.carbon.identity.samples.entitlement.pip/

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