2012-11-29 2 views
3

Windows 도메인 (Active Directory)의 TeamCity 7.1.2에서 LDAP 인증을 구성하고 있습니다.Active Directory/LDAP 쿼리 중첩 된 조직 단위의 사용자를 찾습니다.

기본적으로 작동합니다 (도메인 사용자와 로그인 할 수 있습니다!). 회사 전체의 모든 사용자가 로그인 할 수 있습니다.
-> 이제 개발자 전용으로 액세스를 제한하려고합니다.

가 나는 인 TeamCity의 문서에 this example을 발견

# 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 쿼리는 완전히 새로운 것이므로 올바른 구문을 파악할 수 없습니다.

내 사용자는 여기에 있습니다 :

Active Directory screenshot

는 그래서는 다음과 같습니다

CompanyName.de/CompanyName/IT/Entwickler/ 

"회사 명", "IT"와 "Entwickler"입니다 조직 구성 단위.
나는 구문이 될 것이라고 이해 : LDAP에서

검색 : 나는 인 TeamCity의 config 파일에, 내가 로그인 할 수 없습니다 및 인 TeamCity는 로그 파일이 쓰는 넣어

OU=Entwickler,OU=IT,OU=CompanyName,DC=CompanyName,DC=de 

: 기본 = 'DC CompanyName, DC = de', 필터 = '(& (sAMAccountName = MyUser) (memberOf = OU = Entwickler, OU = IT, OU = CompanyName, DC = CompanyName, DC = de))', 범위 = 2, 속성 = [sAMAccountName, distinguishedName] 오류가 발생했습니다

과 :

로그인 사용자 "참고 MyUser"실패에 대한 : javax.security.auth.login.LoginException : [LDAP : 오류 코드 32 - 0000208D : NameErr : DSID-031001CD, 문제 2001 (NO_OBJECT), 데이터 0의 최고의 경기 : 'DC = 회사 이름, DC는 = 드'내가 잘못을

을 뭐하는 거지?

참고 :
그것은 내 쿼리가 올바른지, 이것은 인 TeamCity의 문제라고 할 수 있습니다.
(나는 을 사용하고 버전은가 LDAP에 관한 someissues을 가지고,하지만 그들은 나보다 다른 오류 메시지 수)
어쩌면 내가 인 TeamCity의 이슈 트래커에 게시 할 예정입니다,하지만 나는 확인하고 싶었다 전에 그 LDAP 쿼리가 잘못되었으므로 오류가 발생하지 않습니다. 따라서 여기에서 질문하십시오.

답변

4

memberOf는 OU가 아니라 그룹을 찾고 있습니다. 액세스를 제한하고 적절한 사용자를 그룹에 추가하고 그룹의 고유 이름을 필터에 지정하려면 그룹을 만들어야합니다. 간단한 'memberOf = {DN}'필터는 중첩 그룹 멤버쉽을 고려하지 않습니다.

편집 : OU의 사용자로 실제로 제한하려면 검색의 기본 DN을 OU로 변경하고 memberOf 매개 변수를 검색으로 가져와야합니다.

+0

"OU로 검색의 기본 DN을 변경하고 검색에 memberOf 매개 변수를 가져 오는 경우"와 같은 쿼리의 모양을 보여줄 수 있습니까? 내가 말했듯이, 나는 LDAP 멍청이다. 고맙습니다! –

+1

@ChristianSpecht LDAP 쿼리에는 세 가지 기본 구성 요소가 있습니다. 즉, 검색 기준, 검색 필터 및 범위입니다. 귀하의 오류에서 "LDAP에서 검색 : 기본 = 'DC = CompanyName, DC = de'"가 표시됩니다. 이게 어디서 왔는지 모르겠다. 다른 라인에 기지를 설정할 수 있니, 아마도 teamcity.users.login.base? –

+0

나는 ** 설정 파일에서 기본 설정을했으나'CN = Users, DC = CompanyName, DC = de'도 아니고 'CN = Users, DC = CompanyName, DC = de'도 작동하지 않았습니다. 그래서 두 번째 솔루션을 시도했는데 (기본 DN을 OU로 설정) 작동했습니다. –