使用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 help@example.com.

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...