2

我执行以下步骤从浏览器获取安全令牌以进行单点登录身份验证。

我能够从 http 标头中找到令牌。我的问题是:a)如何使用活动目录验证此令牌?b) 我如何从这个令牌中找到用户名?

在谷歌搜索时,Java API 似乎有 Kerberos5 登录模块来做我所期望的。但几乎所有页面都缺少简单的示例。

  1. Web 客户端通过 GET 请求访问 AS Java 资源。
  2. AS Java 通过将 HTTP 标头“WWW-Authenticate”设置为“Negotiate”,发送回 401 响应代码(未经授权)并请求启动 SPNego 身份验证。
  3. Web 客户端识别出 AS Java 主机是 Kerberos 领域的成员,并从 KDC 获取用于 AS Java 的 Kerberos 客户端/服务器会话票证。
  4. 然后,Web 客户端将 Kerberos 客户端/服务器会话票证发送到作为 SPNego 令牌包装在 HTTP 授权标头中的 AS Java。
  5. SPNegoLoginModule 从 HTTP 请求中读取令牌并将其提供给 JDK 的 Kerberos 实现。
  6. 结果是客户端身份验证成功或客户端请求被拒绝或需要再次往返 KDC 时失败。在失败的情况下,AS Java 的 Kerberos JDK 实现生成并将输出令牌发送回 Web 客户端。输出令牌包装为 SPNego 令牌并在 HTTP 授权标头中发送。

任何帮助,将不胜感激。

4

2 回答 2

4

很长一段时间没有任何反应。从互联网上的各个站点找到自己的答案。在以下链接中记录了我的经验: http ://webmoli.com/2009/08/29/single-sign-on-in-java-platform/

于 2009-09-04T01:42:25.190 回答
1

这是一个开源库http://spnego.sourceforge.net,其中包含一些您想要做什么的示例。

于 2009-11-16T11:22:03.463 回答