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

Java 使用salesforce.com进行SAML身份验证,java,security,salesforce,saml,opensaml,Java,Security,Salesforce,Saml,Opensaml,在我们的web应用程序中,我需要身份提供者(IdP),它使用salesforce.com对用户进行身份验证 我已经在salesforce.com上完成了单点登录设置 完成这些设置后,salesforce将提供一个元数据文件 请告诉我: 我还需要在salesforce.com上进行其他设置吗 在我的java代码中下一步要做什么来进行身份验证 用户 如果您让Salesforce.com充当SAML服务提供商,则需要将SAML断言从您的IdP发送到Salesforce.com以验证用户。这些基本上都

在我们的web应用程序中,我需要身份提供者(IdP),它使用salesforce.com对用户进行身份验证

我已经在salesforce.com上完成了单点登录设置

完成这些设置后,salesforce将提供一个元数据文件

请告诉我:

  • 我还需要在salesforce.com上进行其他设置吗
  • 在我的java代码中下一步要做什么来进行身份验证 用户

如果您让Salesforce.com充当SAML服务提供商,则需要将SAML断言从您的IdP发送到Salesforce.com以验证用户。这些基本上都是经过签名的XML blob,通过HTTP重定向或HTTP POST传递给用户进行身份验证

从Salesforce.com的配置来看,它非常简单。下面是使用OpenSSO解决方案配置该端所需的示例:

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


如何在“java代码”中处理这个问题是一个有很多答案的巨大问题。您应该使用经验证的SAML解决方案作为IdP,而不是自己尝试实现SAML规范。有几个开放源码库,例如在Java环境中可以很好地工作的库,但是需要进行大量的集成工作。商业解决方案,如SSO和联合解决方案供应商(如)提供的解决方案,如果您有预算,将使事情变得相当简单。

我使用的是SAML2.0。请告诉我如何做出SAML断言。我需要做什么断言?i、 这是一个非常复杂的问题,有一个巨大的答案。核心SAML2.0规范精确地定义了SAML断言()中的内容,您将使用SAML2.0规范()定义的SSO概要文件。同样,您形成断言和响应的方式取决于您使用的SAML解决方案,或者您是否自己构建它。例如,使用OpenSAML:谢谢你这么好的帮助。我正在调查。因为我的任务是基于IDP的。请确认此流程。“我将解析salesforce提供的元数据文件,并创建SAML断言以发送给salesforce进行身份验证。”这是我完成任务所需的操作?元数据将告诉您初始配置信息(如任何签名证书和断言使用者服务的URL)。您不需要在应用程序中解析它,只需手动从中获取所需内容,因为它可能不会有太大变化。您的主要工作将是:1.)通过配置的IdP URL(在SFDC SSO配置中配置)从SFDC接收SAML AuthnRequests,2.)验证用户,3.)通过HTTP POST/重定向到断言使用者服务URL将带断言的签名SAML响应发送回SFDC。@Scott Tomilson。你知道我正在构建一个像OpenSSO和OneLogin这样的IDP吗。