在没有用户密码的情况下生成 AD Kerberos 票证
Posted
技术标签:
【中文标题】在没有用户密码的情况下生成 AD Kerberos 票证【英文标题】:Generating AD Kerberos tickets without user password 【发布时间】:2012-12-10 17:35:39 【问题描述】:我正在开发一个需要代表用户生成 Kerberos 票证的 Java EE 服务器应用程序。
我正在开发的应用程序将使用备用凭据(非 Active Directory,例如生物识别)对用户进行身份验证,然后需要以某种方式生成 Kerberos 票证,以显示用户已通过身份验证。然后,我将使用 Kerberos 票证生成一个 SPNEGO 令牌,并将该令牌插入到 HTTP 标头中,这样用户就不必在来自浏览器的后续请求中重新进行身份验证。
是否可以在没有用户原始 AD 密码的情况下代表用户生成 Kerberos 票证? (假设我可以访问 AD 服务帐户登录名和密码)。如果可能,我将如何去做?需要什么样的配置、权限?
【问题讨论】:
【参考方案1】:是的,这是可能的。 Microsoft 为此扩展了 Kerberos。这称为用户服务 (S4U)。您的案例称为S4U2Self
(协议转换)。这将在 Java 8 中可用。您可以检查 ticket 并将该代码添加到 Java 认可的类路径中。你可以在MIT Kerberos wiki阅读更多内容。
【讨论】:
非常感谢。正是我想要的! 很高兴能为您提供帮助。如果你得到这个工作,请分享你的经验。你也可能不赞成我的回答。 请注意,您需要以某种方式从客户端获取 UPN。以上是关于在没有用户密码的情况下生成 AD Kerberos 票证的主要内容,如果未能解决你的问题,请参考以下文章
使用域用户(AD 用户)连接到没有密码的 SQL Server