我可以使用ApacheDS
成功验证我的应用程序但现在我只使用一个域名。
我想在根域下添加子域或子组织。
例如,根组织为
dc=example,dc=com
和子组织dc=x
另一个子组织dc=y
现在我可以使用uid属性验证用户
像:
user-search-filter="(uid={0})"
我使用登录名如user1,没有@ extension
但我希望有子组织,我想使用user1@x.example.com
是否可能以及如何?
我的申请是春季申请,但我认为主题独立于我的申请方。
答案 0 :(得分:1)
电子邮件地址的LDAP标准跟踪中定义的属性为mail
中定义的rfc822mailbox
,0.9.2342.19200300.100.1.3
或user-search-filter="mail={0}"
。也许您的过滤器应该是使用其中一种类型的属性断言,例如organization
。
我不确定“手动”是什么意思。 LDAP没有组织概念,只有可能属于mail
的条目。如果条目属于允许或需要objectClass
属性的mail
,则这些条目可能具有mail={0}
属性。换句话说,如果您的过滤器是mail=user1@x.example.com
(可能变为mail
),那么使用该过滤器进行搜索(给定适当的基础对象和范围)将返回所有具有{{1}的条目无论用户位于何处,无论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
)ldapsearch
命令行工具,但这些概念在构建搜索请求时很有用