我需要使用WSO2 Identity Server作为身份提供程序并使用Weblogic 11g作为服务提供程序来实现SAML 2.0单一注销。
根据SAML规范,参与单一注销过程的服务提供商有两种不同的角色:启动它的服务提供商,向身份提供商发送LogoutRequest,以及从中获取LogoutRequest的服务提供商。身份服务器并使用LogoutResponse进行相应响应并关闭其各自的会话。当这些服务提供商完成身份提供者后,然后相应地响应第一个使用自己的LogoutResponse启动它的服务提供者。 http://winfinit.tumblr.com/post/84924299219/saml2-single-logout-slo-with-wso2-is-4-5
在这种情况下,我需要实现第一个角色,当我的自定义servlet生成LogoutRequest并将其发送到身份服务器时:由于Weblogic 11g令人惊讶地不支持SAML2 Single Logout,因此servlet将生成并响应SAML规范并使用Weblogic API中的ServletAuthentication.logout()方法关闭会话。
<?xml version="1.0" standalone="yes"?>
<saml2p:LogoutRequest
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
ID="jofpphihclkakoifhaeenbdeakfidojehgnpobpg"
IssueInstant="2014-05-05T20:00:13.653Z"
NotOnOrAfter="2014-05-05T20:05:13.653Z"
Reason="Single Logout"
Version="2.0">
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">web3001</saml2:Issuer>
<saml2:NameID xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">admin</saml2:NameID>
<saml2p:SessionIndex>8c97787b-48f5-425d-8f88-39befe58eaad</saml2p:SessionIndex>
</saml2p:LogoutRequest>
获取填充最后两个属性的值的最佳方法是什么,即saml2:NameID和saml2p:SessionIndex?