2

使用提供的用户名、密码和域名,我如何检索一个布尔值,指示用户是否已成功通过主域控制器进行身份验证?应使用 Windows 域控制器的 Kerberos 协议执行身份验证。在此先感谢,丹

4

2 回答 2

3

有一个仅限 Windows 的 JAAS 登录模块和 SSO Negotiate (Kerberos/NTLM) 身份验证器的免费实现:Waffle

于 2010-05-25T12:21:56.280 回答
1

您需要为此编写自己的身份验证模块或使用第三方身份验证模块。当我这样做的时候,JDK 没有任何可用的东西,所以我使用了这个工具。请注意,它是 GPL,但您可以从那里学习。您将必须创建 conf. 描述您的身份验证模块的文件,并使用java.security.auth.login.config属性将其输入您的 JVM (例如,使用 -D 或任何一种方式)。在 Tagish 的情况下,它看起来像这样:

NTLogin { com.tagish.auth.win32.NTSystemLogin 需要 returnNames=true returnSIDs=false defaultDomain="domain"; };

您需要做的另一件事是通过java.security.krb5.conf属性指定 kerberos 配置文件。我手边没有这个文件的详细信息,但你可以很容易地在网上找到它——google about krb5.conf。此文件中的设置必须与您的 Windows 域和其他 Windows 特定设置相匹配。

配置起来有点棘手,但对我来说它工作得很好,非常强大。

于 2009-04-27T23:08:50.183 回答