Active directory 查询Active Directory/LDAP,查找嵌套组织单位中的用户

Active directory 查询Active Directory/LDAP,查找嵌套组织单位中的用户,active-directory,ldap,teamcity,ldap-query,teamcity-7.0,Active Directory,Ldap,Teamcity,Ldap Query,Teamcity 7.0,我正在Windows域(Active Directory)中的TeamCity 7.1.2中配置LDAP身份验证 基本上它可以工作(我可以用我的域用户登录!),但整个公司的每个用户都可以登录。 -->现在我正试图限制开发者只能访问 我在TeamCity文档中发现: # filtering only users with specified name and belonging to LDAP group "Group1" with DN "CN=Group1,CN=Users,DC=exampl

我正在Windows域(Active Directory)中的TeamCity 7.1.2中配置LDAP身份验证

基本上它可以工作(我可以用我的域用户登录!),但整个公司的每个用户都可以登录。
-->现在我正试图限制开发者只能访问

我在TeamCity文档中发现:

# filtering only users with specified name and belonging to LDAP group "Group1" with DN "CN=Group1,CN=Users,DC=example,DC=com"
teamcity.users.login.filter=(&(sAMAccountName=$capturedLogin$)(memberOf=CN=Group1,CN=Users,DC=example,DC=com))
所以我只需要用我的用户所在的LDAP组替换
CN=Group1,CN=Users,DC=example,DC=com

但是查询LDAP对我来说是完全陌生的,所以我无法理解正确的语法

我的用户在这里:

所以它是:

CompanyName.de/CompanyName/IT/Entwickler/
“公司名称”、“IT”和“Entwickler”是组织单位。
我理解语法是:

OU=Entwickler,OU=IT,OU=CompanyName,DC=CompanyName,DC=de
当我将其放入TeamCity的配置文件时,我无法登录,TeamCity会将其写入其日志文件:

在LDAP中搜索:base='DC=CompanyName,DC=de',filter='(&(sAMAccountName=MyUser)(memberOf=OU=Entwickler,OU=IT,OU=CompanyName,DC=CompanyName,DC=de)),scope=2,attributes=[sAMAccountName,distrignedname]导致错误

以及:

用户“MyUser”登录失败:javax.security.auth.Login.LoginException:[LDAP:错误代码32-0000208D:NameErr:DSID-031001CD,问题2001(无对象),数据0,最佳匹配: 'DC=CompanyName,DC=de'

我做错了什么

注:
我的查询可能是正确的,这是TeamCity的一个问题。
(我正在使用的版本确实有关于LDAP的问题,但他们得到的错误消息比我多)

也许我会在TeamCity的问题跟踪器上发布此消息,但在我想确保不会发生错误之前,因为我的LDAP查询错误,因此这里的问题是。

memberOf正在查找一个组,而不是OU。您应该创建一个组来限制访问,将适当的用户添加到该组,并指定该组的权限筛选器中的嵌套名称。您应该注意,简单的'memberOf={DN}'筛选器不考虑嵌套组成员身份

编辑:
如果您真的想将其限制为OU中的用户,那么您需要将搜索的基本DN更改为OU,并将memberOf参数删除为搜索。

如果我“将搜索的基本DN更改为OU,并将memberOf参数删除为搜索”,您能给我举一个查询的示例吗?正如我所说,我是LDAP noob。谢谢!@ChristianSpecht LDAP查询有三个基本组件:搜索基础、搜索筛选器和范围。在您的错误中,我看到“在LDAP中搜索:base='DC=CompanyName,DC=de'”。我不知道这是从哪里来的,你能在另一行上设置基数吗,也许是teamcity.users.login.base?我确实在配置文件中设置了基数,但既没有
CN=users,DC=CompanyName,DC=de
也没有
CN=users,DC=CompanyName,DC=de
起作用。所以我尝试了你的第二个解决方案(将基数DN设置为OU)这确实奏效了!@Alfred:teamcity.users.base=OU=it,OU=CompanyName,DC=CompanyName,DC=de。现在如果主持人将你的答案转换为评论。。。