在dc=example,dc=com
使用 Apache Directory Studio 下添加新用户时,我有这个树结构:
dc=example,dc=com
|-- ou = engineering
|-- cn = Lawrence K.H Loh+o=IKEA+sn=Loh+uid=lawrence+displayName=Lawrence
下面是 的属性列表cn
。
- objectClass = inetOrgPerson
- 对象类 = organizationalPerson
- objectClass = 人
- 对象类 = 顶部
- cn = Lawrence KH Loh
- sn = 罗
- 显示名称 = 劳伦斯
- o = 宜家
- uid =劳伦斯
- userPassword = SSHA 散列密码
LDAP: error code 49 - INVALID_CREDENTIALS: Bind failed: Attempt to lookup non-existant entry
当我通过 连接此条目时出现此错误uid=lawrence,ou=engineering,dc=example,dc=com
。但如果我使用它,它工作正常cn=Lawrence K.H Loh+o=IKEA+sn=Loh+uid=lawrence+displayName=Lawrence,ou=engineering,dc=example,dc=com
。我可以知道如何切换到uid=lawrence
而不是长名称进行身份验证吗?
对于那个特定的对象,你不太可能做到。LDAP 正在寻找您与对象的专有名称(DN) 进行绑定,在这种情况下,主要属性是
cn
. 这是一个深思熟虑的设计决定,因为不能保证容器内对象的任何给定属性除了与其 DN 相关联的属性之外都是唯一的。这不会阻止服务能够搜索您的目录并确定它
uid=lawrence
与该特定 DN 相关联(因此能够从该对象中找到所需的任何其他属性),但任何明确需要针对 DN 运行的调用只能针对主要属性运行。这并不是说您没有办法避免指定 DN。想到实施 SASL 身份验证并定义 SASL ID 和 DN 之间的映射。但是在你的问题的上下文中,不,你不能切换到使用你正在验证的 DN 的非主要属性来代替 DN。