Windows 域的 JAAS 身份验证

Posted

技术标签:

【中文标题】Windows 域的 JAAS 身份验证【英文标题】:JAAS Authentication to Windows Domain 【发布时间】:2009-04-27 22:39:47 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

没用过,但是很好看。【参考方案2】:

您需要为此编写自己的或使用第三方身份验证模块。当我这样做的时候,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 特定设置相匹配。

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

【讨论】:

以上是关于Windows 域的 JAAS 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

具有数据库授权的 Spring JAAS 身份验证

针对 Windows 域的分散式身份验证

如何集成基于 angularjs 和 java jaas 的身份验证?

camunda-webapp 和 JAAS 身份验证

将特定域的 ASP.NET 模拟用户添加到 windows 身份验证

使用 WildFly 在 JMS 中进行 JAAS 身份验证:javax.jms.JMSSecurityException:HQ119032:用户:null 没有权限 = 在地址 2 上发送