java - 来 self 的自定义 servlet 的 Kerberos 身份验证?

标签 java single-sign-on

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

我能够从http header 找到 token 。我的问题是: a) 如何使用 Active Directory 验证此 token ? b) 如何从此 token 中找到用户名?

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

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

如有任何帮助,我们将不胜感激。

最佳答案

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

关于java - 来 self 的自定义 servlet 的 Kerberos 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/956657/

相关文章:

java - 使用 jquery 根据 td 文本过滤不同的行?

java - 未找到元素 : GAVE UP when using expectedconditions with phantomjs

java - 将字符串路径保存在数据库中

具有 SAML 签名证书的 Azure AD SSO

azure - 尝试使用另一个 Azure 租户的 guest Azure AD 帐户通过 SSO 登录 Office 加载项

c# - Azure AD 错误请求

java - 连接超时与尝试了所有 : '1' addresses, 但无法通过 HTTP 连接到服务器之间的区别

transient 内存中的 Java Card 对象实例

ruby-on-rails - RubyOnRails 设计的单点登录策略

single-sign-on - 如何为 CAS 和客户端(不同的机器)设置 SSL