1

我可以使用 ApacheDS 成功验证我的应用程序

但现在我只使用一个域。

我想在根域下添加子域或子组织。

例如,根组织为

dc=example,dc=com

和子组织dc=x

另一个子组织dc=y

现在我可以使用 uid 属性对用户进行身份验证

像:

user-search-filter="(uid={0})"

我使用像 user1 这样的登录名,没有 @ 扩展名

但我想有子组织,我想使用 user1@x.example.com

有可能吗?怎么做?

我的应用程序是一个弹簧应用程序,但我认为主题独立于我的应用程序方面。

4

1 回答 1

1

在 LDAP 标准跟踪中为电子邮件地址定义的属性是mailrfc822mailboxRFC45240.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),但条目中的属性可用于收紧过滤器。一些替代方案是:

  • 使用唯一标识符(所有uidmail值在数据库中都是唯一的,因此,只有一个会返回到搜索请求)
  • 使用属性来识别组织中的用户(如o上面的示例过滤器)
  • 使用动态组生成组织中的用户列表。
  • 考虑使用可扩展的匹配过滤器使可分辨名称中的值成为过滤过程的一部分

也可以看看

于 2012-09-04T11:00:03.620 回答