问题描述
作为服务提供商,当我们从IdP收到HTTP重定向注销请求时,文档说明我们应该执行以下操作:
验证注销请求>使用户会话无效>将注销响应发送回身份提供者。
我们将注销响应重定向到哪个端点?我本以为这将是注销请求的一部分,但事实并非如此。仅仅是IdP单一注销URL?
解决方法
通常,IdP元数据的IDPSSODescriptor
为每个受支持的协议绑定定义SingleLogoutService
。
例如摘录自SSOCicrle的IdP元数据
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://idp.ssocircle.com:443/sso/IDPSloRedirect/metaAlias/publicidp" ResponseLocation="https://idp.ssocircle.com:443/sso/IDPSloRedirect/metaAlias/publicidp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://idp.ssocircle.com:443/sso/IDPSloPost/metaAlias/publicidp" ResponseLocation="https://idp.ssocircle.com:443/sso/IDPSloPost/metaAlias/publicidp"/>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://idp.ssocircle.com:443/sso/IDPSloSoap/metaAlias/publicidp"/>
如果您没有收到IdP元数据,则需要联系IdP管理员并请求该信息。
注意:取决于SP实现,该绑定用于发送LogoutResponse。某些使用与IdP发送LogoutRequest相同的绑定,一些使用IdP元数据中定义的第一个绑定,而某些使用指定的绑定。