如何在 Openldap 和 Phpldapadmin 中创建 LDAP 别名?

How to create LDAP aliases in Openldap and Phpldapadmin?

我正在尝试使用电子邮件字段执行此示例:

https://coderwall.com/p/c0w6-q/create-ldap-aliases-in-openldap

这是应该创建两者的 .ldif

# this is the user

dn: uid=aka,c=VN,ou=users,ou=school,o=vdm,dc=domain,dc=com
objectclass: top
objectClass: extensibleObject
objectclass: posixAccount
objectclass: inetOrgPerson
cn: Alexander Fake
employeetype: developer
gecos: Alexander Fake
gidnumber: 14564103
homedirectory: /home/aka
loginshell: /bin/bash
mail: alexander.fake@domain.com
sn: Fake
uid: aka
uidnumber: 14583105
userpassword: {SSHA}SgmdndrPR5UVLOAmDs5JOJvqr3WmPYob

# this is the alias

dn: mail=alexander.Fake@domain.com,dc=mailAccount,dc=domain.com,dc=mail,dc=domain,dc=com
changetype: add
objectClass: alias
objectClass: top
objectClass: extensibleObject
objectclass: inetOrgPerson
uid: aka
aliasedObjectName: uid=aka,c=VN,ou=users,ou=school,o=vdm,dc=domain,dc=com

我只能import/export ldif,我使用phpldapadmin 进行管理。

创建别名时会产生以下错误:

This update has been or will be cancelled, it would result in an attribute value not being unique. You might like to search the LDAP server for the offending entry. 

有谁知道如何在 openldap 和 phpldapadmin 上创建别名?

基本正确。只是:

  • aliasedObject 中删除 uid=aka 属性。它不需要它。它指的是另一个具有该 UID 值的对象。
  • 同时从别名中删除 inetOrgPerson。它不是一个人,它是一个人的别名。
  • objectClass属性只需要包含topalias;和 extensibleObject 所以你可以提供一个 cn 或你喜欢的任何属性作为 DN 的一部分,如果你想这样做的话:从我的 DIT 来看,这似乎没有必要。

来源质量差 material。不要依赖任意的互联网垃圾。使用官方文档。