LDAP 过滤器搜索用户时出现问题

问题描述 投票:0回答:1

我的广告有这样的层次结构:

ou=webapp,ou=groups,ou=users,dc=domain,dc=com

在 ou=admins 中我有 CN 组,例如

cn=g-backend
cn=g-frontend
等(
g
是前缀组)

所有用户都包含在

ou=groups,ou=users,dc=domain,dc=com
中的多个OU中,例如
ou=admins
ou=office

我将用户添加到组 cn=g-backend 或 cn=g-frontend,但在 keycloak 应用程序中,我无法配置 ldap 过滤器来导入用户而不指定特定组,例如:

(|(memberof=cn=g-backend,ou=webapp,ou=groups,ou=users,dc=domain,dc=com)
  (memberof=cn=g-backend,ou=webapp,ou=groups,ou=users,dc=domain,dc=com))

但是,是否有任何过滤器查询可以获取 ou 中所有 cn 组的所有用户,因为我想将来在 ou=webapp 中添加更多组并且不想重写查询?

我尝试过各种通配符

(memberof=*)
(memberof=CN=*)
(&(objectClass=user)(memberof=g*))
等 - 它不起作用。

active-directory ldap
1个回答
0
投票

不,LDAP 不支持这种间接。 (并且因为 memberOf 是 DN 值属性,所以它通常也不支持子字符串搜索。)如果您仅限于单个过滤器,那么您将需要一个所有用户都是其成员的组。

  • 要么让所有用户成为主“g-all-keycloak-users”组的直接成员(当然除了您现有的组),

  • 或将 groups 添加到父“keycloak-users”组,然后使用 Active Directory 特定的“链匹配”运算符来执行递归检查:

    (memberOf:1.2.840.113556.1.4.1941:=CN=g-all-keycloak-users,OU=groups,etc,etc,etc)
    

    (根据我对 Samba 4.x AD 实现的经验,使用此运算符的查询非常慢,所以我希望这不适用于 Microsoft AD。)

© www.soinside.com 2019 - 2024. All rights reserved.