Quali sono le principali diffrenze tra queste due implementazioni del protocollo LDAP? Quale è meglio per l'ambiente eterogeneo? Qualche buon sito web su questo argomento?Active Directory vs OpenLDAP
risposta
Per ambienti eterogenei si desidera utilizzare un server generico come OpenLDAP. Il vantaggio di AD in genere è che contiene già account utente per gli utenti interni, che possono essere mantenuti sincronizzati con un server LDAP separato, anche se questo aggiunge complessità.
Per quanto riguarda le specifiche del protocollo, i documenti per Oracle Virtual Directory hanno un buon sommario. (OVD è un prodotto che può essere utilizzato per delega dC e tradurre alcune delle sue stranezze in un'interfaccia più standard.):
http://download.oracle.com/docs/html/E10286_01/app_bundled_plugins.htm#CHDGDBBG
Ranging Attributi attributi in Active Directory e ADAM con più quindi 1000 valori vengono restituiti 1000 a un orario con un nome che include l'intervallo di valori restituiti (o 1500 per Windows 2003). La gamma è restituito al cliente sotto forma: membro; 1-1000: somevalue Al fine di ottenere i prossimi mille voci, l'applicazione client deve in qualche modo sapere per ripetere la query e chiedere agli Stati attributo ; 1001 -2000. Questo richiede che le applicazioni gestiscano Microsoft Active Directory in un modo speciale rispetto agli altri prodotti di directory .
password Aggiornamenti Microsoft Active Directory e ADAM hanno speciali regole intorno a come la password di un utente può essere aggiornata utilizzando il protocollo LDAP:
- Le password possono essere aggiornati solo tramite il collegamento sicuro SSL.
- Se un utente sta aggiornando la propria password, la password originale deve essere da includere in una modifica elimina con la nuova password essendo una modifica aggiungere la stessa operazione di modifica.
- Solo un amministratore può reimpostare la password di un utente senza conoscere la password precedente .
- Active Directroy non utilizza l'attributo userPassword, utilizza l'attributo unicodePwd (che è quoted-UTF16-hex-padded-base64 encoded).
ObjectClass Mapping maggior parte delle directory LDAP utilizzano l'inetOrgPerson e groupOfUniqueNames oggetto classi per utenti e gruppi. Microsoft Active Directory utilizza l'utente e di gruppo objectClasses con attributi specifici alle esigenze Directory NOS attivi di Microsoft."
Questi sono alcuni di quelli principali, ma ci sono altre.
Ecco alcune differenze che conosco in cima alla mia testa. OpenLDAP potrebbe essere chiamato un server LDAP generico simile a molti altri server LDAP di altri fornitori (Fedora DS 389, Oracle Internet Directory, IBM Tivoli Directory Server). Active Directory è un po 'più personalizzato per una suite di prodotti Microsoft (es .: esecuzione di un dominio Microsoft). Ci sono pro e contro di ciascuno.
OpenLDAP è vuoto dopo l'installazione e non ha una struttura (chiamata DIT). Non ha nemmeno una voce radice fuori dalla scatola. L'AD verrà distribuito con una struttura di base e gli strumenti della GUI sono pronti per iniziare a popolare gli utenti. OpenLDAP e altri si aspettano che tu crei a mano il DIT, così dovrai progettare una struttura. Dovrai quindi pianificare dove mettere gli utenti, i gruppi, i ruoli e pensare agli ACL o alla delega delle filiali se il tuo progetto coinvolge cose del genere. Ad esempio potresti avere un dominio per widgets.com. Nel dC la struttura spedito sarà simile a questo:
+ dc=widgets,dc=com
|-- cn=Computers
|-- cn=Users
|-- cn=Groups
in OpenLDAP (o altre implementazioni di vaniglia), è possibile progettare il DIT in molti modi. Puoi seguire la convenzione del componente di dominio (dc = pippo, dc = barra) o puoi usare qualcosa organizzato per regione geografica (o = pippo, c = barra). Non importa un sacco ma dovresti andare con uno o l'altro. AD utilizza la convenzione DC e non offre una scelta, ma altri server LDAP possono seguire entrambe le convenzioni. Se stai cercando di inserirti in un grande dominio MS, mi attenerei alla convenzione DC per coerenza e facilità di integrazione. Ma per questo esempio faremo finta nostra organizzazione aziendale (o) in un paese (c) senza regioni o unità (OU):
+ o=widgets,c=us
|-- cn=Machines
|-- cn=People
|-- cn=Groups
|-- cn=Roles
Quindi è possibile estendere lo schema se necessario. Se si desidera estendere lo schema AD, è necessario aggiungere elementi dello schema tramite il plug-in della console MMC dell'editor di schemi di Active Directory (creare un MMC personalizzato). Dopo ciò, è abbastanza semplice. Definisci prima i tuoi attributi e poi le tue classi di oggetti. OpenLDAP richiede di scrivere un LDIF (richiede anche attributi prima e quindi classi di oggetti). Oppure usa Apache Directory Studio con OpenLDAP che è un fantastico strumento di interfaccia grafica e di amministrazione e rende OpenLDAP near-AD la facilità d'uso.
AD non consente di interrogare tutto su 389 in modo anonimo. Se si desidera ottenere informazioni sullo schema (chiamato il catalogo), è necessario eseguire una query su 3289 e autenticarsi. Questo mi ricorda il DIB di LDAP rispetto al DIT nascosto, ma non so se AD sta cercando di fare la stessa cosa qui.
AD ha un limite di query predefinito di 10.000. Se si desidera eliminare tutto in un'unica soluzione, è necessario utilizzare i controlli di paging sul client o nel codice o modificare il limite di query predefinito sul controller di dominio che si sta cercando. Si noti che i controlli di paging possono essere problematici. Li ho portati a lavorare in java usando le librerie di Netscape ma alcuni client LDAP non sembrano funzionare correttamente anche se affermano che supportano i controlli di paging (YMMV).
L'autenticazione di AD è un po 'strana. Puoi autenticarti come nome utente formattato per email (-D nome utente @ dominio) oppure puoi utilizzare il DN utente completo. Se c'è un modo per farlo in OpenLDAP, non so come farlo, ma non mi preoccuperei. Questo è strano rispetto ad altri server LDAP. Normalmente il LDAP segue il formato DN (cn = username, cn = Users, o = widgets, c = us).
In conclusione, AD è supponente e OpenLDAP è generico. E per questo motivo, AD è facile da alzarsi, ma OpenLDAP può essere più flessibile.