Chapitre 2 A. À propos des annuaires Nous sommes familiers et habitués à utiliser différents types d'annuaires dans notre vie quotidienne. À titre d'exemple, nous pouvons citer les annuaires téléphoniques publiques et professionnels et tout ce qui ressemble de près ou de loin à un catalogue. Ce pourrait être le cas d'un programme de spectacle ou encore d'un catalogue de vente de produits sur un site de commerce électronique. La fonction première de tout service d'annuaire est donc d'aider les utilisateurs de ces services à trouver toutes sortes d'éléments en fonction de leur description et diverses caractéristiques. Dans la mesure où les utilisateurs n'interagissent pas directement avec l'annuaire, il est dit que ces types d'annuaires fonctionnent en mode "déconnecté". L'implémentation des services d'annuaires au sein des réseaux informatiques reprend ces mêmes concepts mais étend de manière importante leur fonctionnalités. À l'inverse des premiers, les annuaires informatiques fonctionnent en mode "connecté" et disposent ainsi des caractéristiques suivantes : - L'annuaire est sécurisé : ce point signifie que l'annuaire peut être utilisé pour implémenter un contrôle d'accès global aux objets. Dans la mesure où l'annuaire doit centraliser des informations "intéressantes", il est indispensable qu'il dispose de mécanismes d'authentification modernes et standards capables de gérer l'identité des clients. - L'annuaire est dynamique : ce point signifie que le contenu de l'annuaire peut être mis à jour de manière très rapide et ce, quel que soit le nombre de serveurs d'annuaires concernés. Les informations offertes par l'annuaire sont donc "stables" car disponibles de manière cohérente en tout point du réseau. - L'annuaire est flexible : ce point signifie que le contenu de l'annuaire peut être personnalisé via l'ajout de nouvelles structures de données sans pour autant nécessiter une réorganisation de l'annuaire, ni de surcoûts importants. Une telle flexibilité permettra aussi de réorganiser de manière dynamique l'annuaire lorsque cela sera nécessaire. Les opérations de réorganisation peuvent permettre une plus grande efficacité des services de recherches de l'annuaire et aussi de s'adapter à une évolution du modèle organisationnel. 32 Infrastructure d'annuaire
Annuaires, opérations LDAP et services de domaine AD Bases de données et Systèmes de Fichiers : ce qu'un système d'annuaire ne fera pas! L'annuaire joue le rôle d'une base de données sécurisée globalement disponible car répliquée en de nombreux points du réseau. Cependant, les services et le rôle de l'annuaire ne peuvent être comparés aux services fournis par un système de base de données SQL ou un système de fichier tel que NTFS ou autre. Concernant la comparaison par rapport aux moteurs de bases de données SQL, il convient de constater que les annuaires sont utilisés à 90% en lecture et donc très peu en écriture. Si le volume des écritures augmente ou si les requêtes sont complexes, alors l'avantage sera donné à un moteur de bases de données SQL. Si par contre, la sécurité et la disponibilité sont privilégiées, alors l'avantage serait donné à un annuaire. Concernant la comparaison par rapport aux systèmes de fichiers comme par exemple NTFS il convient de faire remarquer que les annuaires n'apprécient guère les objets "volumineux". Les annuaires sont en fait optimisés pour être excellents en recherches et en lectures d'attributs et ce, sur un grand volume d'objets (généralement des millions d'objets). À la différence des systèmes de fichiers, les annuaires ne disposent pas de fonctions de lecture anticipées (Read Ahead) ou de lecture brute (RAW). Les annuaires sont donc orientés "attributs et valeurs d attributs" tandis que les systèmes de fichiers sont clairement orientés stockage des données. Si les annuaires sont pris en défaut sur leur capacité à assurer un service performant au niveau des données brutes, on peut aussi remarquer qu'il en sera de même pour les systèmes de fichiers concernant la gestion des attributs et les services de recherche intégrés. Editions ENI - All rights reserved B. Un peu d'histoire En 1988, l'iso (International Organization for Standardization) et l'itu (International Telecommunications Union) fusionnent leurs travaux et approuvent la première version du standard X.500, laquelle sera officiellement publiée par l'itu en 1990. En fait, X.500 est constitué d'un ensemble de protocoles standards, tous issus des travaux de l'iso. Afin de donner un bref aperçu de l'étendue des services offerts par le protocole X.500, ces différentes recommandations et protocoles sont brièvement rappelés ci-dessous : - Spécification X.501 : Description des concepts X.500 ; - Spécification X.509 : Description des mécanismes d'authentification X.500 ; Conception sous Windows Server 33
Chapitre 2 - Spécification X.511 : Description des fonctions de recherches et manipulations d'objets ; - Spécification X.518 : Description des services distribués ; - Spécification X.519 : Description des protocoles X.500 tels que DAP, DSP, DOP et DISP ; - Spécification X.520 : Description des attributs et classes X.500 ; - Spécification X.525 : Description des mécanismes de réplication X.500 ; - Spécification X.530 : Description des services d'administration des annuaires X.500. Comme vous pouvez le constater, le protocole X.500 a été conçu dès le départ pour offrir aux services d'annuaires des services complets et sophistiqués. Cependant, ce cahier des charges énorme sera la cause des nombreux problèmes de fonctionnement et des faibles performances des premières versions d'annuaires X.500. De plus, le principal inconvénient viendra du fait que seuls les protocoles ISO étaient supportés. Au commencement de l'internet, certains disent même que le "rêve secret" des architectes de l'osi aurait été que X.500 supplante TCP/IP! En fait cela n'arrivera pas et, bien au contraire, les implémentations X.500 les plus modernes seront petit à petit adaptées pour supporter TCP/IP. C. LDAPv2 & LDAPv3 Les méthodes d'accès aux annuaires basés sur X.500 étaient bien trop complexes. C'est ainsi qu'après plusieurs méthodes "plus simples" permettant l'accès aux annuaires X.500, l'osi et l'ietf (Internet Engineering Task Force) décidèrent de se regrouper pour formaliser un protocole allégé capable d'accéder aux annuaires X.500. Ces différentes évolutions sont rappelées ci-dessous : - La première spécification a été publiée en 1993 sous le RFC 1487. - La spécification LDAPv2 publiée sous le RFC 1777 sera la première version approuvée par l'industrie. - Le RFC 1778 (String Representation of Standard Attribute Syntaxes) et le RFC 1779 (String Representation of Distinguished Names) participent aussi à la clarification des syntaxes supportées. 34 Infrastructure d'annuaire
Annuaires, opérations LDAP et services de domaine AD Editions ENI - All rights reserved - La spécification LDAPv3 est publiée en 1997 sous le RFC 2251. Cette version améliorera de manière significative LDAPv2 dans les domaines ci-dessous : - Extensibilité plus importante : le protocole LDAPv3 peut être étendu pour supporter de nouvelles opérations à l'aide de nouveaux contrôles. De cette manière, les services LDAP peuvent être étendus au fur et à mesure que cela est nécessaire. - Découverte des fonctionnalités et du schéma disponible : les serveurs LDAPv3 disposent d'une nouvelle entrée dans l'annuaire appelée RootDSE (pour Root Directory Server Specific Entry). Ce nouvel élément permet la publication de nombreuses informations spécifiques telles que, par exemple, les informations de schéma ou les contrôles disponibles. Cette fonctionnalité permet aux clients LDAP de mieux négocier les fonctionnalités et services disponibles par tel ou tel serveur d'annuaire LDAP. - Meilleure gestion des authentifications : LDAPv3 implémente le support de SASL (Simple Authentication and Security Layer) et de TLS (Transport Layer Security). - Gestion des références : LDAPv3 implémente un mécanisme de gestion des références qui permet aux serveurs LDAP de renvoyer des références vers d'autres serveurs LDAP. - Support des jeux de caractères Unicode : le support du jeu de caractères UTF-8 permet au protocole LDAP de manipuler des données quel que soit le langage utilisé. Comme pour LDAPv2, le protocole LDAPv3 nécessite un certain nombre de clarifications lesquelles sont publiées dans les RFC suivants : - RFC 2252 : Attribute Syntax Definitions - RFC 2253 : UTF-8 String Representation of Distinguished Names - RFC 2254 : String Representation of LDAP Search Filters - RFC 2255 : The LDAP URL Format - RFC 2256 : A Summary of X.500(96) User Schema for use with LDAPv3 - RFC 2829 : Authentication Methods for LDAP - RFC 2830 : Extensions for Transport Layer Security Conception sous Windows Server 35
Chapitre 2 D. Conformité LDAP de Windows 2000 La famille des systèmes d'exploitation Windows 2000 Server est majeure sur de nombreux plans. Nous pouvons rapidement citer les performances du système, les services de cluster, les services réseaux, les services de certificats X509 v3, le support des authentifications par cartes à puce, les services IIS, les services transactionnels MTS et les services de streaming multimédia WMS. Cette liste n'est bien sûr, pas exhaustive. Cependant, ces services, même s'ils sont fondamentaux à plus d'un titre, ne furent pas la raison pour laquelle Microsoft monopolisa pendant plus de deux ans la quasi-totalité de ses développeurs sur le développement de Windows 2000! Le problème était d'arriver au bout du cahier des charges qui avait été défini dans le cadre des services distribués. L'ensemble de ces services devait être basé sur des technologies standard telles que TCP/IP, DNS, NTP, Kerberos, LDAPv2 et LDAPv3 et de nombreuses extensions autour de ces standards pour que soit possible le déploiement d'une Infrastructure de Services Distribués. Il fallait aussi être capable de répondre aux besoins d'entreprises très différentes et de tailles variables. C'est ainsi que la première implémentation de l'active Directory fut rapidement capable d'accueillir différents types de données et de services. Pour que ce soit possible, Microsoft s'est engagé très tôt à supporter le protocole d'annuaire LDAP. De fait, l'implémentation Windows 2000 de l'annuaire Microsoft Active Directory est parfaitement conforme aux RFC disponibles au moment de la disponibilité de Windows 2000. Le tableau ci-dessous liste les différents RFC LDAP supportés par l'implémentation Windows 2000 de l'annuaire Active Directory. RFC RFC LDAP principaux État des RFC 2251 Lightweight Directory Access Protocol (v3) Proposed Les alias et les DN de type multivaleurs ne sont à ce jour pas supportés. 2252 Lightweight Directory Access Protocol (v3): Attribute Syntax Proposed Definitions Certaines syntaxes Unix ne sont pas à ce jour supportées. 36 Infrastructure d'annuaire
Annuaires, opérations LDAP et services de domaine AD RFC RFC LDAP principaux État des RFC 2253 Lightweight Directory Access Protocol (v3): UTF-8 String Proposed Representation of Distinguished Names 2254 The String Representation of LDAP Search Filters Proposed 2255 The LDAP URL Format Proposed 2256 A Summary of the X.500(96) User Schema for use with Proposed LDAPv3 2829 Authentication Methods for LDAP Proposed 2830 Lightweight Directory Access Protocol (v3): Extension for Proposed Transport Layer Security RFC RFC LDAP additionnels 2696 LDAP Control Extension for Simple Paged Results Manipulation Proposed 2247 Using Domains in LDAP/X.500 Distinguished Names Proposed E. Conformité LDAP de Windows Server 2003, Windows Server 2008 et Windows Server 2008 R2 Windows Server 2003, Windows Server 2008 et Windows Server 2008 R2 reprennent la base apportée par Windows 2000 Server et apporte de nouvelles fonctionnalités qui intéresseront tant les développeurs que les ingénieurs et architectes systèmes. Notez que ces fonctionnalités font toutes l'objet de RFC. Editions ENI - All rights reserved Les fonctionnalités les plus importantes sont spécifiées ci-dessous : - Support des entrées dynamiques : l'annuaire Active Directory peut stocker les valeurs d'entrées dynamiques en leur assignant une durée de vie (TTL - Time to Live). De cette manière, ces valeurs peuvent être automatiquement détruites lorsque le TTL expire. - Support du protocole TLS - Transport Layer Security : les connexions vers l'active Directory via le protocole LDAP peuvent désormais être cryptées et authentifiées à l'aide du protocole TLS. Conception sous Windows Server 37