首页 > 解决方案 > Keycloak:外部 IdP 的 SAML 响应无效

问题描述

我正在使用带有外部 IdP 的 SAML 实施 SSO 选项。如果我在单击浏览器中的 SSO 按钮后检查收到的 SAML 响应,我可以看到我需要的身份验证数据(例如用户名和电子邮件),因此与 IdP 的通信工作正常。

但是 Keycloak 不执行登录,而是向我显示了一个页面,上面写着:“我们很抱歉......登录超时,请重新登录。”,并且没有注册新用户。我领域中令牌的登录超时设置为 30 分钟。

查看日志我发现以下错误:

keycloak_1  | 00:38:27,888 ERROR [org.keycloak.broker.saml.SAMLEndpoint] (default task-26) Assertion expired.
keycloak_1  | 00:38:27,889 WARN  [org.keycloak.events] (default task-26) type=IDENTITY_PROVIDER_RESPONSE_ERROR, realmId=master, clientId=null, userId=null, ipAddress=172.20.0.1, error=invalid_saml_response

我发现这可能是由于 IdP 和 SP 中的 EntityID 不一致,但我联系了我的 IdP 并且 EntityID 是相同的。

可能是什么问题呢?

标签: single-sign-onkeycloaksamlspidp

解决方案


通常,SAML 响应无效。它可以是任何东西:错误的实体 ID、错误的时间、错误的签名/加密签名,......

源代码参考


推荐阅读