在 OpenLDAP 中“动态”更改 DN

在 OpenLDAP 中“动态”更改 DN

我是 LDAP 的新手,遇到以下问题:

我使用 OpenLDAP 作为远程 Active Directory 的缓存代理。

用户的完整 DN 为"cn=Doe\, John,ou=users,ou=others,dc=company,dc=com",而uid( sAMAccountName) 是名字和姓氏的缩写形式。例如约翰·多伊杰多

我已经拥有 SVN 服务器,Bugzilla 和 ReviewBoard,它们可以很好地与此配合使用,因为它们有许多 LDAP 支持设置。但现在我正尝试设置 YouTrack,但其中缺少 LDAP 设置。

我希望能够使用简短的登录形式登录 YouTrack(例如“杰多"),但是当我在 YouTrack 中设置转换字符串时,"sAMAccountName=$login$,ou=users,ou=others,dc=company,dc=com"一直出现以下错误:

[LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext 错误,数据 52e,v1db1] 即“无效凭据”。

但是,如果我在转换字符串中明确指定全名,我就可以登录(当然其他人则不行):

"cn=Doe\, John,ou=users,ou=others,dc=company,dc=com"

所以,我的问题是:我可以“动态”修改用户的 DN 以获得如下效果吗?例如:

"cn=jdoe,ou=users,ou=others,dc=company,dc=com"

答案1

尽管这个问题可能有点老了,但我还是对此提出了一些想法。也许将来会对某人有所帮助:

  1. ldapmodify您可以通过 使用changetype: moddnmodrdn提供新的 DN ( ) 来简单地修改 DN newrdn。有关此内容的更多信息,请参见此处的第 4 点:http://www.zytrax.com/books/ldap/ch8/#changetype
  2. 您可以使用 OpenLDAP 中的“rwm”覆盖。这可以让您重写 DN、修改后缀,甚至提供数据的虚拟视图。检查man 5 slapo-rwm。这个东西真的很强大!
  3. 另一种方法是为初始条目设置一个别名。cn=jdoe,ou=users,ou=others,dc=company,dc=com可以是对象类“别名”,并将您的初始帐户写入属性中aliasedObjectName。在这种情况下,您需要做的就是检查 ldapsearch 操作是否遵循引用。

在我的服务器上,我有一个类似的设置,并选择了第三种方式。为了使其完全干净,我创建了自己的模式,其中有一个专用的别名对象类,它提供了必要的附加字段。

相关内容