在DN输入中使用uid而不是cn登录ldap

时间:2013-08-11 22:49:37

标签: ldap

我在使用LDAP验证登录时遇到了问题。

我已经创建了一个包含所有基本信息的用户,并尝试使用详细信息登录phpldapadmin:

Login DN: cn=Sample User,ou=people,dc=example,dc=om
Password: xxxx

然后它就可以登录了。

但是当我尝试使用它时:

Login DN: uid=sampleuser,ou=people,dc=example,dc=om
Password: xxxx

它永远不会起作用(无法登录)。

请告诉我应该配置什么?

2 个答案:

答案 0 :(得分:22)

如果LDAP客户端使用简单的BIND操作,则BIND DN必须存在。简单的BIND操作至少使用DN和密码作为参数。

考虑以下条目:

dn: cn=sample user,ou=people,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
cn: sample user
uid: sampleuser

与以下内容不同:

dn: uid=sampleuser,ou=people,dc=example,dc=com
objectClass: top
objectClass: inetOrgPerson
cn: sample user
uid: sampleuser

即使属性相同(在此示例中省略了inetOrgPerson所需的SN)。 DN是主键,必须与简单的BIND操作一起使用。上面给出的条目是两个完全独立的条目,有两个不同的DN。

答案 1 :(得分:3)

我知道它有点过时,但我遇到了同样的问题。正如Terry描述的那样,完整的dn是不同的。您可以通过强制phpldapadmin使用uid作为dn中的第一个键创建用户来解决此问题。

您可以更改

<rdn>cn</rdn>

<rdn>uid</rdn>

在文件

/etc/phpldapadmin/templates/creation/posixAccount.xml

这会将每个posixAccount创建为:

dn: uid=sampleuser,ou=people,dc=example,dc=com