单点注销配置文件

时间:2014-05-12 18:22:35

标签: java logout saml saml-2.0

我从SP发起的SLO向IdP发送LogoutRequest。 Ping用作身份提供程序,在Ping上我收到的错误是“#34; Signature Required"虽然LogoutRequest中有签名。所以我在一些研究中发现如果使用Redirect绑定Signature应该作为查询参数发送。如何将LogoutRequest的绑定协议更改为Http-POST

http://idpendppointURL.com/idp/SLO.saml2?SAMLRequest="...."&RelayState="...."

如果REDIRECT绑定的URL长度非常长,如何将签名添加为查询参数?

于2014年5月12日9:54 CST编辑

我想出了将Signature作为来自Oasis规范SAML SLO specification的查询参数添加,但现在我收到错误"无效签名"来自Ping。

1 个答案:

答案 0 :(得分:1)

您可以在SAML 2.0标准的SAML 2.0 bindings部分找到有关如何使用不同绑定发送消息的所有详细信息。

有关如何将签名附加到使用HTTP-Redirect绑定发送的邮件的详细信息,请参阅chapter 3.4

支持的重定向URL长度是不可预测的,HTTP-Redirect只能用于相对较小的消息。由于您需要适应更多数据,因此您必须切换到另一个绑定,例如HTTP-POST。

为了实现HTTP-POST绑定,您需要通过遵循标准(chapter 3.5)中再次定义的规则来更改应用程序发送消息的方式。

您可能还考虑使用其中一个SAML库来简化实现SAML 2.0功能的任务,并包括对所有绑定的支持,例如OpenSAMLSpring SAML或Ping提供的工具。

"无效签名"你得到的错误意味着它所说的 - 签名没有正确构建。如果您想从头开始编写签名创建,请确保按照标准中的定义完全按照说明操作,任何小错误都会使您的实现无效。