2

我在运行 Windows_Server-2008-R2_SP1-English-64Bit-Base-2014.04.09 的 AWS EC2 上安装了 PingFederate。我有一个使用 Spring Security 进行身份验证的 Java 应用程序。

我已了解如何使用 PingFederate,我可以设置身份提供者 (IdP) 和服务提供者 (SP)。我已经收集到 IdP 将是应用程序用户提供登录凭据(身份)并将其传递给 SP,在此页面上的此图中,目标应用程序与 SP 分开:

http://documentation.pingidentity.com/display/PF66/Service+Providers+and+Identity+Providers

此图还显示了 IdP 和 SP 两侧的联合身份软件。

我已经用我的本地 PingFederate 服务器创建了一个 IdP 和 SP,只是为了查看配置选项是什么,我对其中的哪些部分实际上需要能够为我的 Spring Security 应用程序拥有 SSO 感到困惑。

我的问题是:

  1. 我是否需要 IdP 和 SP 来实现我正在尝试做的事情。

  2. 现在我们的用户名和密码都存储在 SQL Server 中,我会利用 PingFederate 来验证用户身份吗?

  3. 我什至应该为此使用 Spring Security SAML 还是其他路线更合适?

感谢您的帮助,我已经联系了 PingFederate,但我的区域解决方案架构师恰好要到周五才离开。

如果我的想法完全偏离了我也很抱歉,我正试图把我的想法包裹在需要的东西上。

4

2 回答 2

5

假设您的目标是在 Ping 和您的应用程序之间建立联合(例如为了外部化身份验证或启用单点登录),那么您的想法是正确的。

Ping Federate 充当身份提供者 (IDP),您可以将其配置为连接到您的 SQL 服务器,以便它可以从那里验证您的现有用户。IDP 与称为服务提供者 (SP) 的其他应用程序通信。

因此,为了连接到 Ping,您的应用程序需要能够充当 SAML 2.0 服务提供者,并且使用 Spring SAML 是实现此目的的一种非常好的方法。

SP 和 IDP 之间单点登录的典型数据流类似于:

  1. 用户访问需要认证的SP应用
  2. SP 创建一个 AuthenticationRequest 并将其发送给 IDP(在用户浏览器中使用重定向)
  3. IDP 处理请求并对用户进行身份验证
  4. IDP 使用 AuthenticationResponse 消息回复 SP
  5. SP 处理响应并根据包含的数据为用户创建会话
于 2014-05-08T06:21:50.517 回答
3

假设您在 Spring 应用程序和 PingFederate 之间需要 SAML。这取决于它的部署方式以及您是否是正确的(请参阅 Andy K 后续问题)。您应该查看 OpenToken Integration Kit for Java 或 Ping 的 ReferenceID Int Kit 作为可能的解决方案。与尝试将另一个可能不需要的 SAML 解决方案组合在一起相比,集成要简单得多。但是,我建议与您的 RSA 交谈,他们可以为您提供适合您场景的最佳方法。

于 2014-05-08T15:27:05.257 回答