Keycloak - 客户端角色 - 检索自定义属性

5

我创建了一个客户端角色special_agent,并添加了两个属性approve_leaveraise_leave

Keycloak - 客户端角色属性

我正在使用Javascript适配器,并成功登录到我的网站。我也能够接收用户分配的客户端角色。但我想要获取客户端角色中指定的自定义属性。下面是keycloak.tokenParsed的结果:

Keycloak - tokenParsed

有没有办法检索客户端角色属性?我在客户端设置中寻找了Mappers,但无法找到详细信息。

2个回答

8
您可以通过 API 调用获取客户端角色和属性。 GET /{realm}/clients/{id}/roles/{role-name}
例如:

enter image description here

有几个要求。 #1 用户(机构用户)应在Keyclaok UI中被分配两个角色(管理领域,查看客户端) enter image description here

#2 通过API获取访问令牌并保存到Postman变量中 http://127.0.0.1:8080/auth/realms/test/protocol/openid-connect/token 从Keycloak UI获取客户端ID和密钥,如附件所示 enter image description here enter image description here enter image description here

#3 你需要使用 #1 访问令牌通过 GET 客户端 API 来获取客户端 ID http://127.0.0.1:8080/auth/admin/realms/test/clients enter image description here

更多详细信息,祝好运! https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_roles_resource


1
你也可以创建一个脚本映射器,例如:

var roles = {}
for each (var role in user.getRoleMappings()) {
    roles[role.name] = role.getAttributes();
}
token.setOtherClaims('roles', roles);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接