【发布时间】:2022-02-09 19:14:31
【问题描述】:
我首先基于 Auth0 设置我的应用程序,并设置角色和权限。结果用户与 x roles 链接,并且 Auth0 向令牌声明注入链接的 permissions 数组。现在我的应用也需要兼容才能使用 KeyCloak。
如何将 permissions 数组注入到令牌中,就像使用 Auth0 一样?
【问题讨论】:
标签: mapping keycloak openid-connect auth0
我首先基于 Auth0 设置我的应用程序,并设置角色和权限。结果用户与 x roles 链接,并且 Auth0 向令牌声明注入链接的 permissions 数组。现在我的应用也需要兼容才能使用 KeyCloak。
如何将 permissions 数组注入到令牌中,就像使用 Auth0 一样?
【问题讨论】:
标签: mapping keycloak openid-connect auth0
为了匹配 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);
花点时间找到让它发挥作用的最佳方法。但是,如果您知道更好的解决方案。感谢您的分享;-)
【讨论】: