2009-06-15 4 views
25

LDAP 프로토콜의 두 구현 사이의 주요 차이점은 무엇입니까? 이질적인 환경에 더 좋은가? 이 주제에 관한 좋은 웹 사이트가 있습니까?Active Directory와 OpenLDAP

답변

14

열대 환경의 경우 OpenLDAP와 같은 범용 서버를 사용하려고합니다. AD의 장점은 내부 사용자를위한 사용자 계정이 이미 포함되어 있다는 것입니다. 이는 복잡해 지지만 별도의 LDAP 서버와 동기화 상태를 유지할 수 있습니다.

오라클 가상 디렉토리에 대한 문서는 매우 자세하게 요약되어 있습니다. (OVD 프록시 AD를 사용하고보다 표준 인터페이스로 그 단점의 일부를 번역 할 수있는 제품입니다.) 자세한와 Active Directory 및 ADAM에 속성

http://download.oracle.com/docs/html/E10286_01/app_bundled_plugins.htm#CHDGDBBG

에 이르기까지 속성 그러면 값 범위 (Windows 2003의 경우 1500)를 포함하는 이름이있는 시간에 1000 값이 에 1000을 반환합니다. 범위는 이 형태로 클라이언트에 반환됩니다 부재 1-1000 : 하기 위해 someValue와 다음 만 개 항목을 얻을, 어떻게 든 쿼리를 반복하고 속성 멤버를 요청하기 위해 알아야합니다 클라이언트 응용 프로그램 1001 -2000. 이 은 응용 프로그램이 디렉토리 제품과 비교하여 특별한 방법으로 Microsoft Active Directory를 처리해야합니다.

암호 업데이트 마이크로 소프트 Active Directory 및 ADAM은 사용자의 암호가 LDAP를 사용하여 업데이트 할 수있는 방법을 주위에 특별한 규칙을 가지고 :

  • 암호는 보안 SSL 연결을 통해 업데이트 될 수 있습니다.
  • 사용자가 자신의 암호를 업데이트하는 경우 원래 암호는 수정 수정에 포함되어야합니다. 새 암호는 수정 수정 인 것이므로 동일한 수정 작업입니다.
  • 관리자 만이 이전 비밀번호 을 모른 채 사용자의 비밀번호를 재설정 할 수 있습니다.
  • 활성 Directroy는 userPassword 특성을 사용하지 않고 unicodePwd 특성 ( quoted-UTF16-hex-padded-base64 encoded)을 사용합니다.

ObjectClass를 매핑 대부분의 LDAP 디렉토리는 inetOrgPerson이와 groupOfUniqueNames가이 사용자 및 그룹에 대한 개체 클래스 사용합니다. 마이크로 소프트 액티브 디렉토리에서 Active Directory NOS 요구 사항 마이크로 소프트의 에 특정 속성을 가진 사용자 및 그룹 objectClasses가 사용됩니다. "

이 주요 것들 중 일부는하지만 다른 사람이 있습니다.

47

여기 내 머리 꼭대기에서 알 수있는 몇 가지 차이점이 있습니다. OpenLDAP는 다른 많은 공급 업체의 LDAP 서버 (Fedora DS 389, Oracle Internet Directory, IBM Tivoli Directory Server)와 유사한 일반 LDAP 서버라고 할 수 있습니다. Active Directory는 Microsoft 제품군 (예 : Microsoft 도메인 실행)에 맞게 조금 더 맞춤화되었습니다. 각 장단점이 있습니다.

OpenLDAP는 설치 후에 비어 있으며 구조가 없습니다 (DIT라고 함). 그것은 심지어 상자에서 루트 항목을 가지고 있지 않습니다. AD는 기본 구조로 출시되며 GUI 도구를 사용하여 사용자 채우기를 시작할 수 있습니다. OpenLDAP 및 다른 사람들은 손으로 DIT를 만들 것을 기대하므로 구조를 설계해야합니다. 따라서 프로젝트에 이와 같은 것들이 포함될 경우 사용자, 그룹, 역할을 배치하고 ACL 또는 지점 위임에 대해 생각할 곳을 계획해야합니다. 예를 들어 widgets.com을위한 도메인이있을 수 있습니다.

