我有两个秘诀,一个是6.x(父IDP),另一个是3.x(子IDP),并且在尝试将用户从父级联合到子级Im时遇到意外错误。子IDP的堆栈跟踪,
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,并且如果我尝试从父级到子级无缝地联合,是否有人知道此问题的根本原因?
答案 0 :(得分:2)
之所以发生这种情况,是因为从版本4.6.0开始,它决定不将受众属性添加到令牌中。这就是为什么较旧的密钥斗篷抱怨令牌中的错误观众的原因。
为了解决此问题,请转到父IDP的客户范围 步骤1 创建一个客户范围“ aud_scope” 第2步 在此作用域的设置中,创建一个协议映射器
然后转到联合客户端,然后在“客户端作用域设置”标签中,
将可用的客户范围“ aud_scope”添加到已分配的默认客户范围