我正在尝试在Debian Wheezy上使用ldap来设置传递代理到Active Directory。 slapd.conf文件如下。 我可以通过使用姓氏绑定find,名字:
ldapsearch -x -h localhost -b "OU=Site-Users,DC=mycompany,DC=local" -D "cn=LaCroix\, Jay,OU=My Group,OU=Site-Users,DC=mycompany,DC=local" -W "(sAMAccountName=jlacroix)" cn sAMAccountName
这确实有效:
result: 0 Success
但是我们真正想做的是通过用户名(sAMAccountName)进行绑定:
ldapsearch -x -h localhost -b "OU=Site-Users,DC=mycompany,DC=local" -D "cn=jlacroix,OU=My Group,OU=Site-Users,DC=mycompany,DC=local" -W "(sAMAccountName=jlacroix)" cn sAMAccountName
这不起作用:
ldap_bind: Invalid credentials (49) additional info: 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1
注意:尽pipe出现这种错误,我的凭据是正确的,正如在第一个例子中看到的那样,绑定通过姓氏,名字来工作。
我已经search了几个星期的例子,无论我尝试什么,我似乎无法绑定到sAMAccountName,只有姓,名。
我可以直接searchAD时searchsAMAccountName,而不是使用我的LDAP代理时。
这是我的/etc/ldap/slapd.conf:
# Import our schema include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/samaccountname.schema moduleload back_ldap moduleload back_bdb.la moduleload rwm # Support both LDAPv2 and LDAPv3 allow bind_v2 pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args loglevel 1 # Our slapd-ldap back end to connect to AD database ldap suffix ou=Site-Users,dc=mycompany,dc=local subordinate rebind-as-user yes uri ldap://10.10.10.99:389 chase-referrals yes readonly yes #protocol-version 3 overlay rwm rwm-map attribute uid sAMAccountName rwm-map attribute mail proxyAddresses binddn cn=ADreader bindpw supersecretpassword # Our primary back end database bdb suffix dc=mycompany,dc=local rootdn cn=admin,dc=mycompany,dc=local rootpw supersecretpassword directory /var/lib/ldap # Indexes for this back end index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uid eq,pres,sub
由于对象的DN是cn=LaCroix\, Jay,OU=My Group,OU=Site-Users,DC=mycompany,DC=local所以您可以“运行”示例。 第二个不起作用,因为对象的DN不是cn=jlacroix,OU=My Group,OU=Site-Users,DC=mycompany,DC=local 。
这并不是说你用“Last Name,First Name”来绑定,而是将对象的CN设置为“Last Name,First Name”,并且绑定了对象的CN。 你不能只把sAMAccountName作为CN,并期望它工作。 对象的CN是对象的CN。
用绑定DN“DOMAIN \ sAMAccountName”直接绑定到AD将会正常工作。 我不认为OpenLDAP会处理这个问题。 它可能会拒绝这种语法,即使从Active Directory的angular度来看,它会正常工作。