当用户从SAML服务提供商注销时,它不会从Salesforce Identity提供程序中注销用户

时间:2015-02-16 11:51:27

标签: salesforce single-sign-on simplesamlphp

我在Salesforce和Drupal之间使用Salesforce作为身份提供者和使用SimpleSAMLPHP作为服务提供者的Drupal进行SSO。当用户从Drupal网站注销时,它不会从Salesforce注销。

为了解决这个问题,我使用了' SingleLogoutService'在Drupal服务提供商中为https://salescloud--OptusFull.cs13.my.salesforce.com/secur/logout.jsp。但问题在于注销过程现在以Salesforce登录页面结束,我没有找到将其重定向到Drupal站点的方法。有没有办法将用户重定向回Drupal站点。

请从metadata / saml20-idp-remote.php

中查找元数据信息
    $metadata['https://salescloud--OptusFull.cs13.my.salesforce.com'] = array (
      'entityid' => 'https://salescloud--OptusFull.cs13.my.salesforce.com',
      'contacts' =>
      array (
      ),
      'metadata-set' => 'saml20-idp-remote',
      'expire' => 1739182548,
      'SingleSignOnService' =>
      array (
        0 =>
        array (
          'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
          'Location' => 'https://salescloud--OptusFull.cs13.my.salesforce.com/idp/endpoint/HttpPost',
        ),
        1 =>
        array (
          'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
          'Location' => 'https://salescloud--OptusFull.cs13.my.salesforce.com/idp/endpoint/HttpRedirect',
        ),
      ),
     'SingleLogoutService' => 'https://salescloud--OptusFull.cs13.my.salesforce.com/secur/logout.jsp',
       'ArtifactResolutionService' =>
      array (
      ),
      'keys' =>
      array (
        0 =>
        array (
          'encryption' => false,
          'signing' => true,
          'type' => 'X509Certificate',
          'X509Certificate' => 'MIIErDCCA.....',
        ),
      ),
    );

2 个答案:

答案 0 :(得分:1)

Salesforce中有一个设置,用于控制用户通过身份提供商注销后登陆的页面。该设置位于安全控制>单点登录设置 - > - 身份提供商注销URL。如果您打开了“我的网域”,此设置将仅显示在您的SF生产组织中。

答案 1 :(得分:1)

Salesforce不支持单点登出服务 (在IdP中启动或未启动)。

如果您将Salesforce正常注销服务设置为SingleLogoutService,您将在Salesforce登录页面结束,而不会将LogoutResponse发送到SP(drupal)。此外,如果您直接从Salesforce注销,则不会向SP(drupal)发送LogoutRequest。