single-sign-on - 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 是相同的。
可能是什么问题呢?
解决方案
通常,SAML 响应无效。它可以是任何东西:错误的实体 ID、错误的时间、错误的签名/加密签名,......
推荐阅读
- product - 是否可以在 SAP Hybris Commerce 中分配产品级别的销售组织?
- json - 从 Az Devops 结果中检索 Powershell 中的信息
- java - 我无法在 java swing 中将 jtable 中的数据显示到我的文本字段
- ansible - 如何在没有 shell/命令模块的情况下为“systemctl set-default graphics.target”编写 Ansible 任务
- aws-lambda - 无服务器:httpApi 中的请求参数
- c++ - 解释 GPU NVIDIA 执行时间
- java - 在Java中使用子类对象调用父方法
- python - 在 map 函数中使用多个迭代器
- r - 使用 R,RStudio Knit to PDF,如何传递波浪号以防止换行“Table~\ref{table:data-from-phone}”?
- python-3.x - 试图从python 3中的配置文件中获取特定字节