【发布时间】:2009-04-27 22:39:47
【问题描述】:
使用提供的用户名、密码和域名,我如何检索一个布尔值来指示用户是否已成功通过主域控制器进行身份验证?应使用 Windows 域控制器的 Kerberos 协议执行身份验证。在此先感谢,丹
【问题讨论】:
标签: authentication kerberos jaas
使用提供的用户名、密码和域名,我如何检索一个布尔值来指示用户是否已成功通过主域控制器进行身份验证?应使用 Windows 域控制器的 Kerberos 协议执行身份验证。在此先感谢,丹
【问题讨论】:
标签: authentication kerberos jaas
有一个仅限 Windows 的 JAAS 登录模块和 SSO 协商 (Kerberos/NTLM) 身份验证器的免费实现:Waffle。
【讨论】:
您需要为此编写自己的或使用第三方身份验证模块。当我这样做的时候,JDK 没有可用的东西,所以我使用了this tool。请注意,它是 GPL,但您可以从那里学习。您将必须创建 conf.描述您的身份验证模块的文件,并使用 java.security.auth.login.config 属性(例如,使用 -D 或任何一种方式)将其提供给您的 JVM。在 Tagish 的情况下,它看起来像这样:
NTLogin { com.tagish.auth.win32.NTSystemLogin 需要 returnNames=true returnSIDs=false defaultDomain="domain"; };
您需要做的另一件事是通过 java.security.krb5.conf 属性指定 kerberos 配置文件。我手边没有这个文件的详细信息,但你可以很容易地在网上找到它——google about krb5.conf。此文件中的设置必须与您的 Windows 域和其他 Windows 特定设置相匹配。
配置起来有点棘手,但对我来说它工作得很好,非常强大。
【讨论】: