【问题标题】:Java Sample code for Authentication with Ping Federate and SalesForce使用 Ping Federate 和 SalesForce 进行身份验证的 Java 示例代码
【发布时间】:2016-08-15 19:42:33
【问题描述】:

我是 SAML、SalesForce 和 PingFederate 的新手,需要使用 SAML 断言将基于 Java 的服务器与 SalesForce 和 PingFederate 集成。本质上,我需要能够做的是允许经过 SalesForce 身份验证的用户使用基于 Java 的服务器,而无需在从 SalesForce 定向到 Java 服务器时重新输入用户/传递信息。反过来,从 Java 服务器所做的更改也需要推送回 SalesForce。

我一直在尝试寻找可以与基于 Java 的服务器结合使用的 Java 代码来处理身份验证,但我到处找零零碎碎的东西,但不是一个完整的解决方案。

是否有任何好的 Java 示例代码用于使用 SAML 通过 PingFederate 对 SalesForce 进行身份验证?

TIA

【问题讨论】:

  • 您能否详细说明您的以下陈述? “反过来,从 Java 服务器所做的更改也需要推送回 SalesForce。”据我了解,您希望将数据写入 Salesforce,这将是一个单独的主题,不属于身份验证舞蹈的一部分。
  • 我也有这个要求。我有一个 Java Springbok 应用程序,我想为此应用程序使用 Ping Federate 身份验证。我找不到任何示例代码(使用此类 Java 应用程序使用的 Java SDK)

标签: java salesforce pingfederate


【解决方案1】:

您需要先澄清几件事,然后解决方案。

  • 谁将成为身份提供者、Salesforce 或 PingFederate?
  • Java 应用程序将成为独立的 SAML 2.0 服务提供者还是直接与负责联合的 PingFederate 集成?

Salesforce 作为 IdP

  • 在 Salesforce IdP 和 PingFederate 之间配置 SAML 2.0 连接作为 SP。 (Salesforce doc, PingFederate doc)
  • 或者使用 Salesforce Cloud Identity Connector for PingFederate,它提供 IdP 适配器。 (doc)

作为 SP 的 Salesforce:

  • 在作为 IdP 的 PingFederate 和作为 SP 的 Salesforce 之间配置 SAML 2.0 连接。 (PingFederate doc, Salesforce doc)
  • 或者使用 Salesforce 连接器用于 PingFederate,这可以简化配置。 (doc)

作为独立 SP 的 Java 应用程序:

  • 使用众多适用于 Java 的 SAML 2.0 库之一,然后将 PingFederate 配置为 IdP。

Java 应用程序集成到 PingFederate:

  • 也称为“最后一英里集成”,PingFederate 有几个可用的集成工具包可用于此目的,Java IK 和无代理(或 RefID)IK 是我想到的两个。这两个都包括可以利用的示例应用程序。 (Java IK doc, Agentless IK doc)

【讨论】:

    【解决方案2】:

    对于您的用例,有三个子系统,主要是 (1) PingFederate 作为身份提供者 (IdP),(2) Salesforce 作为应用程序,以及 (3) 基于 Java 的服务器应用程序。单点登录 (SSO) 通过 PingFederate 向每个应用程序颁发 SAML 令牌进行。一旦通过访问两个应用程序之一发生经过身份验证的会话,第二个应用程序将不会被要求重新验证授予的 SSO 策略[策略尚未过期。

    这里有两个 SAML 连接,主要是 Salesforce 连接和到您的 Java 应用程序的连接。互联网上有很多教程来配置 Salesforce-PingFederate SAML 连接。您的问题是“如何从 PingFederate 建立与基于 Java 的应用程序的连接”。这里有几个使用 PingFederate 的选项。我建议您下载无代理(也称为参考 ID)集成工具包和 Java 集成工具包。这两个集成工具包都允许“最后一英里”集成到基于 Java 的服务器应用程序。这两个工具包都有文档和样本。我的首选是无代理集成工具包,因为它使用 REST API,并且不需要将任何库编译到您的应用程序中。

    【讨论】:

      猜你喜欢
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2015-09-15
      • 2010-12-10
      • 1970-01-01
      • 2016-08-04
      • 2017-07-14
      相关资源
      最近更新 更多