2014-03-05 70 views
2

我正在嘗試將wso2 API Manager (1.6.0)的最新版本與wso2 XACML module集成在一起。我發現並遵循了一步一步的非常有用的article。 不幸的是,PDP拒絕授權我的請求,即使我從PAP中刪除了所有我的策略並且沒有向PDP發佈策略。WSO2 API Manager和XACML集成不起作用

是他們的配置某處我失蹤? 我得到以下輸出

[2014-03-05 19:05:37,052] WARN - RequestCtxFactory No Namespace defined in XACML request and Assume as XACML 3.0 [2014-03-05 19:05:37,058] ERROR - EntitlementMediator org.apache.synapse.SynapseException: User is not authorized to perform the action [2014-03-05 19:05:37,059] INFO - LogMediator STATUS = Executing default 'fault' sequence, ERROR_CODE = 0, ERROR_MESSAGE = User is not authorized to perform the action

+0

請有一個政策,並使用內置的「嘗試它」工具來測試政策。這將幫助您找出XACML政策中的任何問題 – Nadeesha

回答

1

如果有在PDP沒有政策意味着,PDP將返回Not Applicable決定。因此,API經理的PEP認爲Not Applicable是拒絕決定。在XACML中有一個概念叫做Deny based PEP這意味着,除permit之外的所有結果都被視爲否定。因此要測試,您可以添加一些帶有許可規則和驗證的策略。如以下

<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" PolicyId="PermitPolicy" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable" Version="1.0"> <Target></Target> <Rule Effect="Permit" RuleId="Permit-Rule"></Rule> </Policy>

也將是有益的,如果你能在授權組件啓用調試日誌和檢查。因爲,你可以看到XACML請求和響應消息。

添加以下到log4j.properties文件

log4j.logger.org.wso2.carbon.identity.entitlement=DEBUG

您可以檢查this更多關於啓用調試日誌

一旦你得到了請求和響應。你驗證出了什麼問題。你也可以有一個tryit工具,不管你是否可以測試這些策略。

0

非常感謝您的快速和高效的支持。 我已經添加了您的「許可」規則,並且能夠在成功執行 策略驗證後訪問我的後端系統。這意味着這個循環已經關閉,昨天我非常簡單的政策就是問題的根源。 我必須詳細審查如何設置這些規則&定義。再次感謝您的幫助 問候 感謝 VPL

[2014年3月6日19:03:11637] DEBUG - 政策緩存EntitlementPolicyInvalidationCache我的哈希碼爲:1 [2014年3月6日19:03:11637 ] DEBUG - EntitlementPolicyInvalidationCache策略緩存的共享哈希碼是:1 [2014-03-06 19:03:11,638]調試 - SimplePolicyCollection匹配找到XACML策略找到PermitPolicy [2014-03-06 19:03:11,638] DEBUG - EntitlementBaseCache緩存:$ 本地 $ .PDP_DECISION_CACHE在tena中填入新條目 nt域:carbon.super [2014-03-06 19:03:11,639] DEBUG - EntitlementEngine XACML響應:許可證 [2014-03-06 19:03:11,641]調試 - EntitlementMediator權利決定是:許可證 [2014-03-06 19:03:11,643] DEBUG - EntitlementMediator用戶被授權執行操作 [2014 -03-06 19:03:11,644] DEBUG - EntitlementMediator OnAccept序列未定義。

+0

很高興聽到您已將其工作...另外如果你想了解更多關於XACML和授權功能的信息,請參考這個博客.. http://xacmlinfo.org/它包含很多細節..如果上面的回答正確,你可以接受它.. :) – Asela

相關問題