0

以@Scott T. 的回答为基础:

...PingFederate(充当 IdP)知道您在给定会话中与哪些 SP 联合。当用户启动 SLO(从您给出的示例 - 在 IdP - 它也可以从 SP 启动)时,用户浏览器(假设重定向或 POST 绑定)通过 SAML LogoutRequest 发送到每个 SP。

当我请求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. 我需要在这个屏幕上配置一些东西。
  2. 与多个 SP 注销请求“链接在一起”的想法一致,最后一个端点 URL 应该是 /idp/SLO.saml2。
4

1 回答 1

4

让我修改第一个答案:

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

应该:

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

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

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

于 2011-11-23T03:20:02.397 回答