Spring boot 密钥斗篷:获取身份提供者信息

Spring boot 密钥斗篷:获取身份提供者信息,spring-boot,keycloak,Spring Boot,Keycloak,我有spring boot应用程序,我使用keydape作为身份验证。提供者 对于我的领域,我将FACEBOOK或GOOGLE设置为身份提供者 我想知道我怎样才能知道用户使用了什么身份提供者-不是通过KeyClope管理控制台,而是在运行时 例如: 用户A-FACEBOOK 用户B-FACEBOOK 用户C-谷歌映射访问令牌中给定的元数据,如facebook/GOOGLE用户id,并将其导入到KeyClope用户。如果您随后向客户机提供此元数据,他们可以看到使用了哪个身份代理 您可以将“用户会

我有spring boot应用程序,我使用keydape作为身份验证。提供者

对于我的领域,我将FACEBOOK或GOOGLE设置为身份提供者

我想知道我怎样才能知道用户使用了什么身份提供者-不是通过KeyClope管理控制台,而是在运行时


例如:

用户A-FACEBOOK

用户B-FACEBOOK


用户C-谷歌

映射访问令牌中给定的元数据,如facebook/GOOGLE用户id,并将其导入到KeyClope用户。如果您随后向客户机提供此元数据,他们可以看到使用了哪个身份代理

您可以将“用户会话注释”映射器设置为客户端的映射器。 将用户会话注释字段设置为:identity\u provider


注意:您可以在用户会话注释字段中使用identity\u provider\u identity从获取其用户名到identity provider

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

Set<FederatedIdentityModel> identitySet = session.users().getFederatedIdentities(user, realm);
Set identitySet=session.users().getFederatedIdentifications(用户,领域);
FederatedIdentityModel
的每个实例都有一个
#getIdentityProvider
方法,允许您获取相关IdP的名称