2009-06-15 16 views
25

Quelles sont les diffrences principales entre ces deux implémentations du protocole LDAP? Quel est le meilleur pour l'environnement hétérogène? Tous les bons sites sur ce sujet?Active Directory vs OpenLDAP

Répondre

14

Pour les environnements hétérogènes, vous souhaitez utiliser un serveur à usage général tel que OpenLDAP. L'avantage d'AD est généralement qu'il contient déjà des comptes d'utilisateurs pour vos utilisateurs internes - ceux-ci peuvent être synchronisés avec un serveur LDAP séparé, bien que cela ajoute de la complexité.

En ce qui concerne les détails du protocole, les documents pour Oracle Virtual Directory ont un assez bon résumé. (OVD est un produit qui peut être utilisé pour AD proxy et traduire certains de ses bizarreries dans une interface plus standard.):

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

Attributs Allant Attributs dans Active Directory et ADAM avec plus puis 1000 valeurs sont renvoyées 1000 à une heure avec un nom qui inclut la plage de valeurs qui ont été renvoyées (ou 1500 pour Windows 2003). La gamme est retourné au client sous la forme: membre; 1-1000: somevalue Pour obtenir les mille entrées, l'application cliente doit en quelque sorte connaître pour répéter la requête et demander au membre d'attribut ; 1001 -2000. Cette nécessite des applications pour gérer Microsoft Active Directory d'une manière spéciale par rapport aux autres produits du répertoire .

Mot de passe Mises à jour Microsoft Active Directory et ADAM ont spéciales règles concernant la façon dont le mot de passe d'un utilisateur peut être mis à jour à l'aide de LDAP:

  • Les mots de passe ne peuvent être mis à jour via une connexion SSL sécurisée.
  • Si un utilisateur met à jour son propre mot de passe, le mot de passe original doit être inclus dans une modification avec le nouveau mot de passe étant un ajout modifier la même opération de modification. Un seul administrateur peut réinitialiser le mot de passe d'un utilisateur sans connaître le mot de passe précédent .
  • Active Directroy n'utilise pas l'attribut userPassword, il utilise l'attribut unicodePwd ( quoted-UTF16-hex-padded-base64 encoded).

ObjectClass cartographie La plupart des répertoires LDAP utilisent inetOrgPerson et groupOfUniqueNames objet classes pour utilisateurs et groupes. Microsoft Active Directory utilise l'utilisateur et de groupe objectClasses avec des attributs spécifiques à Active Directory exigences NOS de Microsoft « .

Voici quelques-unes des principales, mais il y a d'autres.

47

Voici quelques différences que je connais au sommet de ma tête. OpenLDAP pourrait être appelé un serveur LDAP générique similaire aux serveurs LDAP de nombreux autres fournisseurs (Fedora DS 389, Oracle Internet Directory, IBM Tivoli Directory Server). Active Directory est un peu plus personnalisé pour une suite de produits Microsoft (ie: exécuter un domaine Microsoft). Il y a des avantages et des inconvénients de chacun. OpenLDAP est vide après l'installation et n'a pas de structure (appelée DIT).

Il n'a même pas une entrée racine hors de la boîte. AD sera livré avec une structure de base et les outils GUI seront prêts pour que vous commenciez à peupler les utilisateurs. OpenLDAP et d'autres s'attendent à ce que vous créiez le DIT à la main, vous devrez donc concevoir une structure. Vous devrez donc planifier où vous allez placer vos utilisateurs, groupes, rôles et réfléchir aux listes de contrôle d'accès ou à la délégation de branche si votre projet implique des choses comme celles-là. Par exemple, vous pourriez avoir un domaine pour widgets.com. Dans la structure AD livré ressemblera à quelque chose comme ceci:

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

En OpenLDAP (ou d'autres implémentations de vanille), vous pouvez concevoir votre DIT à bien des égards. Vous pouvez suivre la convention de composant de domaine (dc = foo, dc = bar) ou vous pouvez utiliser quelque chose d'organisé par région géographique (o = foo, c = bar). Cela n'a pas beaucoup d'importance, mais vous devriez aller avec l'un ou l'autre. AD utilise la convention DC et ne vous donne pas le choix, mais les autres serveurs LDAP peuvent suivre l'une ou l'autre convention. Si vous essayez de faire partie d'un grand domaine MS, je m'en tiens à la convention DC pour la cohérence et la facilité d'intégration. Mais pour cet exemple, nous appelerons notre organisation de l'entreprise (o) dans un pays (c) sans régions ou unités (OU):

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

Ensuite, vous pouvez étendre votre schéma en cas de besoin. Si vous souhaitez étendre votre schéma AD, AD vous demandera d'ajouter des éléments de schéma via le plug-in de la console MMC de l'éditeur de schéma Active Directory (créer une MMC personnalisée). Après cela, c'est assez simple. Définissez d'abord vos attributs puis vos classes d'objet. OpenLDAP vous oblige à écrire un LDIF (nécessite d'abord des attributs, puis des objectclasses). Ou utilisez Apache Directory Studio avec OpenLDAP qui est un outil génial d'interface graphique et d'administration et qui rend la facilité d'utilisation OpenLDAP near-AD. AD ne vous permet pas de tout interroger anonymement sur 389. Si vous voulez obtenir des informations sur le schéma (appelé le catalogue), vous devez interroger 3289 et vous authentifier. Cela me rappelle la cachette DIB vs DIT de LDAP mais je ne sais pas si AD essaye de faire la même chose ici.

AD a une limite de requête par défaut de 10 000. Si vous voulez tout aspirer en une fois, vous devez utiliser des contrôles de pagination sur votre client ou dans votre code ou modifier la limite de requête par défaut sur le contrôleur de domaine que vous recherchez. Notez que les contrôles de pagination peuvent être problématiques. Je les ai obligés à travailler en Java en utilisant les bibliothèques Netscape mais certains clients LDAP ne semblent pas fonctionner correctement même s'ils prétendent qu'ils prennent en charge les contrôles de pagination (YMMV).

L'authentification AD est un peu étrange. Vous pouvez vous authentifier en tant que nom d'utilisateur au format e-mail (nom d'utilisateur -D @ domaine) ou vous pouvez utiliser le nom d'utilisateur complet de l'utilisateur. S'il y a un moyen de le faire dans OpenLDAP, je ne sais pas comment le faire mais je ne m'en soucierais pas. C'est étrange par rapport aux autres serveurs LDAP. LDAP ordinaire suit généralement le format DN (cn = nom d'utilisateur, cn = Utilisateurs, o = widgets, c = us). En résumé, je dirais que AD est opiniâtre et OpenLDAP est générique. Et à cause de cela, AD est facile à défendre, mais OpenLDAP peut être plus flexible.