使用SalesForce.com进行SSO

时间:2013-10-04 22:36:27

标签: salesforce single-sign-on

我们希望使用Salesforce.com进行SSO。从他们的文档中,我们发现此选项“委托身份验证”以满足我们的需求。基本上,当给定用户名和密码时,Salesforce.com将启动对原始组织的Web服务调用以使其经过验证。

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分: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函数自动POST到Salesforce。
  • Salesforce验证断言(数字签名,时间有效期等)并让用户进入。