Ldap 子组织和唯一id

Ldap 子组织和唯一id,ldap,spring-ldap,apacheds,Ldap,Spring Ldap,Apacheds,我可以使用ApacheDS成功验证我的应用程序 但现在我只使用一个域 我想在根域下添加子域或子组织 例如,根组织作为 dc=example,dc=com 和子组织dc=x 另一个子组织dc=y 现在我可以使用uid属性对用户进行身份验证 比如: 我使用类似user1的登录名,没有@extension 但我想有子组织,我想使用user1@x.example.com 有可能吗?怎么可能 我的应用程序是spring应用程序,但我认为subject独立于我的应用程序端。LDAP标准跟踪中为电子邮件地址

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

但现在我只使用一个域

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

例如,根组织作为

dc=example,dc=com
和子组织
dc=x

另一个子组织
dc=y

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

比如:

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

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

有可能吗?怎么可能


我的应用程序是spring应用程序,但我认为subject独立于我的应用程序端。

LDAP标准跟踪中为电子邮件地址定义的属性是
mail
rfc822mailbox
,或
0.9.2342.19200300.100.1.3
,如中所定义。也许您的过滤器应该是使用这些类型之一的属性断言,例如,
user search filter=“mail={0}”

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

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

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

无论如何,用户的条目必须能够通过条目内容识别。LDAP数据库中的主键是可分辨名称(
uid=abc,dc=x,dc=example,dc=com
),但条目中的属性可用于加强过滤器。有些备选方案是:

  • 使用唯一标识符(所有
    uid
    mail
    值在数据库中都是唯一的,因此在搜索请求中只返回一个)
  • 使用属性标识组织中的用户(如上面示例过滤器中的
    o
  • 使用动态组生成组织中的用户列表
  • 考虑使用可扩展的匹配筛选器,使可分辨名称中的值成为筛选过程的一部分
另见
  • -这篇文章是关于
    ldapsearch
    命令行工具的,但是这些概念在构造搜索请求时很有用

LDAP标准跟踪中为电子邮件地址定义的属性是
mail
rfc822mailbox
,或
0.9.2342.19200300.100.1.3
,如中所定义。也许您的过滤器应该是使用这些类型之一的属性断言,例如,
user search filter=“mail={0}”

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

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

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

无论如何,用户的条目必须能够通过条目内容识别。LDAP数据库中的主键是可分辨名称(
uid=abc,dc=x,dc=example,dc=com
),但条目中的属性可用于加强过滤器。有些备选方案是:

  • 使用唯一标识符(所有
    uid
    mail
    值在数据库中都是唯一的,因此在搜索请求中只返回一个)
  • 使用属性标识组织中的用户(如上面示例过滤器中的
    o
  • 使用动态组生成组织中的用户列表
  • 考虑使用可扩展的匹配筛选器,使可分辨名称中的值成为筛选过程的一部分
另见
  • -这篇文章是关于
    ldapsearch
    命令行工具的,但是这些概念在构造搜索请求时很有用

非常感谢您的回复。那么,我是否必须手动管理@之后的邮件属性的扩展名,对应于我的dc=sth dn,它的用户是我的孩子?我是否可以将一个自动值设置为mail maybe,$uid@$dn。或类似的东西。我知道这很难看,但可能吗?我不知道你的应用程序是如何工作的,因此我无法回答。我想知道我是否可以在ApacheDS中编写这样一个表达式作为我的一个条目的属性。我认为这是不可能的,这就像做一个白日梦。谢谢你的耐心。非常感谢你的回复。那么,我是否必须手动管理@之后的邮件属性的扩展名,对应于我的dc=sth dn,它的用户是我的孩子?我是否可以将一个自动值设置为mail maybe,$uid@$dn。或类似的东西。我知道这很难看,但可能吗?我不知道你的应用程序是如何工作的,因此我无法回答。我想知道我是否可以在ApacheDS中编写这样一个表达式作为我的一个条目的属性。我想是的
(&(uid={0})(o=y))