我正在尝试从Java Web应用程序连接到salesforce。我希望我的应用程序充当Idp,而销售人员充当SP。但是,我需要帮助将声明发送给Salesforce。请帮忙!
答案 0 :(得分:0)
问题1 :我希望我的应用程序充当IDp,而Salesforce充当SP。
答案:
(I)您应该使用Java Web应用程序实现SAML IdP。
(II)为了在您的生产环境中快速部署SAML IdP,强烈建议利用第三方SAML IdP(例如Shibboleth IdP)。这样您就有足够的时间为Java Web应用程序开发自己的SAML IdP。
我们用 Java 开发了先前的Zero-Password Authentication and Authorization System版本,并利用Shibboleth IdP为企业应用程序提供了SAML SSO。
我们在 Scala 中开发了具有扩展性和高可用性的Zero-Password Authentication and Authorization System当前版本,以为没有Shibboleth IdP的企业应用程序本机提供SAML SSO。
GitHub存储库上的(III)How to build and run Shibboleth SAML IdP and SP using Docker container提供了有关使用Shibboleth SAML IdP和OpenLDAP为Java中的SAML构建自己的IDP的说明。
Shibboleth SAML IdP负责身份联合。
OpenLDAP负责身份验证。
(IV)我已验证了由Docker运行的Shibboleth SAML IdP(身份提供程序)和OpenLDAP为以下企业应用程序提供的SAML单一登录(SSO)。换句话说,我利用运行Docker的Shibboleth SAML IdP和OpenLDAP成功登录到以下企业应用程序。
Microsoft Office 365
Google G Suite
Salesforce
Dropbox
Box
Amazon AWS
OpenStack
Citrix NetScaler
VMware vCloud Director
Oracle NetSuite
(V)为方便起见,我进行了第8次提交,将Salesforce SP元数据和相应的SAML配置上传到How to build and run Shibboleth SAML IdP and SP using Docker container。
请注意:我已成功使用https://example.my.salesforce.com登录到Salesforce组织的用户名“ winston.hong@example.com”的“ example.com”帐户(Shibboleth IdP running with Docker Container)。>
通过执行以下Shibboleth SAML IdP配置过程,您可以使用用户名(例如“ winston.hong@your-company”)登录到Salesforce组织的“ your-company.com”帐户(https://your-company.my.salesforce.com)。 .com”)。
(V.a)从GitHub存储库下载构建和运行Shibboleth SAML IdP的源代码。
$git clone https://github.com/winstonhong/Shibboleth-SAML-IdP-and-SP
(V.b) 替换为“ shibboleth-idp-dockerized / ext-conf / metadata / sp-salesforce-com.metata”和从Salesforce组织帐户下载的Salesforce SP元数据。
(V.c)编辑“ shibboleth-idp-dockerized / ext-conf / conf / relying-party.xml”以替换 SAML SP实体ID“ https://example.my.salesforce.com”和“ https://your-company.my.salesforce.com”
(Vd)编辑“ LDAP-Dockerized-CentOS / users.ldif”,将用户信息“ winston.hong@example.com”替换为用户信息“ winston.hong@your-company.com”。
(V.e)按照README(https://github.com/winstonhong/Shibboleth-SAML-IdP-and-SP/blob/master/README.md)提供的说明来构建和运行Shibboleth IdP,OpenLDAP和Shibboleth SP。
验证您可以通过Shibboleth IdP登录Shibboleth SP应用程序。
(Vf)使用[公共证书模板“ shibboleth-idp-dockerized / ext-conf / credentials / idp-signing.crt”和第二个签名证书“ shibboleth-idp-dockerized / ext-conf / metadata / idp-metadata.xml”来创建Shibboleth IdP的断言签名公共证书。然后,您需要将Shibboleth IdP的签名证书上载到您的Salesforce组织帐户。
(V.g)按照说明Set Up Salesforce Single Sign-On for Your Internal Users用您的Salesforce组织帐户完成SAML SP配置。请注意,“为 SAML身份类型选择断言包含用户的Salesforce用户名”。
(V.h)现在,您可以通过Shibboleth IdP以SP身份登录到Salesforce组织帐户。
很容易将Shibboleth IdP配置为使用与Java Web应用程序相同的数据存储/存储库(例如OpenLDAP或MySQL)。然后,您的Java Web应用程序将充当SAML IdP,而无需任何开发任务。
(VI)另一个StackOverflow问题"Setting up a new Shibboleth IdP to work with an existing SAML SP"提供了有关Shibboleth SAML配置的有价值的信息和讨论。
问题2 :但是,我需要帮助才能将断言发送给Salesforce。
答案:
按照问题1的答案提供的说明,您的Java Web应用程序可以利用基于Java的Shibboleth SAML IdP将断言发送给Salesforce。