【问题标题】:Add permissions base on roles of group in keycloak根据 keycloak 中组的角色添加权限
【发布时间】:2022-02-09 19:14:31
【问题描述】:

我首先基于 Auth0 设置我的应用程序,并设置角色和权限。结果用户与 x roles 链接,并且 Auth0 向令牌声明注入链接的 permissions 数组。现在我的应用也需要兼容才能使用 KeyCloak

如何将 permissions 数组注入到令牌中,就像使用 Auth0 一样?

【问题讨论】:

    标签: mapping keycloak openid-connect auth0


    【解决方案1】:

    为了匹配 Auth0 的同一海狸,在 keycloak 上,所有 auth0 角色都设置为组。并将所有 auth0-permission 作为角色。

    现在为了允许将与用户关联的 的相关角色注入到令牌中,我在客户端中创建了一个 Script Mapper,如下所示:

    var ArrayList = Java.type("java.util.ArrayList");
    var permissions = new ArrayList();
    user.getGroups().forEach(function(groupModel) {
        groupModel.getRoleMappings().forEach(function(roleModel) {
            var roleName = roleModel.getName();
            if(!permissions.contains(roleName)) {
                permissions.add(roleName);
            }
        });
    });
    token.setOtherClaims("permissions", permissions);
    

    花点时间找到让它发挥作用的最佳方法。但是,如果您知道更好的解决方案。感谢您的分享;-)

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 2015-09-30
      • 2018-04-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多