【发布时间】:2014-05-20 17:39:51
【问题描述】:
在此设置中,我使用 wso2is 作为 idp 和 2 个应用程序作为 sp。其中一个应用程序使用 java、spring-security-saml-extension,另一个使用 php 和 simplesamlphp。 SSO 运行良好,但我无法使 SLO 正常运行。
我要做的是:
- 在两个 sp-s 中登录
- 在第一个 sp 中注销
- 观察 wso2 日志并看到 wso2 向第二个 sp 发送了注销请求
- 第二个 sp 读取 logoutrequest 失败
simplesamlphp 错误信息:
SimpleSAML_Error_BadRequest: BADREQUEST('%REASON%' => 'Received message on logout endpoint without issuer.')
idp发出的saml2 LogoutRequest:
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:LogoutRequest ID="ljknoccfdhjcgelcpmbicffooeokboficpggcmpi" IssueInstant="2014-04-08T06:45:19.944Z" NotOnOrAfter="2014-04-08T06:50:19.944Z" Reason="urn:oasis:names:tc:SAML:2.0:logout:user" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
<saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">EXAMPLE.AT/test01@domain.com</saml2:NameID>
<saml2p:SessionIndex>5f14fc6e-1c31-42e1-b7c2-e1501bf400a8</saml2p:SessionIndex
</saml2p:LogoutRequest>
下面的 saml2 SLO-Profile 规范在第 4.4.4 章第 1294 行明确说明:
元素必须存在并且必须包含唯一的 请求实体的标识符
据我了解,作为 Idp 的 wso2 应该是此处的颁发者,但它未能在消息中包含其 id。
关于我做错了什么的任何提示?我无法想象这是一个 wso2is 错误!
http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf
【问题讨论】:
-
我这里也有同样的问题。我使用 2 个 PHP 应用程序(使用 onelogin php-saml)和 WSO2 IS 5.0.0 作为身份提供者成功配置了 SSO。 IDP 发送 LogoutRequest 时,不包括 Issuer。您是否设法为此找到解决方案?
标签: single-sign-on logout saml-2.0 wso2is spring-saml