1

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

为了解决这个问题,我在 Drupal 服务提供商中使用了“SingleLogoutService”作为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.....',
        ),
      ),
    );
4

2 回答 2

1

There's a setting in Salesforce that controls the page where the user lands after logout via the identity provider. The setting is under Security Controls > Single Sign-On Settings -> - Identity Provider Logout URL . This setting will only appear in your SF production org if you have My Domain turned on.

于 2015-02-17T00:06:28.550 回答
1

Salesforce 不支持单一注销服务(在 IdP 中启动或未启动)。

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

于 2015-02-17T01:10:55.953 回答