Java:使用最少的用户信息查询Active Directory信息

时间:2009-09-21 20:51:51

标签: java active-directory ldap

所以,情况就是这样。我们希望能够查询活动目录以获取用户的角色/组成员身份等。现在,我已经可以使用标准Java API(javax.naming)来做到这一点,但我需要一个用户名,域服务器名称/地址,和密码来做到这一点。用户也拥有有限的权限,因此我不能使用任何外部调用来使用花哨的管理工具。

在Java中,有没有办法只使用用户名和域名服务器名称/地址来获取该信息?我也对第三方软件包持开放态度。或者,您可以向我提供(或指向)有关在AD中配置的内容的信息以允许此操作。

希望这是有道理的。我不是AD大师,所以信息越多越好。

2 个答案:

答案 0 :(得分:6)

您需要先登录的问题是因为AD不允许匿名查询。在查询数据库之前,您必须以具有足够权限发出查询的有效用户登录(在LDAP术语中“绑定”)。

如果您的AD管理员愿意,您可以让他们创建一个允许绑定和查询数据库的特殊用户(我们称之为“ldapquery”)。该用户的用户标识和密码将成为代码中的配置值。

答案 1 :(得分:1)

好的,如此阐述其他人告诉我的内容以及我在这里给出的线索所做的大量研究,似乎我只是使用我的“特殊用户”作为我的代码中的登录信息,透明到用户,然后使用其凭据执行查询。所以:在代码中,使用“特殊用户”进行绑定,然后使用当前用户作为查询参数执行查询(sAMAccountName = username)。

全心全意感谢您的意见。