4

我们想通过 Salesforce.com 进行 SSO。从他们的文档中,我们发现这个选项“委托身份验证”可以满足我们的需求。基本上,当给定用户名和密码时,Salesforce.com 会向原始组织发起 Web 服务调用以对其进行验证。

我们正在考虑通过以下方式实现这一点 - 我们的用户将使用用户 ID 和密码登录到我们的系统,我们将让他们通过身份验证。然后,当他们必须访问 Salesforce.com 时,我们会将用户名和 cookie(我们从身份验证中获得)提供给 Salesforce.com,然后 Salesforce.com 会将这些在 Web 服务调用中传递给我们的组织,我们将能够验证使用此 cookie 的用户。

有没有人尝试过/听说过这种方法?是否有任何已知的限制。任何帮助,将不胜感激。

4

2 回答 2

3

这是使用委托身份验证时的常用方法,主要问题是如果您的 DA 侦听器仅接受身份验证 cookie,则无法从网站以外的应用程序(例如移动应用程序、数据加载器等)登录到 salesforce。您可以编写您的 DA 侦听器以接受身份验证 cookie 或密码并以这种方式工作,或者您可以查看许多应用程序现在支持的基于 SAML 的较新的 SSO 功能。

于 2013-10-05T01:01:22.187 回答
2

一种方法是使用 Salesforce 支持的 SAML2 Web 浏览器 SSO 配置文件。您需要在 Salesforce 管理员设置中配置 SAML2 SSO。以下是简要概述:https ://help.salesforce.com/apex/HTViewHelpDoc?id=sso_saml.htm&language=th

最终用户的流程如下所示:

  • 用户导航到 Salesforce 并在登录表单中提供完全限定的用户名(例如 joe@acme.com)。
  • Salesforce 重定向用户并将 SAML2 身份验证请求发送到负责对用户进行身份验证的身份服务 (idp.acme.com)。SAML2 身份验证请求作为 HTTP 重定向的 GET 参数发送。
  • 身份服务对用户进行身份验证(例如,通过提供登录表单并验证用户名和密码)
  • 身份服务将 SAML2 断言返回给 Salesforce。实际上,断言是在 HTTP 响应中发送给用户的,并通过页面加载时触发的 javascript 函数自动发布到 Salesforce。
  • Salesforce 验证断言(数字签名、有效期等)并让用户进入。
于 2014-02-25T22:30:55.720 回答