为Web应用程序单点登录选择Kerberos(SPNEGO)Java库

Art*_*cis 5 java kerberos spnego single-sign-on

我目前正致力于在我们的Java Web应用程序中实现企业身份验证机制,包括单点登录.Windows网络是我们的主要目标,而Kerberos听起来是一个合理的选择.旁注:据我所知,Web(HTTP)环境中用于SSO的协议是SPNEGO,它基本上是Kerberos的包装器.因此,听起来Kerberos HTTP SSO库实际上正在使用SPNEGO - 如果我错了,请纠正我.

当我开始调查这个话题时,我意识到没有明显的选择.让我列出那些:

  1. Spring安全性Kerberos/SPNEGO扩展.这是我第一次看到的(因为我们已经使用了Spring安全性),但几年前它似乎停留在v1.0.0的第二个里程碑.只有这个SO问题才能给它带来希望它可以用于生产.
  2. WAFFLE - Windows身份验证功能框架.似乎活跃且功能丰富.它可以作为通用servlet"插入",也可以作为Spring安全过滤器.
  3. SPNEGO SourceForge.看起来非常轻量级,提供HTTP Servlet过滤器,教程很容易遵循.

是否有任何特殊原因选择一种选择而不是另一种?周围还有其他选择吗?

Mic*_*l-O 3

首先,你的假设是正确的。您需要 SPNEGO 才能使用 HTTP 执行 SSO。

  1. 这只能在 Spring 中合理使用。如果你有的话,就去拿吧。我们使用它已有两年多了。做它的工作。
  2. 这仅适用于 Windows。
  3. 使用与 Spring 相同的 JGSS,但与框架无关。这看起来效果很好。

如果您使用 Tomcat 7,则已经有内置支持。我已经捐赠了适当的代码。你应该具体说明你到底期望什么。如果您没有任何期望,但身份验证使用 Spring 的 3 或 1。

  • 请重新阅读问题和我的回答。OP 提到了三个选项,我已经对这三个选项进行了评论,并且 Waffle 仅在 Windows 上运行。 (2认同)