JBoss 上的 Picketlink 将 LogoutRequest 发送到不正确的端点



我正在尝试使用纠察链接保护应用程序。我正在使用 JBoss 6.4.18。

SSO 操作工作没有任何问题。问题出在SLO上,基本上,纠察链接将LogoutRequest断言发送到错误的端点。我的战争中的 IdP 元数据具有以下端点:

<md:ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap" index="0" isDefault="true"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myidp.com/saml2/slo" ResponseLocation="https://myidp.com/saml2/slo_return"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://myidp.com/saml2/slo" ResponseLocation="https://myidp.com/saml2/slo_return"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap"/>
<md:ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myidp.com/saml2/rni" ResponseLocation="https://myidp.com/saml2/rni_return"/>
<md:ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://myidp.com/saml2/rni" ResponseLocation="https://myidp.com/saml2/rni_return"/>
<md:ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myidp.com/saml2/sso"/>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://myidp.com/saml2/sso"/>
<md:NameIDMappingService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap"/>

LogoutRequest 断言对我来说看起来不错,但是,picketlink 将其发送到/sso 端点而不是使用/slo(如元数据所示(。当 idp 收到该注销请求时,它甚至不会将浏览器重定向回 SP 应用程序。

断言实际上具有正确的目标,但正如我所说,浏览器发送到/sso 端点。

<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
Destination="https://myidp.com/saml2/sso"

这是纠察链接中的错误吗? 我必须说,我已经使用其他 IdP 服务器配置了它,其中两种类型的断言的终结点相同,在这种情况下,SLO 运行良好。

感谢您在这方面的帮助。

谢谢。

最后我无法通过配置解决这个问题。人们会期望纠察链接将 SLO 断言发送到元数据文件中声明的终结点,但正如我在上面的问题中所述,它没有。

通过检查插件代码,我看到它可以读取请求参数来决定将注销请求断言发送到哪个端点。

因此,当 SP 请求 GLO 时,我会添加另一个请求参数,如下所示:

/?GLO=true&picketlink.desired.idp="+encodedSLOEndpointURL

picketlink 读取该参数 (picketlink.desired.idp(,并将断言发送到 IdP 端的该端点。

附言我希望这是我最后一次处理像纠察链接这样的旧图书馆。

相关内容

  • 没有找到相关文章

最新更新