我是 SAML、SalesForce 和 PingFederate 的新手,需要使用 SAML 断言将基于 Java 的服务器与 SalesForce 和 PingFederate 集成。本质上,我需要做的是允许经过 SalesForce 身份验证的用户使用基于 Java 的服务器,而无需在从 SalesForce 定向到 Java 服务器时重新输入用户/密码信息。反过来,Java 服务器所做的更改也需要推送回 SalesForce。
我一直在尝试找到可以与基于 Java 的服务器合并的 Java 代码来处理身份验证,但我到处都找到了零碎的东西,但不是完整的解决方案。
是否有任何好的 Java 示例代码可以使用 SAML 通过 PingFederate 对 SalesForce 进行身份验证?
TIA
最佳答案
您首先需要澄清一些事情,解决方案随之而来。
- 谁将成为身份提供商:Salesforce 还是 PingFederate?
- Java 应用程序将成为独立的 SAML 2.0 服务提供商还是直接与负责联合的 PingFederate 集成?
Salesforce 作为 IdP
- 配置 Salesforce IdP 和作为 SP 的 PingFederate 之间的 SAML 2.0 连接。 ( Salesforce doc , PingFederate doc )
- 或者使用 PingFederate 的 Salesforce Cloud Identity Connector,它提供 IdP 适配器。 (doc)
Salesforce 作为 SP:
- 在作为 IdP 的 PingFederate 和作为 SP 的 Salesforce 之间配置 SAML 2.0 连接。 ( PingFederate doc , Salesforce doc )
- 或者使用 PingFederate 的 Salesforce 连接器,这可以简化配置。 (doc)
Java 应用程序作为独立 SP:
- 使用众多适用于 Java 的 SAML 2.0 库之一,然后将 PingFederate 配置为 IdP。
Java 应用程序集成到 PingFederate:
- PingFederate 也称为“最后一英里集成”,它有多个可用于此目的的集成套件,其中 Java IK 和 Agentless(或 RefID)IK 是我想到的两个。这两个都包含可以利用的示例应用程序。 ( Java IK doc , Agentless IK doc )
关于使用 Ping Federate 和 SalesForce 进行身份验证的 Java 示例代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38961912/