2011-08-26 4 views
0

우리는 LDAP를 사용하여 사용자를 인증합니다. LDAP 파이프의 다른 쪽은 매우 큰 Active Directory 구현입니다. 인증 쿼리가 너무 오래 걸리는 것으로 나타났습니다 (15 초 이상).AD에서 사용자를 인증하는 가장 일반적인 LDAP 쿼리는 무엇입니까?

ldap://ldap.myco.com/DN?dc=myco,dc=com??sub?(sAMAccountName=John) 

이 어떤 거대한 AD 구현을 위해 잘 작동하는 방법이다 달성하는 가장 좋은 방법은 무엇입니까 :

는 여기에 우리가 무슨 일을하는지의 표현입니까?

감사합니다.

+0

기본 개체에 다른 구성 요소를 추가하고 범위를 "하나"로 좁힐 수 있습니까? –

+0

우리는 AD 측의 논리 구조에 관한 어떠한 정보도 가지고 있지 않습니다. 모든 AD 배포의 경우 "하나"범위가 "sub"대신 사용될 수있는 DN 값이 있습니까? – jeff7091

답변

3

검색에는 컴퓨터와 그룹이 포함되어 있지만 sAMAccountName은 정확하게 색인이 생성됩니다. 당신은 (&(objectCategory=person)(objectClass=user)(samAccountName={0}))으로 더 자격을 얻을 수 있습니다.

더 큰 질문은 왜 검색을 시작 하시겠습니까? LDAP 바인드를 통해 사용자 이름과 암호를 확인하기 만하면 LDAP : // DC = myco, DC = com에 바인드하고 myDirectoryEntry.NativeObject에 액세스하십시오. 예외가 발생하면 문제가 발생합니다.

또한 "ldap.myco.com"은 무엇입니까? 로드 밸런서입니까? 도메인 이름입니까? 여기에 서버리스 바인드를 할 수 있어야합니다 ...

0

sAMAccountName이 색인 된 경우이 색인 구조는 색인 구조에 따라 O (1) 또는 O (log (N))이어야합니다. 15 초가 지나면 O (N)처럼 들리므로 색인이 생성되지 않습니다.

0

브라이언 데스몬드 (Brian Desmond)는 그의 대답에 스포트 온입니다. 간단한 바인딩으로 최고의 성능을 얻을 수 있습니다.

중복성을 위해 (그리고 부하가 분산되도록) 바인딩 할 수있는 여러 DC가 있어야합니다. Microsoft AD 클라이언트가 사이트 구성원 및 SRV RR 가중치 및 기본 설정 값을 기반으로 DC를 찾는 데 사용하는 알고리즘은 중요하지 않지만 바인딩 할 DC의 주소 (또는 이름)를 가져 와서 계산할 수 있습니다.

관련 문제