我有一台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不知道吗?我是否正确思考?
谢谢
答案 0 :(得分:2)
LDAP的正常用法是绑定为具有搜索权限的已知用户,根据某些唯一属性(如电子邮件地址)搜索用户,然后以该用户身份绑定。