融合,ldap用户过滤器和memberOf

时间:2018-10-25 13:58:06

标签: regex ldap confluence

早晨

我正在尝试创建一个用户过滤器以用于Atlassian的融合,并且我对memberOf和regex有疑问。

(&(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中有某种语法方法可以实现此目标,而不是使用星号(抱歉的方尖碑)?

大卫

1 个答案:

答案 0 :(得分:1)

我假定您在这种情况下使用的是Active Directory,在这种情况下,问题很简单,就是AD不支持使用通配符对DN值进行LDAP查询(除了memberOf = *类型的查询外,您在其中查找任何内容)并设置了值)。

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

  

允许使用通配符“ *”,除非d为DN属性。 DN属性的示例包括distinguishedName,manager,directReports,member和memberOf。如果属性为DN,则仅允许使用等于运算符,并且您必须为值指定完整的专有名称(或为具有属性值的所有对象指定“ *”字符)

我要完成的操作是为应用程序创建一个“所有用户”组-因此,“所有Confluence用户”,然后是诸如“ Confluence管理员”,“ Confluence工程师”,“ Confluence服务交付”。将个人设置为组的过程会在将某人添加到一个访问级别组中时将所有用户组添加到其中(惰性编码位;那是我不想检查他们是否已经是成员并且可以轻松忽略) ldap错误20值已存在);当 last 访问级别组从其帐户中删除后,该帐户将从所有用户组中删除。

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

我的用户过滤器是“(&(memberOf = {the all user group}))”,而该用户实际上可以访问由其他组成员身份控制的内容。