XACML选择角色授权示例-XACML for RBAC

XACML selected role authorization example - XACML for RBAC

我正在使用带有 XACML 的 WSO2 身份服务器进行授权。

我有一些用户在 IS 中担任多个角色。用户必须 select 其中之一才能进入应用程序。所以我只需要授予用户所有角色之一。

我使用 EntitlementServiceport.getDecisionByAttributes(subject, resource, action, environment); 通过 SOAP WS 请求 XACML 中定义的策略。主题是用户名。但它授予,因为它使用所有用户的角色。

示例:

peter进入应用程序并且selectrolenotgranted它应该不访问 资源。

peter 进入应用程序并且 select rolegranted 它应该 access资源。

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

谢谢

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

我终于满足了在 getDecisionByAttributes 方法的主题参数中传递角色的要求。 WSO2 IS不检查这个主题是否存在,所以我可以在这里传递任何东西并在策略规则中测试它。