【发布时间】:2013-01-24 15:34:26
【问题描述】:
我们有 Windows Active Directory,所有用户都在其中注册并用于登录 Windows。
我们有一个 Apache 服务器配置为使用 LDAP 来验证该 Active Directory 中的用户。它的设置使得在 PHP 中,我们所要做的就是调用$_SERVER['REMOTE_USER']。浏览器验证 Windows 中的用户登录并将此数据发送到 Apache,Apache 与 LDAP 对话以验证身份验证。当 LDAP 进行身份验证时,该代码返回用户的登录信息,否则返回 null。
通过这种方式,我们可以安全轻松地在 PHP 中验证用户身份,并使用他们的 AD 登录来控制对我们软件的访问。另一个优点是我们不需要登录页面,甚至不必处理变量中的密码:身份验证对用户透明地处理,他们一直自动登录到我们的软件,他们的密码永远不会进入我们的代码。
我想用 Servlet 做同样的事情。如果它与 PHP 一起使用,我认为没有理由不会发生这种情况。但我找不到该怎么做。我用谷歌搜索但找不到任何东西。有没有人做过类似的事情,可以指点我吗?
使用登录名和密码的标准身份验证在 Java 中运行。如果我有域、登录名和密码(在 Servlet 中来自登录页面),我可以验证任何用户。
【问题讨论】:
-
谢谢各位!我发现了一个名为 spnegro 的组件,它使 getRemoteUser() 能够工作。
标签: java authentication tomcat servlets ldap