검색 필터를 사용하여 특정 그룹의 사용자를 표시하려면 어떻게해야합니까?
나는 다음을 시도했다 :
(&
(objectCategory=user)
(memberOf=MyCustomGroup)
)
이:
(&
(objectCategory=user)
(memberOf=cn=SingleSignOn,ou=Groups,dc=tis,dc=eg,dc=ddd,DC=com)
)
그러나 어느 것도 특정 그룹의 사용자를 표시하지 않습니다.
답변
memberOf (AD에서)는 고유 이름 목록으로 저장됩니다. 필터는 다음과 같아야합니다.
(&(objectCategory=user)(memberOf=cn=MyCustomGroup,ou=ouOfGroup,dc=subdomain,dc=domain,dc=com))
식별 이름이 아직없는 경우 다음을 사용하여 검색 할 수 있습니다.
(&(objectCategory=group)(cn=myCustomGroup))
속성을 반환합니다 distinguishedName
. 케이스가 중요 할 수 있습니다.
답변
Active Directory 사용자의 경우이 작업을 수행하는 다른 방법은 모든 그룹이 저장되어 있다고 가정 OU=Groups,DC=CorpDir,DC=QA,DC=CorpName
하여 쿼리를 사용하는 것 (&(objectCategory=group)(CN=GroupCN))
입니다. 이는 회원이 1500 명 미만인 모든 그룹에 적합합니다. 대규모 AD 그룹의 모든 구성원을 나열하려면 동일한 쿼리가 작동하지만 범위 검색 을 사용 하여 한 번에 1500 개의 레코드를 모든 구성원을 가져와야합니다.
범위 검색을 수행하기위한 핵심은 다음 구문을 사용하여 속성에 범위를 지정하는 것입니다 : attribute; range = low-high . 따라서 3000 명의 구성원이있는 AD 그룹의 모든 구성원을 가져 오려면 먼저 member;range=0-1499
특성이 반환되도록 요청하는 위 쿼리를 실행 한 다음 특성을 요청 member;range=1500-2999
합니다.
답변
DC가 Win2k3 SP2 이상이면 다음과 같이 사용할 수 있습니다.
(&(objectCategory=user)(memberOf:1.2.840.113556.1.4.1941:=CN=GroupOne,OU=Security Groups,OU=Groups,DC=example,DC=com))
중첩 된 그룹 멤버십을 가져옵니다.
출처 : https://ldapwiki.com/wiki/Active%20Directory%20Group%20Related%20Searches