如何支持SAML进行用户身份验证

时间:2014-03-05 08:19:07

标签: java security java-ee saml-2.0

我正在开发一个企业Web应用程序(基于Java / J2EE),它目前通过acegi安全性支持本机身份验证和授权。(版本1) 我们计划在应用程序中添加基于SAML的SSO身份验证。

理论上看起来很简单,(见下图) SAML flow

但是我找不到任何具体的方法/教程/一步一步的解决方案,以便为我的应用程序添加SAML支持。谷歌向我指出OpenSAML手册(发布下面的链接),但也没有多少帮助。 https://wiki.shibboleth.net/confluence/display/OpenSAML/OSTwoUserManual

我在这里错过了一些非常简单的事情。请帮助或指出我的资源。

2 个答案:

答案 0 :(得分:1)

看看:

SAML : SAML connectivity / toolkit

SAML : A SAML stack

有许多方法可以添加客户端SAML支持。

或者你可以使用像OpenAM,Shibboleth(如上所述)Ping Identity等的“代理”路线。

答案 1 :(得分:1)

如果你想去Shibboleth路线,那很好,但我建议不要从API(你发布的链接)开始。从安装指南开始,you can find here

从Shibboleth提供的API中推出自己的实现并不是一个微不足道的主张;你最好整合现有的产品,如Shibboleth或Ping Identity等。相对简单的SAML协议存在许多隐藏的复杂性,如果您尝试构建自己的陷阱,您将花费大量时间来解决许多陷阱。我知道,我已经完成了。

当然,如果你有很多时间,那么学习协议可能是值得的,因为在OpenSAML之上构建我自己的IdP后,我对SAML标准了解了很多,无论好坏,已证明我目前的职位很有价值。但是,到目前为止,这不是最快的解决方案。祝您好运,无论您选择哪条路线!