可靠地告诉 SAML 请求是不是被压缩?

Posted

技术标签:

【中文标题】可靠地告诉 SAML 请求是不是被压缩?【英文标题】:Reliably tell SAML request is compressed or not?可靠地告诉 SAML 请求是否被压缩? 【发布时间】:2016-12-27 13:58:53 【问题描述】:

我正在将 SSO 与 Office 365(SP) 和我的应用程序作为 IDP 集成以进行 3rd 方身份验证。

阅读规范here

说明

The use of compression MAY be indicated via metadata

但我在SAML-metadata spec 中找不到任何有关压缩的相关信息

目前情况如何?

一旦成功实施 Office 365,我们就有了整合其他服务的计划。

现在来自 Microsoft 的 SAMLrequest 的重点是未压缩

而将 Google 视为其他服务之一。来自 google 的 samlRequest(我记得很清楚)被压缩了。

那么,有没有一种可靠的方法来判断请求(即 SAML 请求)是否会被压缩?由 SP 提供。

【问题讨论】:

【参考方案1】:

根据我的经验,常见的做法是:

当使用 REDIRECT 绑定(即 GET Web 方法)将 SAMLRequest 发送到您的 IdP 时,它使用 DEFLATE 压缩。 当使用 POST 绑定(也称为 POST Web 方法)向您的 IdP 发送 SAMLRequest 时,它不使用任何压缩。

【讨论】:

以上是关于可靠地告诉 SAML 请求是不是被压缩?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java 创建“HTTP 重定向绑定”SAML 请求

AADSTS750054:SAMLRequest 或 SAMLResponse 必须作为查询字符串参数出现在 SAML 重定向绑定的 HTTP 请求中

SameSite 属性中断 SAML 流

SameSite属性中断SAML流

在请求标头中检索 SAML 断言属性的问题

如何正确解码 Java 中的 SAML 请求(HTTP 重定向)?