2014-07-25 135 views
1

所以我环顾四周相当多的找到我要找的,尤其是在这个网站上的答案,没有任何运气还是有办法让正是我想要的这个程序。检查用户登录在Java应用程序中的Active Directory

这是一个Java应用程序,我想在Windows Server 2012 R2的Active Directory交互,使用户不必登录到该Java应用程序,如果他们使用Active Directory登录到他们的机器。

我听说如果用户使用Active Directory登录,机器上就会有某种令牌,我希望能够检查该令牌,获取用户名登录的用户,并使用该用户名(不考虑密码)将它们登录到Java应用程序中。我想这样做而不必针对AD服务器进行身份验证。

我不知道,这将是针对这个Java应用程序的Active Directory管理最有效的方式,但它就是我需要给我的处境。

链接,欢迎和我很抱歉,如果这个问题已经被问过。

编辑:这是假设我有唯一可用的信息是,这将匹配在Java应用程序中的用户名的Active Directory用户的用户名。我也有服务器凭证,但我试图避免以任何形式存储服务器的密码。

+0

您可以使用JAAS和NTLM模块。 – EJP

+0

对不起,你能详细说一下吗?我用JAAS研究了一下NTLM,但我真正能够找到的仍然是使用用户名和密码来访问AD服务器来验证凭据,我试图避免这种情况。虽然看起来我可能错过了一些东西。思考? – tmace

回答

0

想通了。使用System.getenv(“USERDNSDOMAIN”)为我们提供了user @ domain,如果用户未使用Active Directory登录,则这个域为null,在这种情况下就足够了。然后我们使用JAAS和一个服务器conf文件来获取我们的LoginContext,它从登录用户那里获取Subject。

希望这可以帮助别人!

相关问题