我正在 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))
所以我只需要替换CN=Group1,CN=Users,DC=example,DC=com
为我的用户所在的 LDAP 组。
但是查询 LDAP 对我来说是全新的,所以我无法找出正确的语法。
我的用户在这里:
所以这是:
CompanyName.de/CompanyName/IT/Entwickler/
“CompanyName”、“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, distinctName] 导致错误
和:
用户“MyUser”登录失败:javax.security.auth.login.LoginException:[LDAP:错误代码 32 - 0000208D:NameErr:DSID-031001CD,问题 2001(NO_OBJECT),数据 0,最佳匹配:'DC=CompanyName ,DC=de'
我究竟做错了什么?
注意:
我的查询可能是正确的,这是 TeamCity 中的一个问题。
(我使用的版本确实有一些 关于 LDAP 的问题
,但他们收到的错误消息比我做的要多)
也许我会在 TeamCity 的问题跟踪器上发布这个,但在我想确保错误不会发生之前,因为我弄错了 LDAP 查询,因此这里有问题。