XACML选择了角色授权示例 - 用于RBAC的XACML

时间:2015-03-30 08:08:27

标签: wso2 wso2is xacml entitlements

我正在使用WSO2 Identity Server和XACML进行授权。

我的用户在IS中担任过多个角色。用户必须选择其中一个进入应用程序。因此,我需要仅根据其所有角色之一授予用户。

我使用 EntitlementService port.getDecisionByAttributes(subject, resource, action, environment);来向SOAP WS询问XACML中定义的策略。主题是用户名。但它授予它,因为它使用所有用户的角色。

示例:

  • 用户:彼得
  • 角色: rolegranted rolenotgranted ,otherrole

peter 进入应用并选择 rolenotgranted 时,无法访问该资源。

peter 进入应用并选择 rolegranted 时,访问该资源。

如何定义de XACML策略?我应该使用EntitlementService的哪个方法?

谢谢

2 个答案:

答案 0 :(得分:1)

实际上,您需要在PDP中编写基于角色的XACML策略。您正在使用的权利服务方法很好。您可以在XACML请求中发送用户名并使用用户存储验证用户的角色(通​​过PIP),我建议您浏览this博客。它解释了如何在WSO2IS中编写基于角色的XACML策略并使用它属性。

答案 1 :(得分:0)

我终于满足了在getDecisionByAttributes方法的主题arg中传递角色的要求。 WSO2 IS不会检查此主题是否存在,因此我可以在此处传递任何内容并在策略规则中对其进行测试。