【问题标题】:How to support SAML for user authentication如何支持 SAML 进行用户身份验证
【发布时间】:2014-03-05 08:19:07
【问题描述】:

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

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

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

我是否在这里遗漏了一些非常简单的东西。请帮助或指向我的资源。

【问题讨论】:

  • Shibboleth 应该是正确的地方。您是否在产品部分查看过身份提供者和服务提供者?
  • 我使用 Shibboleth 的 OpenSAML 库走上了自己的道路。我不推荐它。寻找可以集成的解决方案;已经提出的任何建议都是很好的起点。只是不要从原始 API 开始。

标签: java security jakarta-ee saml-2.0


【解决方案1】:

看看:

SAML : SAML connectivity / toolkit

SAML : A SAML stack

那里有许多添加客户端 SAML 支持的方法的链接。

或者您可以使用诸如 OpenAM、Shibboleth(如上)Ping Identity 等的“代理”路线。

【讨论】:

  • 非常感谢大家。我将尝试上述链接并返回结果。
  • 我已经完成了与我们的 Web 应用程序的 SAML 集成。我们能够通过使用 OpenAM fedlets 来做到这一点(提供的文档非常好。)我们也成功地使用了 spring security saml 扩展。给春季安全人员的一句话。整个世界仍然不在maven上(ant仍然比maven更常用)。我必须设法获得所有相关的 jar 以用于 spring 安全 saml 扩展。
【解决方案2】:

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

从 Shibboleth 提供的 API 滚动您自己的实现并非易事;您最好集成现有产品,例如 Shibboleth 或 Ping Identity 等。在相对简单的 SAML 协议中有很多隐藏的复杂性,如果您尝试构建自己的协议,您将花费大量时间来应对许多陷阱。我已经做到了,我知道。

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

【讨论】:

    猜你喜欢
    • 2021-10-26
    • 2017-11-24
    • 2011-08-21
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2021-04-30
    相关资源
    最近更新 更多