OpenLDAP를 (또는 다른 바닐라 구현)에서
+ dc=widgets,dc=com 
|-- cn=Computers 
|-- cn=Users 
|-- cn=Groups 

, 당신은 여러 가지 방법으로 DIT를 디자인 할 수 있습니다 : AD에서 제공되는 구조는 다음과 같을 것입니다. 도메인 구성 요소 (dc = foo, dc = bar) 규칙을 따르거나 지리적 영역 (o = foo, c = bar)별로 정리 된 것을 사용할 수 있습니다. 그것은 전체적으로 중요하지 않지만, 당신은 하나 또는 다른 것과 함께 가야합니다. AD는 DC 규칙을 사용하며 사용자에게 선택권을 부여하지 않지만 다른 LDAP 서버는 규칙을 따를 수 있습니다. 큰 MS 도메인에 적합하려는 경우 일관성과 통합 용이성을 위해 DC 규칙을 고수 할 것입니다. 그러나이 예를 들어 우리는 어떤 지역이나 단위 (OU)로 한 국가 (c)에 우리 회사의 조직 (O)를 척 수 있습니다 : 필요하다면

+ o=widgets,c=us 
|-- cn=Machines 
|-- cn=People 
|-- cn=Groups 
|-- cn=Roles 

그런 다음 당신이 당신의 스키마를 확장 할 수 있습니다. AD 스키마를 확장하려면 Active Directory 스키마 편집기 MMC 콘솔 플러그인 (사용자 지정 MMC 만들기)을 통해 스키마 요소를 추가해야합니다. 그 후, 그것은 꽤 간단합니다. 먼저 속성을 정의한 다음 객체 클래스를 정의하십시오. OpenLDAP를 사용하려면 LDIF를 작성해야합니다 (먼저 속성과 객체 클래스가 필요합니다). 아니면 멋진 GUI 및 관리 도구 인 OpenLDAP와 함께 Apache Directory Studio를 사용하고 OpenLDAP를 AD에 가깝게 사용할 수있게 만듭니다.

광고는 익명으로 389의 모든 것을 쿼리하도록 허용하지 않습니다. 스키마 정보 (카탈로그라고 함)를 가져 오려면 3289에서 조회하고 인증해야합니다. 이것은 나를 LDAP의 DIB 대 DIT 숨김 대 생각 나게하지만 광고가 똑같은 일을하려고하는지 모르겠습니다.

AD의 기본 쿼리 제한은 10,000입니다. 한 번에 모든 것을 빨아 들이고 싶다면 클라이언트 또는 코드에서 페이징 컨트롤을 사용하거나 검색중인 도메인 컨트롤러에서 기본 쿼리 제한을 수정해야합니다. 페이징 제어는 문제가 될 수 있습니다. 나는 그들에게 넷스케이프 라이브러리를 사용하는 자바에서 작업하게 만들었지 만 일부 LDAP 클라이언트는 페이징 컨트롤 (YMMV)을 지원한다고 주장하지만 올바르게 작동하지 않는 것처럼 보인다.

AD의 인증이 약간 이상합니다. 전자 메일 형식의 사용자 이름 (-D username @ domain)으로 인증하거나 전체 사용자 DN을 사용할 수 있습니다. OpenLDAP에서이 작업을 수행 할 방법이 있다면 어떻게해야할지 모르겠지만 신경 쓰지 않을 것입니다. 다른 LDAP 서버와 비교할 때 이것은 이상합니다. 보통 LDAP는 일반적으로 DN 형식 (cn = username, cn = Users, o = widgets, c = us)을 따릅니다.

간단히 말해서, 광고는 독창적이며 OpenLDAP은 일반적인 것 같습니다. 그 때문에 AD는 쉽게 일어날 수 있지만 OpenLDAP는 더욱 유연해질 수 있습니다.

관련 문제