我正在尝试使用saml中的OPENSAML-java生成SP方面
在此过程中注意到Limitations Of URL Length。
因此,在将其发送到TestIdP之前,是否必须对SAML消息使用任何压缩技术。
如果我们使用任何压缩技术, IdP如何知道该SP已使用此压缩技术解压缩请求消息。?
元数据中是否有任何规定?
示例代码表示赞赏。谢谢。
答案 0 :(得分:2)
正如Wiki所述:
SAML协议消息通常直接在HTTP GET请求的URL查询字符串中携带。由于URL的长度在实践中受到限制,因此HTTP重定向绑定适用于短消息,例如消息。较长的消息(例如,包含签名的SAML断言的消息)应该通过其他绑定传输,例如HTTP POST绑定。
通过HTTP重定向传输的SAML请求或响应分别具有SAMLRequest或SAMLResponse查询字符串参数。在发送之前,邮件按此顺序缩小, base64编码和网址编码。收到后,该过程将被撤消以恢复原始邮件。
HTTP GET示例长度少于600个字符:
如果您使用HTTP POST,请求的参数将转到正文。所以没问题。
但如果邮件SAMLRequest
不是太长,你应该检查一下。
安全注意:由于使用HTTP GET,整个Request及其参数都会记录在任何http访问日志中,因此您应该使用POST。
答案 1 :(得分:1)
Saml2 Http Redirect绑定明确要求数据首先被放气,然后是base64编码,最后是URL编码。正如规范所要求的那样,Idp将期望以这种方式准备Saml2Request查询字符串参数。
据我所知,使用Http Redirect绑定将AuthnRequest发送到Idp是常见的,而响应总是用Http Post处理,因为它对于查询字符串来说太大了。