我已将客户角色创建为special_agent
,并添加了两个属性,分别为approve_leave
和raise_leave
。
我正在使用Javascript adapter,并且能够成功登录我的网站。我还可以接收已分配给用户的客户端角色。但是,我想获取在客户端角色中指定的自定义属性。以下是keycloak.tokenParsed
的结果是否可以检索客户端角色属性?我在客户端设置中寻找了Mappers
,但是找不到详细信息。
答案 0 :(得分:3)
您可以通过API调用获取客户端的角色和属性。 GET / {realm} / clients / {id} / roles / {role-name}
示例)
有两个要求。 #1用户(agency_user)应该在Keyclaok UI中分配两个角色(管理领域,视图客户端)
#2通过API获取访问令牌并保存到Postman变量中 http://127.0.0.1:8080/auth/realms/test/protocol/openid-connect/token 客户端ID和机密从Keyclaok UI获得
#3您应该使用#1访问令牌通过GET客户端API知道客户端ID http://127.0.0.1:8080/auth/admin/realms/test/clients
更多详细信息,祝您好运! https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_roles_resource
答案 1 :(得分:0)
您还可以创建一个脚本映射器,例如,
var roles = {}
for each (var role in user.getRoleMappings()) {
roles[role.name] = role.getAttributes();
}
token.setOtherClaims('roles', roles);