Keycloak 如何将来自身份提供者的声明映射到KeyClope中的角色组?

Keycloak 如何将来自身份提供者的声明映射到KeyClope中的角色组?,keycloak,oidc-identity-brokering,Keycloak,Oidc Identity Brokering,我正在尝试使用KeyClope进行身份中介。来自身份提供者的声明非常有条理。现在,我想将其中一个声明的值映射到KeyClope中的角色组。 有没有办法做到这一点 谢谢好的,为此,您需要使用Admin CLI,更具体地说是,在本例中,它需要一些自定义脚本来实现自动化。查看上面链接的文档,了解如何设置ut。这将是这样的: #/bin/bash ... #kc-admin.sh的初始化内容 ... #假设您已将索赔表IdP作为此脚本的第一个参数 索赔=“1美元” #使用jqü从JSON中筛选someC

我正在尝试使用KeyClope进行身份中介。来自身份提供者的声明非常有条理。现在,我想将其中一个声明的值映射到KeyClope中的角色组。 有没有办法做到这一点


谢谢

好的,为此,您需要使用Admin CLI,更具体地说是,在本例中,它需要一些自定义脚本来实现自动化。查看上面链接的文档,了解如何设置ut。这将是这样的:

#/bin/bash
...
#kc-admin.sh的初始化内容
...
#假设您已将索赔表IdP作为此脚本的第一个参数
索赔=“1美元”
#使用jqü从JSON中筛选someClaim
role=${echo$claim | jq-r'.someClaim'}
用户名=${echo$claim | jq-r'.sub'}
#找出用户和组ID(不确定是否有效,但有可能!)
user_id=${kcadm.sh get users-r yourrealm-q username=$username}
group_id=${kcadm.sh获取组-r yourrealm}
kcadm.sh update users/$user\u id/groups/$group\u id-r yourrealm-s realm=yourrealm-s userId=$user id-s groupId=$group\u id-n

  • 你所说的“映射索赔的[价值]”是什么意思?你能举个例子吗?@roxch说有来自身份提供者
    {“ver”:1,“jti”:“AT.bfekt0S96atew6s xxxx”,“iss”:https://abc.xyz.com/oauth2/default,“澳元”:api://default,iat:1600681570,exp:1600685170,cid:“0oawtxxmtyxxxxx”,“uid:“00uynldf5fxxxxxx”,“scp:[“openid”]“sub”:designer@xyz.com“,“someClaim”:“designer”,“claimsByGroup”:[“Everyone”,“developers”]}
    我想在KeyClope令牌中为来自身份提供者的someClaim分配一个角色组。它仍然不明确!是否要将用户添加到KC管理中使用someClaim数据的组?或者用户已经在组中,并且您想将组信息添加到上面的令牌中(以供进一步使用/验证)?您想将用户添加到KC管理中使用someClaim数据的组中吗?对