我们应该使用像Deflater这样的压缩技术 在SAML。?

问题描述 投票:1回答:2

我试图在saml中使用OPENSAML-java生成SP方面

虽然在过程中注意到Limitations Of URL Length

因此,在将其发送到TestIdP之前,是否必须对SAML消息使用任何压缩技术。

如果我们使用任何压缩技术,IdP将如何知道该SP已使用此压缩技术对请求消息进行解压缩。

元数据中是否有任何规定?

示例代码表示赞赏。谢谢。

java single-sign-on saml-2.0 http-compression opensaml
2个回答
2
投票

正如Wiki所说:

SAML协议消息通常直接在HTTP GET请求的URL查询字符串中携带。由于URL的长度在实践中受到限制,因此HTTP重定向绑定适用于短消息,例如消息。较长的消息(例如,包含签名的SAML断言的消息)应该通过其他绑定(例如HTTP POST绑定)传输。

通过HTTP重定向传输的SAML请求或响应分别具有SAMLRequest或SAMLResponse查询字符串参数。在发送之前,消息按顺序进行放气,base64编码和URL编码。收到后,该过程将被撤消以恢复原始邮件。

HTTP GET示例长度少于600个字符:

https://idp.example.org/SAML2/SSO/Redirect?SAMLRequest=fZFfa8IwFMXfBb9DyXvaJtZ1BqsURRC2Mabbw95ivc5Am3TJrXPffmmLY3%2FA15Pzuyf33On8XJXBCaxTRmeEhTEJQBdmr%2FRbRp63K3pL5rPhYOpkVdYib%2FCon%2BC9AYfDQRB4WDvRvWWksVoY6ZQTWlbgBBZik9%2FfCR7GorYGTWFK8pu6DknnwKL%2FWEetlxmR8sBHbHJDWZqOKGdsRJM0kfQAjCUJ43KX8s78ctnIz%2Blp5xpYa4dSo1fjOKGM03i8jSeCMzGevHa2%2FBK5MNo1FdgN2JMqPLmHc0b6WTmiVbsGoTf5qv66Zq2t60x0wXZ2RKydiCJXh3CWVV1CWJgqanfl0%2Bin8xutxYOvZL18NKUqPlvZR5el%2BVhYkAgZQdsA6fWVsZXE63W2itrTQ2cVaKV2CjSSqL1v9P%2FAXv4C

如果您使用HTTP POST,请求的参数将转到正文。所以没问题。

但你应该检查,如果消息SAMLRequest不是太长。

安全注意事项:由于使用HTTP GET,整个Request及其参数都会记录在任何http访问日志中,因此您应该使用POST。


1
投票

Saml2 Http Redirect绑定明确要求数据首先被放气,然后是base64编码,最后是URL编码。正如规范所要求的那样,Idp将期望以这种方式准备Saml2Request查询字符串参数。

据我所知,使用Http Redirect绑定将AuthnRequest发送到Idp是常见的,而响应总是用Http Post处理,因为它对于查询字符串来说太大了。

© www.soinside.com 2019 - 2024. All rights reserved.