我执行以下步骤从浏览器获取安全令牌以进行单点登录身份验证。
我能够从 http 标头中找到令牌。我的问题是:a)如何使用活动目录验证此令牌?b) 我如何从这个令牌中找到用户名?
在谷歌搜索时,Java API 似乎有 Kerberos5 登录模块来做我所期望的。但几乎所有页面都缺少简单的示例。
- Web 客户端通过 GET 请求访问 AS Java 资源。
- AS Java 通过将 HTTP 标头“WWW-Authenticate”设置为“Negotiate”,发送回 401 响应代码(未经授权)并请求启动 SPNego 身份验证。
- Web 客户端识别出 AS Java 主机是 Kerberos 领域的成员,并从 KDC 获取用于 AS Java 的 Kerberos 客户端/服务器会话票证。
- 然后,Web 客户端将 Kerberos 客户端/服务器会话票证发送到作为 SPNego 令牌包装在 HTTP 授权标头中的 AS Java。
- SPNegoLoginModule 从 HTTP 请求中读取令牌并将其提供给 JDK 的 Kerberos 实现。
- 结果是客户端身份验证成功或客户端请求被拒绝或需要再次往返 KDC 时失败。在失败的情况下,AS Java 的 Kerberos JDK 实现生成并将输出令牌发送回 Web 客户端。输出令牌包装为 SPNego 令牌并在 HTTP 授权标头中发送。
任何帮助,将不胜感激。