2014-03-26 49 views
0

的WSO2的Identity Server 4.6.0無法處理以下SAML(SLO)註銷請求:WSO2IS 4.6.0無法處理SAML LogoutRequest

<saml2p:LogoutRequest Destination="https://idp:9443/samlsso" 
ID="_f2a42cceb9e680b8d91fafd44d05391d27afa997" 
IssueInstant="2014-03-26T18:18:10.842Z" 
Version="2.0" 
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" 
> 
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">sp</saml2:Issuer> 
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" 
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" 
>REALM/[email protected]</saml2:NameID> 
</saml2p:LogoutRequest> 

它提供:

[2014-03-26 19:18:11,009] ERROR - Error Processing the Logout Request {org.wso2.carbon.identity.sso.saml.processors.LogoutRequestProcessor} 
java.lang.IndexOutOfBoundsException: Index: 0 
     at java.util.Collections$EmptyList.get(Collections.java:3212) 
     at org.opensaml.xml.util.LazyList.get(LazyList.java:89) 
[...] 
Caused by: java.lang.IndexOutOfBoundsException: Index: 0 
     at java.util.Collections$EmptyList.get(Collections.java:3212) 
     at org.opensaml.xml.util.LazyList.get(LazyList.java:89) 
     at org.opensaml.xml.util.XMLObjectChildrenList.get(XMLObjectChildrenList.java:96) 
     at org.opensaml.xml.util.XMLObjectChildrenList.get(XMLObjectChildrenList.java:32) 
     at org.wso2.carbon.identity.sso.saml.processors.LogoutRequestProcessor.process(LogoutRequestProcessor.java:114) 
     ... 38 more 

任何想法爲什麼,以及如何補救?

UPDATE:

我認爲這是關係到SessionIndex的元素,但根據http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf SAML文檔是在LogoutRequest可選。

回答

0

我不明白上面的錯誤信息,但也許你是在正確的軌道上。

在你還公佈文件說的SP必須包括SessionIndex(它說:「至少一個」),見行1302

畢竟,如果你不包括會話指標,應該如何IDP知道什麼會話終止以及應該通知哪些其他會話參與者關於註銷?

0

是的,SessionIndex是必須的。

SessionIndex - 這是會話標識符,用於標識給定用戶的IDP和SP用戶會話。

請參閱How SAML2 Single Logout Works瞭解更多詳情。