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

时间:2020-09-19 11:18:20

标签: keycloak keycloak-javascript

我已将客户角色创建为special_agent,并添加了两个属性,分别为approve_leaveraise_leave

Keycloak - Client Role Attributes

我正在使用Javascript adapter,并且能够成功登录我的网站。我还可以接收已分配给用户的客户端角色。但是,我想获取在客户端角色中指定的自定义属性。以下是keycloak.tokenParsed

的结果

Keycloak - tokenParsed

是否可以检索客户端角色属性?我在客户端设置中寻找了Mappers,但是找不到详细信息。

2 个答案:

答案 0 :(得分:3)

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

示例)

enter image description here

有两个要求。 #1用户(agency_user)应该在Keyclaok UI中分配两个角色(管理领域,视图客户端) enter image description here

#2通过API获取访问令牌并保存到Postman变量中 http://127.0.0.1:8080/auth/realms/test/protocol/openid-connect/token 客户端ID和机密从Keyclaok UI获得 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 :(得分:0)

您还可以创建一个脚本映射器,例如,

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