Spring Boot Keycloak:获取身份提供程序信息

9wbgstp7  于 5个月前  发布在  Spring
关注(0)|答案(3)|浏览(96)

我有Spring Boot 应用程序,我使用keycloak作为auth. provider。
对于我的领域,我已经将FACEBOOK或GOOGLE设置为身份提供者
我想知道我如何才能找出用户使用的身份提供程序-不是通过keycloak管理控制台,而是在运行时。
例如:
用户A - FACEBOOK
用户B - FACEBOOK
User C - Google

7jmck4yq

7jmck4yq1#

您可以将“User Session Note”Map器设置为客户端的Map器。将User Session Note字段设置为:identity_provider


的数据
注意:您可以使用用户会话注解字段中的identity_provider_identity从身份提供商https://www.keycloak.org/docs/latest/server_admin/index.html#available-user-session-data获取其用户名

iyr7buue

iyr7buue2#

Map访问令牌中给出的元数据,比如facebook/google用户id,并将其导入到keycloak用户。如果您随后将此元数据提供给客户端,他们就可以看到使用了哪个身份代理。
https://keycloak.gitbooks.io/server-adminstration-guide/content/topics/identity-broker/mappers.html

zsohkypk

zsohkypk3#

我知道这个问题很老了,但我找到了解决你问题的另一种方法(假设你试图通过Java / Spring获取信息)。假设你有UserModelRealmModelKeyCloakSession类型的具体变量userrealmsession,然后,您可以获得与您的用户关联的所有联合身份的集合:

Set<FederatedIdentityModel> identitySet = session.users().getFederatedIdentities(user, realm);

字符串
FederatedIdentityModel的每个示例都有一个#getIdentityProvider方法,允许您获取有问题的IdP的名称。

相关问题