配置Ping Federate和Spring SAML以验证应用程序

时间:2014-05-07 16:08:00

标签: saml saml-2.0 federated-identity pingfederate spring-saml

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

我已经了解了如何使用PingFederate,我可以设置身份提供商(IdP)和服务提供商(SP)。我已经收集到,IdP将是提供登录凭证(身份)的应用程序用户,并将此传递给SP,该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,或者其他路由更合适?

  4. 感谢您的帮助,我已经联系了PingFederate,但我的区域解决方案架构师恰好在星期五之前。

    如果我完全不在思考中,我也会道歉,我正在努力将我的想法包围起来。

2 个答案:

答案 0 :(得分: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处理响应并根据包含的数据为用户创建会话

答案 1 :(得分:3)

假设你的Spring应用程序和PingFederate之间需要SAML。这不是真的,取决于它的部署方式和你是否(见Andy K后续问题)。您应该查看OpenToken Integration Kit for Java或者来自Ping的ReferenceID Int Kit作为可能的解决方案。比试图破解可能不需要的另一个SAML解决方案更容易集成。但是,我建议您与RSA联系,他们可以为您的方案提供最佳方法。