2009-04-14 1 views
34

LDAP 서버를 쿼리하는 응용 프로그램 (C#)을 개발하려고합니다. 나는 쿼리하는 실제 서버를 모릅니다 - 표준 Windows 도구 또는 .net을 사용하는 방법을 찾으려면 방법이 있습니까?Windows 도메인에서 LDAP 서버 호스트를 어떻게 찾을 수 있습니까?

dc = domain, dc = com을 쿼리 문자열에 포함하고있는 한 서버 이름 (ldap : // server /)이 항상 필요한 것은 아니라는 소문이 들렸습니다. 지금까지 이런 방식으로 작업 할 수있었습니다.

팁이 있습니까?

감사

답변

15

당신이 다음 LDAP 사용, 기본 도메인에 대한 도메인 컨트롤러를 찾을 수 serverless binding를 사용하여 AD를 사용하는 경우 : 링크 된 문서에서 설명한대로 디렉토리 서버에 대한 정보를 얻을 //하여 rootDSE을, .

12

현재 사용중인 컴퓨터가 AD 도메인의 일부인 경우 이름 서버가 AD 이름 서버로 설정되어 있어야합니다 (또는 결국 AD 도메인을 확인하는 DNS 서버 경로를 사용하는 것이 좋습니다). dc = domain, dc = com의 예제를 사용하면 AD 네임 서버에서 domain.com을 검색하면 각 AD 컨트롤러의 IP 목록을 반환합니다. 내 회사에서 예 (도메인 이름/w 변경하지만, 그렇지 않은 경우는 실제 예제) : 난 사실이 아닌 AD 컴퓨터에서 쿼리를 만들고있어

 
    mokey 0 /home/jj33 > nslookup example.ad 
    Server:   172.16.2.10 
    Address:  172.16.2.10#53 

    Non-authoritative answer: 
    Name: example.ad 
    Address: 172.16.6.2 
    Name: example.ad 
    Address: 172.16.141.160 
    Name: example.ad 
    Address: 172.16.7.9 
    Name: example.ad 
    Address: 172.19.1.14 
    Name: example.ad 
    Address: 172.19.1.3 
    Name: example.ad 
    Address: 172.19.1.11 
    Name: example.ad 
    Address: 172.16.3.2 

참고하지만, 우리의 유닉스 네임 서버 보낼 알고 AD DNS 서버에 대한 AD 도메인 (example.ad) 쿼리.

Windows 기반 서버가 아닌 서버에서 LDAP 서버를 찾아야 할 때 DNS 방법을 사용하는 것이 좋습니다.

93

AD는 도메인의 담당 LDAP 서버의 포트와 호스트 이름을 얻기 위해 질의 할 수있는 DNS 서버의 서비스 위치 (SRV) 리소스 레코드를 등록합니다.

그냥 명령 줄에서이 작업을 시도 :

C:\> nslookup 
> set types=all 
> _ldap._tcp.<<your.AD.domain>> 
_ldap._tcp.<<your.AD.domain>> SRV service location: 
     priority  = 0 
     weight   = 100 
     port   = 389 
     svr hostname = <<ldap.hostname>>.<<your.AD.domain>> 

참조하십시오 (네임 서버는 AD가 제대로 작동하려면 경우되어야 AD 네임 서버는 것이어야한다) Active Directory SRV RecordsWindows 2000 DNS white paper 자세한 내용은.

+0

분명히하기 위해 << your.AD.domain >>은 아마도 귀하의 이메일 주소에서 @ 뒤에 오는 부분 일 것입니다. – icfantv

+0

또한 가능한 모든 도메인을 검색 할 도메인 이름을 생략 할 수있다 : C를 : \> nslookup을 > 세트의 종류 = 모든 > _ldap._tcp _ldap._tcp << your.AD.domain1 >> SRV 서비스 위치. : 우선 순위 = 0 무게 = 100 포트 = 389 svr 호스트 이름 = << ldap.hostname1 >>. << your.AD.domain1 >> _ldap._tcp. << your.AD.domain2 >> SRV 서비스 위치 : 우선 = 0 중량 = 100 포트 = 389 SVR 호스트 이름 = ldap.hostname1 << >><< your.AD.domain2 –

+0

그것의 단지''_ldap._tcp' 또한 TYPE = all'하지 유형 – deltree

관련 문제