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

In wso2 IS XACML policy how to validate role and its permissions

在 wso2 身份服务器中如何添加自定义权限,如角色用户操作关联权限创建、更新、删除。我怎样才能创建这样的权限。

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

我已经根据主题名称使用 Standard Policy Editor 创建了一个 XACML 策略,该主题名称是我正在获取角色属性并正在验证的用户名,但是我如何使用 XACML 验证与其关联的权限。是否可以在 wso2 XACML 策略中实现此用例?

您可以通过多种方式向 WSO2 身份服务器添加自定义权限。 .

中给出了这些方法

WSO2 身份服务器中定义了一个 XACML 函数 urn:oasis:names:tc:xacml:1.0:function:eval-permission-tree。这可用于验证用户的权限。 此函数需要两个输入。

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

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

在 WSO2 身份服务器中,有一个关于使用此功能的示例 XACML 策略。如果您登录到 Identity Server 的管理控制台,样本的名称为 evaluate_permission_tree_policy,位于 Main > Entitlement > PAP > Policy Administration

您可以通过 Main > Registry > Browse

参考 Identity Server 的注册表来获取权限字符串

我假设您想从 XACML 策略中验证给定角色的权限。根据当前的实现,函数 eval-permission-tree 只检查给定的用户是否被授权。 [1] 为实现您的要求,您可以编写自己的扩展 EvalPermissionTreeFunction class 的 XACML 函数。 此博客[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