Warm tip: This article is reproduced from serverfault.com, please click

authorization-在wso2 IS XACML策略中,如何验证角色及其权限

(authorization - In wso2 IS XACML policy how to validate role and its permissions)

发布于 2020-12-01 13:09:55

在wso2身份服务器中,如何添加自定义权限,例如为角色useroperation关联权限创建,更新,删除。我如何创建这样的权限。

如何通过使用XACML策略中的角色和权限来使用那些分配的权限进行验证。

我已经Standard Policy Editor基于使用者名称创建了XACML策略,使用者名称是用户名,我正在获取角色属性并进行验证,但是如何使用XACML验证与其相关的权限。是否可以在wso2 XACML策略中实现此用例?

Questioner
rahul
Viewed
0
2020-12-03 08:56:13

你可以通过多种方式向WSO2 Identity Server添加自定义权限。这些方法在此答案中给出

在WSO2 Identity Server中定义了XACML函数,如urn:oasis:names:tc:xacml:1.0:function:eval-permission-tree这可以用来验证用户的权限。此功能需要两个输入。

 1.所需的权限字符串(例如:/ permission / admin / login)

 2.主题或权限经过验证的用户

在WSO2 Identity Server中,有使用此功能的示例XACML策略。如果登录到Identity Server的管理控制台,则该示例的名称为“评估” / permission_tree_policy,位于“主要”>“授权”>“ PAP”>“策略管理”中。

你可以通过Main> Registry> Browse引用Identity Server的注册表来获取许可权字符串。 

我假设你想从XACML策略验证给定角色的权限。按照当前的实现,功能eval-permission-tree仅检查给定用户是否被授权。[1]为了满足你的要求,你可以编写自己的XACML函数来扩展EvalPermissionTreeFunction类。该博客[2]描述了如何编写自定义XACML函数并将其插入WSO2 IS。

[1] https://github.com/wso2/carbon-identity-framework/blob/master/components/entitlement/org.wso2.carbon.identity.entitlement/src/main/java/org/wso2/carbon/identity /entitlement/extension/EvalPermissionTreeFunction.java#L77

[2] https://pamodaaw.medium.com/custom-xacml-functions-for-wso2-identity-server-5-10-0-a91bc2ec673d