Confluence、ldap 用户过滤器和成员



Morning,

我正在尝试创建一个用于 Atlassian 汇合的用户过滤器,我有一个关于 memberOf 和正则表达式的问题。

(&(objectClass=Person)(memberOf=CN=Delivery Management Team,OU=EMEA,OU=Parks Lists,DC=emea,DC=company,DC=com))

返回属于此组的一些用户。 然而

(&(objectClass=Person)(memberOf=CN=Delivery Management*))

失败并显示错误。 只是看起来正则表达式不适用于memberOf,或者除了使用星号(对不起方尖碑(之外,ldap 中是否有一种语法方法来实现这一目标?

大卫

我假设您在这种情况下使用的是Active Directory,在这种情况下,问题只是AD不支持对带有通配符的DN值进行LDAP查询(除了memberOf=*类型查询,您正在寻找任何具有值集的内容(。

https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx:

允许使用通配符"*",除非 是 DN 属性。DN 属性的示例包括可区分的名称、经理、直接报告、成员和成员。如果属性为 DN,则只允许使用相等运算符,并且必须为值指定完整的可分辨名称(或为具有任何属性值的所有对象指定"*"字符(

我为完成您想要做的事情而采取的方法是为应用程序创建一个"所有用户"组 - 即"所有 Confluence 用户",然后访问级别组,如"Confluence 管理员"、"Confluence 工程师"、"Confluence 服务交付"。每当将某人添加到其中一个访问级别组时,将个人预配到组的过程都会添加所有用户组(有点惰性编码,那个;我不想检查他们是否已经是成员,并且可以轻松忽略 ldap 错误 20 值已经存在(;从"所有用户"组的帐户中删除最后一个访问权限级别组后,系统会从"所有用户"组中移除帐号。

在所有成员组中添加和删除个人都可以批量完成- 如果在我的环境中手动配置组,我可能会这样做。任何匹配"(&(!(memberOf={所有用户组(((|(memberOf={appgroup1}((memberOf={appgroup2}(...(memberOf=appgroupN((("添加到"我的所有用户"组;(&((memberOf={all users group(((!(|(memberOf={appgroup1}((memberOf={appgroup2}(...(memberOf=appgroupN((((从"我的所有用户"组中删除。

我的用户过滤器是"(&(memberOf={所有用户组}((",而谁可以实际访问由其他组成员身份控制的内容。

最新更新