使用salesforce.com进行SAML身份验证

问题描述:

在我们的Web应用程序中,我希望身份提供商(IdP)使用salesforce.com对用户进行身份验证。使用salesforce.com进行SAML身份验证

我已使用salesforce.com上的单点登录设置

这些设置后,salesforce提供了一个元数据文件。

请告诉我:

  • 是否有任何其他设置我需要在salesforce.com?
  • 接下来在我的java代码中进行身份验证 user?

如果您有Salesforce.com作为SAML服务提供商,那么您需要将SAML断言从您的IdP发送到Salesforce.com以验证用户身份。这些基本上是经过签名的XML blob,它们在HTTP重定向或HTTP POST中传递以对用户进行身份验证。

从Salesforce.com配置方面来看,它非常简单。以下是使用OpenSSO解决方案进行配置所需的示例:http://blogs.oracle.com/rangal/entry/saml2_salesforce_com

您在该配置中输入的内容很大程度上取决于您的IdP可以执行的操作。例如,什么版本的SAML,用户标识符在SAML断言中的什么&以及与您的IdP用于数字签名断言的密钥相匹配的公共验证证书。

你如何在“你的java代码”中处理这个问题是一个有很多答案的巨大问题。您应该使用经过验证的SAML解决方案作为您的IdP,而不是试图自己实施SAML规范。有几个开源库,如OpenSAML,在Java环境中很好地工作,但需要大量的集成工作。商业解决方案(如由SSO &联合解决方案供应商提供的解决方案供应商(如Ping身份验证))可以让您的工作更轻松,如果您有预算。

+0

我正在使用SAML2.0。请告诉我如何制作SAML声明。我需要做什么事来断言?即(元数据文件,用户标识等) – 2011-05-10 12:36:30

+1

这又是一个非常复杂的问题,并带有巨大的答案。核心SAML 2.0规范准确定义了SAML Assertion(http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf)中的内容,您将使用SSO Profile由SAML 2.0 Profiles规范定义(http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf)。同样,你如何形成断言和响应取决于你使用的SAML解决方案,或者你自己构建它。例如,使用OpenSAML:https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUserManual – 2011-05-11 00:57:51

+0

感谢您的帮助。我正在研究它。因为我的任务是基于IDP的。请确认这个流程。 “我将解析salesforce提供的元数据文件,并创建SAML Assertion以发送给Salesforce进行身份验证。”这是我为了完成任务而需要做的事情? – 2011-05-11 03:15:09