1

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

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

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

4

1 回答 1

3

您可以通过多种方式将自定义权限添加到 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] 为了满足您的要求,您可以编写自己的 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

于 2020-12-01T18:38:37.793 回答