配置应用对接Azure AD时出现SAMLBindingException报错如何解决?
Azure AD SAML对接报错:The message is not an HTTP POST 解决方案
原始报错日志如下:
7848/7: 2021/10/31 上午11:49:01: 正在接收来自合作伙伴身份提供商的SSO响应。 7848/7: 2021/10/31 上午11:49:01: 服务提供商会话(2aea9585-e1e1-42d2-a67e-ed47d6ef5f09)状态: 7848/7: 2021/10/31 上午11:49:01: 正在通过HTTP POST接收响应。 7848/7: 2021/10/31 上午11:49:01: HTTPS请求: GET /SAML/AssertionConsumerService.aspx HTTP/1.1 Connection: keep-alive 7848/7: 2021/10/31 上午11:49:01: 异常信息:ComponentSpace.SAML2.Exceptions.SAMLBindingException:消息不属于HTTP POST请求
错误根因:你的服务端SAML断言消费接口(ACS)配置为仅接收HTTP POST类型的SAML响应,但Azure AD实际返回的是HTTP GET类型的请求,两边绑定方式不匹配触发异常
可行解决方案:
- 调整Azure AD侧SAML配置:进入Azure AD对应企业应用的「单点登录」配置页,找到断言消费者服务(ACS)的绑定设置,将默认的HTTP重定向(GET)修改为HTTP POST,保存配置后等待5分钟再测试
- 校验服务端ComponentSpace组件配置:检查你的SAML配置文件中
PartnerIdentityProvider节点的SingleSignOnServiceBinding属性,确认取值为urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST,和Azure AD侧配置对齐 - 排查中间层跳转问题:检查WAF、反向代理、负载均衡等中间设备的规则,确认
/SAML/AssertionConsumerService.aspx路径的POST请求不会被301/302重定向为GET请求 - 若业务需要兼容GET方式:修改服务端SAML接收逻辑,调用
SAMLServiceProvider.ReceiveSSO时不限制绑定类型,同时支持POST和Redirect两种绑定方式接收断言
内容的提问来源于stack exchange,提问作者Navya Ros Paul
相关产品推荐
相关产品推荐

