2009-06-15 25 views
25

Jakie są główne różnice między tymi dwiema implementacjami protokołu LDAP? Co jest lepsze dla heterogenicznego środowiska? Jakieś dobre strony internetowe na ten temat?Active Directory vs OpenLDAP

Odpowiedz

14

W przypadku środowisk hetrogenicznych należy użyć serwera ogólnego przeznaczenia, takiego jak OpenLDAP. Zaletą AD jest zazwyczaj to, że zawiera już konta użytkowników dla użytkowników wewnętrznych - można je synchronizować z oddzielnym serwerem LDAP, co zwiększa złożoność.

Jeśli chodzi o specyfikację protokołu, dokumenty dla Oracle Virtual Directory mają całkiem dobre podsumowanie. (OVD jest produktem, który może być użyty do proxy AD i tłumaczyć niektóre z jego dziwactw w bardziej standardowy interfejs.):

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

Począwszy Atrybuty Atrybuty w usłudze Active Directory i ADAM z bardziej następnie 1000 wartości są zwracane 1000 w czas z nazwą, która obejmuje zakres wartości, które zostały zwrócone (lub 1500) dla systemu Windows 2003). Zakres jest wrócił do klienta w formie: członkowskim; 1-1000: someValue W celu dostać następne tysiąc wpisów, aplikacja klient musi jakoś znać powtórzyć kwerendę i zwrócić się do państw atrybutu ; 1001 -2000. Ten numer wymaga aplikacji do obsługi usługi Active Directory w wersji w szczególny sposób w porównaniu do innych produktów katalogowych .

Hasło Aktualizacje Microsoft Active Directory i ADAM mają specjalne zasady wokół jak hasło z użytkownika mogą być aktualizowane za pomocą LDAP:

  • Hasła mogą być aktualizowane tylko za pośrednictwem bezpiecznego połączenia SSL.
  • Jeśli użytkownik aktualizuje swoje własne hasło, oryginalne hasło musi być włączone do modyfikacji usuń z nowe hasło będące modyfikacją dodaj w tej samej operacji modyfikacji.
  • Tylko administrator może zresetować hasło użytkownika, nie znając wcześniejszego hasła .
  • Aktywny Directroy nie używa atrybutu userPassword, używa on atrybutu unicodePwd (który jest quoted-UTF16-hex-padded-base64 encoded).

ObjectClass Mapowanie Większość katalogów LDAP użyć inetOrgPerson i groupOfUniqueNames obiekt klasy dla użytkowników i grup. Microsoft Active Directory korzysta z użytkowników i grup objectClasses z atrybutów specyficznych wymagań Active Directory NOS od firmy Microsoft.”

Są to jedne z najważniejszych z nich, ale są inni.

47

Oto kilka różnic, które znam z góry mojej głowy. OpenLDAP można nazwać generycznym serwerem LDAP podobnym do wielu serwerów LDAP innych dostawców (Fedora DS 389, Oracle Internet Directory, IBM Tivoli Directory Server). Usługa Active Directory jest nieco bardziej dostosowana do pakietu produktów Microsoft (np. Do uruchamiania domeny Microsoft). Istnieją zalety i wady każdego.

OpenLDAP jest pusty po instalacji i nie ma żadnej struktury (nazywanej DIT). Nie ma nawet wyjścia root z pudełka. AD będzie dostarczany z podstawową strukturą i ma gotowe narzędzia GUI do rozpoczęcia zapełniania użytkowników. OpenLDAP i inni oczekują, że stworzysz DIT ręcznie, więc będziesz musiał zaprojektować strukturę. Musisz więc zaplanować, gdzie masz zamiar umieścić swoich użytkowników, grupy, role i pomyśleć o listach ACL lub delegacji oddziału, jeśli twój projekt obejmuje takie rzeczy. Na przykład możesz mieć domenę dla widgets.com. W AD wysyłają struktura będzie wyglądać następująco:

+ dc=widgets,dc=com 
|-- cn=Computers 
|-- cn=Users 
|-- cn=Groups 

w OpenLDAP (lub innych implementacjach wanilii), można zaprojektować swoją DIT na wiele sposobów. Możesz śledzić konwencję domeny (dc = foo, dc = bar) lub możesz użyć czegoś zorganizowanego według regionu geograficznego (o = foo, c = bar). Nie ma to większego znaczenia, ale powinieneś pójść z jednym lub drugim. AD używa konwencji DC i nie daje Ci wyboru, ale inne serwery LDAP mogą działać zgodnie z konwencją. Jeśli próbujesz dopasować się do dużej domeny MS, trzymałbym się konwencji DC dla spójności i łatwości integracji. Ale na tym przykładzie będziemy udawać naszą organizację firmy (o) w jednym kraju (c) bez regionów lub jednostek (OU):

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

Następnie można rozszerzyć schemat, jeśli zajdzie taka potrzeba. Jeśli chcesz rozszerzyć schemat AD, AD będzie wymagać dodania elementów schematu za pomocą wtyczki MMC Konsoli schematu Active Directory (utwórz niestandardową konsolę MMC). Potem jest całkiem proste. Najpierw określ swoje atrybuty, a następnie swoje klasy obiektowe. OpenLDAP wymaga napisania LDIF (wymaga najpierw atrybutów, a następnie klas obiektów). Lub użyj Apache Directory Studio z OpenLDAP, który jest niesamowitym GUI i narzędziem administratora i czyni OpenLDAP bliskim AD łatwym w użyciu.

AD nie pozwala anonimowo zadawać pytań w 389 sprawach. Jeśli chcesz uzyskać informacje o schemacie (zwanym katalogiem), musisz wysłać zapytanie 3289 i uwierzytelnić. To przypomina mi DIB LDAP vs ukrywanie DIT, ale nie wiem, czy AD stara się zrobić to samo tutaj.

AD ma domyślny limit zapytań wynoszący 10 000. Jeśli chcesz wyssać wszystko w jednym ujęciu, musisz użyć kontrolek stronicowania na kliencie lub w kodzie lub zmodyfikować domyślny limit zapytań na szukanym kontrolerze domeny. Zauważ, że kontrole stronicowania mogą być problematyczne. Dostałem je do pracy w Javie przy użyciu bibliotek Netscape, ale niektórzy klienci LDAP wydają się nie działać poprawnie, mimo że twierdzą, że obsługują formanty stronicowania (YMMV).

Autentykacja AD jest trochę dziwna. Możesz uwierzytelnić się jako sformatowana nazwa użytkownika e-mail (-D nazwa użytkownika @ domena) lub możesz użyć pełnej nazwy wyróżniającej użytkownika. Jeśli istnieje sposób na zrobienie tego w OpenLDAP, nie wiem jak to zrobić, ale nie zawracałbym sobie głowy. Jest to dziwne w porównaniu do innych serwerów LDAP. Zwykły protokół LDAP zazwyczaj ma format DN (cn = nazwa użytkownika, cn = użytkownicy, o = widżety, c = nas).

Podsumowując, AD jest zdania, a OpenLDAP ma charakter ogólny. Z tego powodu AD łatwo jest postawić, ale OpenLDAP może być bardziej elastyczny.

Powiązane problemy