使用Azure ActiveDirectory作为IdP注销Shibboleth服务提供程序时opensaml :: BindingException

问题描述

用户单击注销时,我会将其重定向到“ /Shibboleth.sso/注销”
这成功将它们带到Microsoft注销页面,然后将它们重定向回SP。
但是,当他们返回到SP时,他们会收到一条SOAP错误消息。

opensaml::BindingException

The system encountered an error at Wed Sep 30 19:13:08 2020

To report this problem,please contact the site administrator at [email protected].

Please include the following message in any email:

opensaml::BindingException at (https://app/Shibboleth.sso/SLO/SOAP)

Invalid content type for SOAP message.

解决方法

在Azure上配置SP时,我按原样上传了元数据。
这填充了Azure上的字段,并且大多数情况下都起作用。
但是,它从元数据中提取了注销URL作为第一个条目:

<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://app/Shibboleth.sso/SLO/SOAP"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://app/Shibboleth.sso/SLO/Redirect"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://app/Shibboleth.sso/SLO/POST"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" Location="https://app/Shibboleth.sso/SLO/Artifact"/>

Azure应该使用“ https://app/Shibboleth.sso/SLO/Redirect”位置,而不是使用SOAP URL。

azure configuration

correct logout page