【问题标题】:In wso2 IS XACML policy how to validate role and its permissions在 wso2 IS XACML 策略中如何验证角色及其权限
【发布时间】:2020-12-01 13:09:55
【问题描述】:

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

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

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

【问题讨论】:

    标签: authorization wso2is xacml abac alfa


    【解决方案1】:

    您可以通过多种方式向 WSO2 身份服务器添加自定义权限。这些方法在这个answer中给出。

    在 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

    【讨论】:

    • 感谢您的回复!!,但是如果我想根据角色搜索权限,如果我在该创建、更新、视图下拥有名为 company_operation 的权限,是否有分配给多个角色,例如 createuser、createpolicy 等。在这种情况下,我如何查询具有创建/查看/更新等权限的用户角色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多