我需要在Keycloak中创建脚本映射器类型的协议映射器。该脚本应获取用户属性,检查其大小,并将其放在令牌上。我没有找到有关如何创建脚本的文档或示例。从我可以收集的点点滴滴中,我想我的脚本需要看起来像:
var value = user.getAttribute("myAttribute");
if (value.length > LIMIT) {
value = value.substring(0,LIMIT);
}
token.setOtherClaims("myAttribute",value);
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用客户端映射器将领域角色属性映射到 keycloak 中的 jwt 令牌。这个想法是为角色分配某些默认属性,属于角色的用户也应该继承这些属性。
例如,我有一个名为的领域角色web-master并将角色属性设置role-name为'Web master'。我想在我的 jwt 令牌中看到这样的东西{... role_name: 'Web master' ...}。
我尝试使用令牌映射器并将用户属性字段设置为role-name和令牌声明名称,role_name但它没有工作。
我也尝试使用roleMappings['web-master'].attributes['role-name']as User Attribute,因为名称映射到UserModel但也不起作用。
我的选项用完了,它是唯一的可能性还是脚本映射器更简单?