![在 OpenLDAP 中“动态”更改 DN](https://linux22.com/image/614316/%E5%9C%A8%20OpenLDAP%20%E4%B8%AD%E2%80%9C%E5%8A%A8%E6%80%81%E2%80%9D%E6%9B%B4%E6%94%B9%20DN.png)
我是 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
尽管这个问题可能有点老了,但我还是对此提出了一些想法。也许将来会对某人有所帮助:
ldapmodify
您可以通过 使用changetype: moddn
或modrdn
提供新的 DN ( ) 来简单地修改 DNnewrdn
。有关此内容的更多信息,请参见此处的第 4 点:http://www.zytrax.com/books/ldap/ch8/#changetype- 您可以使用 OpenLDAP 中的“rwm”覆盖。这可以让您重写 DN、修改后缀,甚至提供数据的虚拟视图。检查
man 5 slapo-rwm
。这个东西真的很强大! - 另一种方法是为初始条目设置一个别名。
cn=jdoe,ou=users,ou=others,dc=company,dc=com
可以是对象类“别名”,并将您的初始帐户写入属性中aliasedObjectName
。在这种情况下,您需要做的就是检查 ldapsearch 操作是否遵循引用。
在我的服务器上,我有一个类似的设置,并选择了第三种方式。为了使其完全干净,我创建了自己的模式,其中有一个专用的别名对象类,它提供了必要的附加字段。