Keycloak 尝试在两个密钥斗篷之间联合用户时出现意外错误(来自令牌的访问者错误)
我有两个密钥斗篷,一个是6.x(父IDP),另一个是3.x(子IDP),当尝试将用户从父级联合到子级时,我遇到了一个意外错误。子IDP的堆栈跟踪Keycloak 尝试在两个密钥斗篷之间联合用户时出现意外错误(来自令牌的访问者错误),keycloak,Keycloak,我有两个密钥斗篷,一个是6.x(父IDP),另一个是3.x(子IDP),当尝试将用户从父级联合到子级时,我遇到了一个意外错误。子IDP的堆栈跟踪 Failed to make identity provider oauth callback: org.keycloak.broker.provider.IdentityBrokerException: Could not fetch attributes from userinfo endpoint. at org.keycloak.bro
Failed to make identity provider oauth callback: org.keycloak.broker.provider.IdentityBrokerException: Could not fetch attributes from userinfo endpoint.
at org.keycloak.broker.oidc.OIDCIdentityProvider.getFederatedIdentity(OIDCIdentityProvider.java:366)
Caused by: org.keycloak.broker.provider.IdentityBrokerException: Wrong audience from token.
但是根据文档,我已经配置了IDP,如果我尝试从父级到子级进行联合,那么它可以无缝工作,有人知道这个问题的根本原因吗?发生这种情况是因为从版本4.6.0开始,决定不向令牌添加访问群体属性。这就是为什么旧的KeyClope在令牌中抱怨错误的受众的原因 要解决此问题,请转到父IDP的客户端范围 第一步 创建客户端范围“aud_scope” 步骤2 在此作用域的设置中创建协议映射器
- 名称:观众映射器
- 选择映射器类型:访问者
- 包含的客户端访问群体:联合客户端的名称
- 添加到访问令牌:打开