绑定到LDAP而不知道用户所在的OU

时间:2015-12-10 16:06:34

标签: java ldap unboundid-ldap-sdk

我有一台LDAP服务器和一台结构相同的AD服务器:

dn = com ---> dn = example ---> ou = users ---> UID =用户名

LDAPConnection connection = LDAPConnection(ip, port);
connection.bind("username", "password");

在AD服务器上运行,无需指定完整的DN。

LDAPConnection connection = LDAPConnection(ip, port);
connection.bind("uid=username,ou=users,dc=example,dc=com", "password");

通过指定完整绑定DN在LDAP服务器上运行。

但是,我的问题是我可能不一定知道ou = users,以下绑定失败并且凭据无效:

LDAPConnection connection = LDAPConnection(ip, port);
connection.bind("uid=username,dc=example,dc=com", "password");

这是因为在LDAP中,可能在两个单独的OU中有两个“用户名”用户,因此必须指定它以避免歧义?我想到的一个解决方法是在所有OU中搜索uid = username以找到正确的OU。

这是一个常见问题,OU不知道吗?我是否正确思考?

谢谢

1 个答案:

答案 0 :(得分:2)

LDAP的正常用法是绑定为具有搜索权限的已知用户,根据某些唯一属性(如电子邮件地址)搜索用户,然后以该用户身份绑定。