LDAP 연결 문자열을 어떻게 알 수 있습니까?


108

우리는 Active Directory를 실행하는 회사 네트워크에 있으며 일부 LDAP 항목 (실제로 Active Directory 멤버 자격 공급자)을 테스트하고 싶습니다. 지금까지 LDAP 연결 문자열이 무엇인지 알 수는 없습니다. 우리가 그것을 찾는 방법을 아는 사람이 있습니까? 우리가 아는 유일한 것은 우리가있는 도메인입니다.

답변:


101

ASP.NET Active Directory 멤버 자격 공급자는 지정된 사용자 이름, 암호 및 "연결 문자열"을 사용하여 Active Directory에 인증 된 바인딩을 수행합니다. 연결 문자열은 LDAP 서버 이름과 사용자가 지정한 컨테이너 객체의 정규화 된 경로로 구성됩니다.

연결 문자열은 URI로 시작합니다 LDAP://.

서버 이름으로 해당 도메인의 도메인 컨트롤러 이름을 사용할 수 있습니다 (예 : "dc1.corp.domain.com"). 그것은 지금 LDAP://dc1.corp.domain.com/까지 우리에게줍니다 .

다음 비트는 바인딩 사용자가있는 컨테이너 오브젝트의 완전한 경로입니다. "관리자"계정을 사용 중이고 도메인 이름이 "corp.domain.com"이라고 가정 해 보겠습니다. "관리자"계정은 도메인 루트의 한 수준 아래에있는 "사용자"라는 컨테이너에 있습니다. 따라서 "사용자"컨테이너의 정규화 된 DN은 다음과 같습니다 CN=Users,DC=corp,DC=domain,DC=com. 바인딩하는 사용자가 컨테이너 대신 OU에 있으면 경로에 "OU = ou-name"이 포함됩니다.

따라서 이름 Service Accounts이 지정된 OU의 하위 OU 인 이름 이 지정된 OU에있는 계정을 사용하면 Corp Objects이름 corp.domain.com이 지정된 도메인의 하위 OU 가 OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com됩니다.

결합 LDAP://dc1.corp.domain.com/바인딩 사용자가 위치한 컨테이너 (같은 말에 대한 완전한 경로로 LDAP://dc1.corp.domain.com/OU=Service Accounts,OU=Corp Objects,DC=corp,DC=domain,DC=com) 당신은 당신의 "연결 문자열"을 가지고있다.

도메인 컨트롤러 이름과 달리 연결 문자열에 도메인 이름을 사용할 수 있습니다. 차이점은 도메인 이름이 도메인 에 있는 모든 도메인 컨트롤러 의 IP 주소로 확인 된다는 것입니다. 멤버 자격 공급자가 작동하려면 단일 도메인 컨트롤러를 사용하고 실행하지 않아도되지만 이름이 불규칙한 네트워크 연결이있는 원격 위치의 DC로 확인되면 멤버 자격에 문제가있을 수 있습니다 공급자 작업.)


SBS 2008에서는 최소한 OU 문자열의 표준 "OU"접두사를 따르기 시작한 것 같습니다. CN = 사용자 이름, OU = 사용자, DC = example, DC = local 우리는 기능 수준을 실행하고 있습니다. 2003.
gravyface

좋은 대답입니다. 연결 문자열에서 쿼리 계정의 로그인 정보를 외부 도메인 컨트롤러에 제공 할 수 있습니까?
Dan

따라서 ActiveDirectory에 액세스하는 원격 컴퓨터가 자체 도메인에 있어야합니까? 로컬 컴퓨터가 도메인에 없으면 어떻게합니까? 내 컴퓨터가 작업 그룹에있는 경우 사용자를 인증하기 위해 2 개의 자격 증명을 전달해야합니까? 하나는 WindowsServer 컴퓨터에 로그인하고 다른 하나는 ActiveDirectory 사용자의 사용자 이름과 비밀번호를 확인하는 것입니다. 내가 맞아?
Dinesh Kumar P

@ DineshKumarP : 파싱하는 데 약간의 문제가 있습니다. 멤버 자격 공급자는 AD (Active Directory)에서 유효한 자격 증명을 사용하여 디렉터리에 바인딩합니다. 멤버 자격 공급자를 실행하는 컴퓨터는 AD 도메인의 구성원 일 필요는 없지만 작동하려면 AD의 유효한 자격 증명으로 구성해야합니다.
Evan Anderson

2
@ArthurRonald-권한이없는 사용자는 기본적으로 Active Directory에 바인딩하고 쿼리 할 수 ​​있습니다. 실제로 권한이없는 사용자를 사용하는 것이 가장 좋습니다. Active Directory에는 상당히 풍부한 ACL 모델이 있으며 개체 및 특성에 대한 액세스를 매우 세밀하게 제어 할 수 있습니다. 필요하지만 더 이상 할 수없는 권한이있는 계정으로 바인딩해야합니다.
Evan Anderson

23

dsquery /?명령 프롬프트를 입력하십시오 .

예 : dsquery user -name Ja*Ja *로 시작하는 이름을 가진 모든 사용자의 연결 문자열을 가져옵니다.


이 방법이 마음에 들면 OU 등의 올바른 순서를 제공합니다. 분명히하기 위해 이것을 사용하려면 LDAP : //dc1.corp.domain.com/과 명령의 출력을 취하고 결합하여 ldap 문자열을 조용히 쉽게 만듭니다.
RandomUs1r

3
이 명령을 사용하려면 어떤 도구를 설치해야합니까?
Pred

Pred, this answer 참조하십시오 .
Stas Bushuev

18

Softerra에서이 도구를 사용하여 (현재 우수한 프리웨어 LDAP 브라우저 작성) 현재 로그인 한 사용자로부터 사용자 DN을 얻습니다. http://www.ldapbrowser.com/download.htm


1 단계 : "자격 증명"단계에서 "현재 로그인 한 사용자 (ActiveDirectory 만 해당)"를 선택하십시오. 2 단계 : 연결이 작성되면 속성에서 "항목"탭으로 이동하여 URL을 복사하십시오. 3 단계 : 해당 URL을 ErJab 솔루션에서 찾은 DN과 함께 사용하십시오.
Nicolas Raoul

7

OU를 입력하는 올바른 방법을 찾는 데 항상 문제가있었습니다. 이 명령 dsquery ou domainroot은 도메인에있는 모든 OU의 정확한 이름 목록을 제공합니다. 이것이 더 큰 조직에 도움이 될지 확실하지 않습니다.



4

ADSIedit를 열면 연결 대상을 선택할 때 경로가 표시됩니다.

여기에 이미지 설명을 입력하십시오



1

가장 쉬운 방법을 찾았습니다 .

당신은 또한 찾을 수 있습니다

활성 디렉토리 서버-> 조직 단위 OU 선택-> 마우스 오른쪽 단추-> 특성-> AttributeEditor-> DistinguishedName

나는 Microsoft Windows Server 2012 R2에서 이것을 얻었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.