我正在尝试使用 Keycloak 进行身份代理。来自身份提供者的声明非常明确。现在我想将其中一个声明的值映射到 Keycloak 中的角色组。有没有办法做到这一点?
谢谢
我正在尝试使用 Keycloak 进行身份代理。来自身份提供者的声明非常明确。现在我想将其中一个声明的值映射到 Keycloak 中的角色组。有没有办法做到这一点?
谢谢
好的,为此,您需要使用 Admin CLI,更具体地说是Group Operations,在这种情况下需要一些自定义脚本才能使其自动化。查看上面链接的文档,了解如何设置。那将是这样的:
!#/bin/bash
...
# init stuff for kc-admin.sh
...
# assuming you've given the claim form IdP as 1st param to this script
claim="$1"
# use jq¹ to filter someClaim from JSON
role=${echo $claim | jq -r '.someClaim'}
username=${echo $claim | jq -r '.sub'}
# find out the user and group ids (not sure if this works, but there's possibilities²!)
user_id=${kcadm.sh get users -r yourrealm -q username=$username}
group_id=${kcadm.sh get groups -r yourrealm}
kcadm.sh update users/$user_id/groups/$group_id -r yourrealm -s realm=yourrealm -s userId=$user-id -s groupId=$group_id -n