在 LDAP 标准跟踪中为电子邮件地址定义的属性是mail
、rfc822mailbox
或RFC45240.9.2342.19200300.100.1.3
中定义的属性。也许您的过滤器应该是使用其中一种类型的属性断言,例如.user-search-filter="mail={0}"
我不确定“手动”是什么意思。LDAP 没有组织的概念,只有可能属于organization
. mail
如果条目属于objectClass
允许或需要该属性的条目,则这些条目可能具有mail
属性。换句话说,如果您的过滤器是mail={0}
(可能变为mail=user1@x.example.com
),那么使用该过滤器的搜索(给定适当的基础对象和范围)将返回所有具有mail
属性值的条目,user1@x.example.com
而不管该用户位于何处,也与属性的值uid
。
如果组织中的用户可以通过其他方式(可能通过组织或其他属性)识别,则过滤器可以是:
(&(uid={0})(o=x))
或者
(&(uid={0})(o=y))
一种或另一种方式,用户的条目必须可以通过条目的内容来识别。LDAP 数据库中的主键是专有名称( uid=abc,dc=x,dc=example,dc=com
),但条目中的属性可用于收紧过滤器。一些替代方案是:
- 使用唯一标识符(所有
uid
或mail
值在数据库中都是唯一的,因此,只有一个会返回到搜索请求)
- 使用属性来识别组织中的用户(如
o
上面的示例过滤器)
- 使用动态组生成组织中的用户列表。
- 考虑使用可扩展的匹配过滤器使可分辨名称中的值成为过滤过程的一部分
也可以看看