如何配置java app充当身份提供者

时间:2013-12-11 14:05:54

标签: java configuration single-sign-on saml-2.0

我有一个非常简单的java web应用程序,我可以管理用户注册和身份验证。我想将此应用程序作为SAML身份提供者。然后我将创建另一个简单的Web应用程序,这将要求用户在使用之前进行身份验证。所以基本上我希望我的第一个应用程序是IdP,我的第二个应用程序是服务提供商。工作流程应该是这样的:用户转到app2。 App2将用户重定向到用户获得身份验证的app1。如果身份验证成功,app1会将用户重定向到他具有完全访问权限的app2。我对SAML比较新。是否有任何教程可以帮助我轻松地完成它?

2 个答案:

答案 0 :(得分:4)

查看Shibboleth,它是SAML身份提供程序的即用型实现。事实上,您已经拥有一个应用程序,您希望它作为身份提供程序提供两种选择:

  1. 配置Shibboleth以将您的用户数据模型用作身份验证源(不确定是否可行)
  2. 使用用于实现Shibboleth的Java Library OpenSAML-Java。这仅提供围绕SAML 2.0的Web SSO配置文件的SAML断言的处理(创建,验证,交换)。您必须在App2和App1中自行创建Web请求重定向过程。
  3. SAML不是很轻松,而且它是一个全面的标准,作为其他更简单的标准如OpenID或OAuth的一个例子(它们有一些共同的原则,但确实更简单)。它与CORBA与Java RMI的故事几乎完全相同

    这是一个很好的起点,可以基本了解使用SAML Web Browser SSO Profile时所做的工作:

答案 1 :(得分:1)

您的问题分为两部分。

你想:

  • Java SAML服务器(STS)
  • Java SAML客户端

编写STS是一个非常重要的问题。您可能最好使用现有的实现。 OpenAM是另一种可能性。它支持许多身份存储库选项。

就客户而言,请参阅SAML : SAML connectivity / toolkit