我正在从 SP 发起的 SLO 向 IdP 发送 LogoutRequest
。 Ping 用作身份提供者,在 Ping 上,我收到错误消息“需要签名”,而 LogoutRequest
中有签名。所以我在一些研究中发现,如果使用Redirect
绑定(bind),Signature
应该作为查询参数发送。如何将 LogoutRequest
的绑定(bind)协议(protocol)更改为 Http-POST
?
http://idpendppointURL.com/idp/SLO.saml2?SAMLRequest="...."&RelayState="...."
当 REDIRECT
绑定(bind)的 URL 长度变得非常长时,如何添加签名作为查询参数?
编辑于 2014 年 5 月 12 日晚上 9:54(美国中部标准时间)
我想出了如何将签名添加为 Oasis 规范中的查询参数 SAML SLO specification ,但现在我从 Ping 收到错误“无效签名”。
最佳答案
您可以在 SAML 2.0 bindings 中找到有关如何使用不同绑定(bind)发送消息的所有详细信息。 SAML 2.0 标准的一部分。
有关如何将签名附加到使用 HTTP 重定向绑定(bind)发送的消息的详细信息,请参阅 chapter 3.4 .
支持的重定向 URL 长度是不可预测的,HTTP 重定向只能用于相对较小的消息。当您需要容纳更多数据时,您必须切换到其他绑定(bind),例如 HTTP-POST。
为了实现 HTTP-POST 绑定(bind),您需要通过遵循标准 ( chapter 3.5 ) 中再次定义的规则来更改应用程序发送消息的方式。
您还可以考虑使用 SAML 库之一,它可以简化实现 SAML 2.0 功能的任务,并包含对所有绑定(bind)的支持,例如 OpenSAML , Spring SAML ,或者Ping提供的工具。
您收到的“无效签名”错误的意思就是它所说的 - 签名构建不正确。如果您想从头开始编写签名创建,请确保完全按照标准中定义的说明进行操作,任何小错误都会使您的实现无效。
关于java - 单点注销配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23616117/