【问题标题】:Suborganizations and Unique id子组织和唯一 ID
【发布时间】:2012-09-04 09:07:38
【问题描述】:

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

但现在我只使用一个域。

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

例如一个根组织为

dc=example,dc=com

和子组织dc=x

另一个子组织dc=y

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

喜欢:

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

我使用类似 user1 的登录名,没有 @ 扩展名

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

有可能吗?如何实现?

我的应用程序是 Spring 应用程序,但我认为主题独立于我的应用程序方面。

【问题讨论】:

    标签: ldap spring-ldap apacheds


    【解决方案1】:

    在 LDAP 标准跟踪中为电子邮件地址定义的属性是 RFC4524 中定义的 mailrfc822mailbox0.9.2342.19200300.100.1.3。也许您的过滤器应该是使用其中一种类型的属性断言,例如,user-search-filter="mail={0}"

    我不确定“手动”是什么意思。 LDAP 没有组织的概念,只有可能属于organization 的条目。如果条目属于允许或需要mail 属性的objectClass,则这些条目可能具有mail 属性。换句话说,如果您的过滤器是mail={0}(可能变成mail=user1@x.example.com),那么使用该过滤器的搜索(给定适当的基础对象和范围)将返回所有具有mail 属性和值为@ 的条目987654335@,无论该用户位于何处,也与 uid 属性的值无关。

    如果组织中的用户可以通过其他方式(可能通过组织或其他属性)识别,则过滤器可以是:

    (&(uid={0})(o=x))
    

    (&(uid={0})(o=y))
    

    无论如何,用户的条目必须可以通过条目的内容来识别。 LDAP 数据库中的主键是专有名称 (uid=abc,dc=x,dc=example,dc=com),但条目中的属性可用于收紧过滤器。一些替代方案是:

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

    另见

    【讨论】:

    • 非常感谢您的回复。然后,我是否必须手动管理 @ 之后的邮件属性的扩展名,对应于我的 dc=sth dn,它有我的用户作为孩子?
    • 我可以把一个自动值作为邮件,$uid@$dn。或者喜欢它。我知道这很丑,但有可能吗?
    • 我不知道您的应用程序是如何工作的,因此我无法回答。
    • 我想知道是否可以将这样的表达式写为我在 ApacheDS 中的一个条目的属性。我认为这是不可能的,这就像做白日梦一样。感谢耐心
    猜你喜欢
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多