PingFederate单一注销:我的IdP仅发出一个LogoutRequest

时间:2011-11-22 23:38:04

标签: single-sign-on saml-2.0 pingfederate

建立@Scott T.的answer

  

... PingFederate(充当IdP)知道您拥有哪些SP   在给定的会话中联合。当用户启动SLO(来自   你给出的例子 - 在IdP - 它也可以从一个开始   SP)用户浏览器(假设重定向或POST绑定)被发送到   每个SP都有一个SAML LogoutRequest。

当我请求https://[PingFederateInstance]/idp/startSLO.ping?PartnerSpId=[PartnerSpId]时,根据server.log,PingFederate仅发出一个 LogoutRequest。

<samlp:LogoutRequest Destination="https://[PingFederateServerInstance]:[PortNumber]/sp/SLO.saml2" NotOnOrAfter="2011-11-22T23:02:37.812Z" IssueInstant="2011-11-22T22:57:37.812Z" ID="NEDH4Khn4TvWsOwfAZxK_XiEc6f" Version="2.0" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
  <saml:Issuer>XXX:IDP</saml:Issuer>
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
      <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
      <ds:Reference URI="#NEDH4Khn4TvWsOwfAZxK_XiEc6f">
        <ds:Transforms>
          <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
          <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
        </ds:Transforms>
        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
        <ds:DigestValue>Hnec0X3qfYlE2Z9+ooujtD1HKQk=</ds:DigestValue>
      </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>L6wmw7RF82s8W2s4YSkwHpnQFo6tFRKUZ3pyK7JEl/7CZyJsxJ5lnfpdaaogm/Gl3S3Y7WoSjbp4
ssaNjtQ3x/nHsYI0zill66yhQ/DNaXAdRuKw6jDi9vqXemkYGx9cNxLkLvc14CUdn9qRA0gZcjyj
ncaZvvWL5Kzy9JOuWSg=</ds:SignatureValue>
  </ds:Signature>
  <saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">10072824</saml:NameID>
  <samlp:SessionIndex>dWh6bd58GRgnbLgeYsTWSVXT7pO</samlp:SessionIndex>
</samlp:LogoutRequest>

我的问题:

  • 如果我与多个SP联合,我应该如何配置PingFederate,以便每个联合SP发出一个请求?

我倾向于相信:

  1. 我需要在this screen上配置一些内容。
  2. 与多个SP注销请求“链接在一起”的想法一致,最后一个端点URL应为/idp/SLO.saml2。

1 个答案:

答案 0 :(得分:4)

让我修改第一个答案:

  

PingFederate知道您在给定会话中与哪些SP联合。

应该是:

  

作为IdP的PingFederate知道用户在给定会话中签署了哪些SP。

作为IdP的PingFederate配置将包括您拥有的每个SP连接的SLO协议配置。您在(1.)中链接到的屏幕截图实际上是一个IdP连接屏幕,可以在PingFederate播放SP角色时完成(也许这就是您所扮演的角色 - 我原来的查询中并不清楚,所以我根据你问题的性质假设了IdP)。您需要确保已使用适当的SLO端点following these instructions配置每个SP连接。如果PingFederate是IdP,当用户启动SLO时,它将知道重定向到支持SLO的所有SP(以及用户有会话的地方)。

WRT to(2。):如果用户在IdP上启动SLO进程,那么是 - 用户将被重定向回到/idp/SLO.saml2作为最后一步。实际上,您重定向到注销的每个SP都将重定向回IdP以注销下一个SP。如果您从SP启动SLO流程,那么用户将最终到达的最后位置是该SP的SLO端点。