L'annuaire devient une des pièces centrales d'un système d'information, il convient donc de veiller à ce que celui soit réglementé au niveau de sa structure, de son fonctionnement et de sa sécurité.Ces règles doivent être convenablement définies et respectées.
L'objet de cette présentation est de définir les spécifications
pour la mise en place d'une base d'annuaire agrémenté des fonctionnalités
standards LDAP pour la conception et la réalisation.
1. Généralités sur les annuaires
1.1 Qu'est-ce qu'un annuaire ?
Un annuaire se présente comme une base de données, c’est à dire qu’on peut y mettre des informations et les consulter. Ses principales caractéristiques sont d’accéder à des données par des recherches multi-critères.Des données de natures très diverses peuvent
figurer dans un annuaire électronique :
Répertoire téléphonique
Liste des ressources matérielles de l'entreprise (inventaire)
Base clients
Base fournisseurs,…
Tout l'intérêt de l'annuaire apparaît lorsqu'on
lui sont reliées d'autres applications telles que des applications de messagerie,
de travail de groupe et des services applicatifs Web en Intranet.
Le développement de ces trois activités (messagerie, groupware et Intranet car l'annuaire est utilisé aussi pour la gestion de la relation client par exemple) est consubstantiel du développement des annuaires d'entreprises.
1.2. A quoi sert un annuaire ?
Le besoin d’une base annuaire central découle de deux problèmes majeures :
Quel que soit le type de données, l'annuaire a pour objectif
d'une part de les rendre accessible aux personnes concernées (ayant le droit
de les consulter), d'autre part de permettre à ces mêmes personnes de mettre
à jour certaines de ces données.
Les annuaires LDAP (Lightweight Directory Access Protocol) se situent au cœur des fonctions de communication et de collaboration de l'entreprise à travers son Intranet car ils en simplifient la gestion et l'administration. La mise en œuvre d'un annuaire LDAP au sein d'un Intranet apporte donc une gestion optimale des utilisateurs et de leurs profils, des ressources, et la possibilité de partager ce référentiel avec l'ensemble.
LDAP est un standard destiné à normaliser l'interface d'accès aux annuaires.
LDAP simplifie la gestion des profils de personnes et de ressources, favorise l'interopérabilité des systèmes d'informations à travers le partage de ces profils, et améliore la sécurité d'accès aux applications.
Ce standard se représente par 3 notions importantes :
Le protocole d’échange d’informations ; TCP/IP
La nature des données : 4 modèles
Les interfaces : LDIF
Exemple
: Format du standard LDAP
Ce schéma présente succintement le cheminement d'une communication entre un serveur et un client LDAP, et l'échange de données au moyen du format LDIF
LDIF : LDAP Data Interchange Format
(LDIF) permet de représenter les données LDAP sous format texte
standardisé, il est utilisé pour afficher ou modifier les données
de la base. Il a vocation à donner une lisibilité des données
pour le commun des mortels.
LDIF est utilisé dans deux optiques :
Faire des imports/exports de base
Faire des modifications sur des entrées.
Ce modèle transpose simplement le principe d'une communication entre
un client susceptible d'utiliser l'annuaire et le serveur contenant les données
sécurisées.Ce modèle est basé sur le protocole réseau
TCP/IP et fonctionne comme un mécanisme de message client-serveur
Le protocole définit comment s'établit la communication client-serveur. Un client transmet une requête au serveur à l'aide des éléments de protocole LDAP. Le serveur est alors responsable de l'exécution de la requête. Lorsque celle-ci est terminée, le serveur renvoie une réponse contenant les résultats de la requête ou les erreurs éventuelles.
Chaque requête émise par le client peut être exécutée en mode asynchrone ou en mode synchrone.
Exemple : Modèle de client/serveur
Ce
mécanisme fonctionne comme un modèle normal de client/serveur
avec des échanges de packet pour initialiser la connexion et après
échanger des informations.
Le protocole d'échange LDAP comprend neuf opérations élémentaires :
Les opérations d'interrogation : on y trouve deux fonctions l'une permettant la recherche et l'autre la comparaison
Les opérations de mise à jour : on y trouve quatre opérations qui sont l'ajout, la suppression, la modification et le changement de nom
Les opérations d'identification et de contrôle
de la session : on y trouve trois fonctions qui sont l'ouverture de la session
et l'identification, la fermeture de la session, et l'abandon d'une requête
en cours
Ce modèle définit le type de données pouvant être stockées dans l'annuaire.
3.1.1 Etape de cadrageIl s'agit d'identifier les besoins prioritaires des utilisateurs nécessitant la mise en œuvre d'un annuaire, ainsi que les applications associées.
A cette identification de besoins, nous constatons que plusieurs sections, comme la gestion du personnel, les utilisateurs mais aussi le service informatique, sont désireux de voir apparaître un annuaire centrale. Mais ce sont également des applications qui utilisent quotidiennement des données concernant les employés,…
A ce jour, la priorité est de pouvoir permettre aux employés
de rechercher le numéro de téléphone ou le mail de quiconque
à partir de l'annuaire. Cette démarche n'est pas encore accessible
de tous à ce jour…
- Les objectifs
Dans un premier temps, il s'agira de mettre en place un annuaire accessible à tous en y répertoriant les données basiques concernant les employés (Tel, mail, fax,…). Il est recommander de préconiser la limite des champs visibles de l'annuaire afin de mettre en oeuvre une première version. Par la suite, nous pourrons étendre les possibilités et les fonctionnalités de l'annuaire.
    -
Maîtrise d'oeuvre et d'ouvrage
La mise en place d'un annuaire interne à l'entreprise peut poser des problèmes de responsabilités et d'obtention du budget requis. Le maître d'ouvrage représente les utilisateurs et il est responsable de l'expression de besoins et de la réception de l'application.
Qui représente les acteurs de la maîtrise d'œuvre et d'ouvrage ?
La maîtrise d'ouvrage n'est autre que l'ensemble des " clients " désireux de voir apparaître l'annuaire centrale sur le site. La maîtrise d'œuvre constitue l'ensemble des personnes en charge du développement de l'application de l'annuaire.
3.1.2 Elaboration du contenu
Cette étape consiste à définir des données qui
seront gérées par l'annuaire. Ces données doivent répondre
aux besoins exprimés lors de l'étape précédente.
Une entrée de l 'annuaire contient des informations sur un objet de
l'annuaire. Ces informations sont représentées sous la forme
d'attributs décrivant les caractéristiques de l'objet.
Il s'agit donc de décrire l'ensemble des classes d'objets, des attributs
à gérer et la hiérarchie entre ces classes, c'est à
dire leur lien d'héritage.
- Les objectifs
Il s'agit de définir la liste des attributs indépendamment des classes d'objets. Ce n'est qu'une fois le liste des attributs écrites que nous créerons les classes d'objets pour y ranger les attributs.
- Les défnition des classes et des attributs
L' inventaire des attributs a été réalisée en fonction des besoins des acteurs de la maîtrise d'ouvrage. Ces informations brutes, une fois traitées, nous ont permis de créer les classes d'objets contenant les attributs voulus.
Exemple : la classe d'objet Personne
Cette classe d'objet apparaît comprenant les attributs tels qu'ils ont été requis que ce soit par le responsable informatique ou le responsable du service de la documentation. Ainsi, l'objet personne représente la fiche d'un individu qui est caractérisé pas différents attributs tels que :
Tous les attributs suivants permettront de caractériser une personne toutefois ils ne seront pas visibles de tout le monde. Il est primordial de tous les représenter c'est, ensuite la gestion des ACLs, qui limitera les niveaux de visibilités.
Ce modèle définit comment sont organisées les entrées de l'annuaire et comment elles sont référencées. Les entrées représentent des objets.
L'organisation de ces objets se fait suivant une structure logique hiérarchique : le Directory Information Tree (DIT). Au sein de ce DIT, l'identification d'une entrée se fait à l'aide d'un nom, le Distinguish Name (DN).
Il s'agit de définir les nœuds de l'arbre et leur hiérarchie. Cette étape est l'une des plus importantes de la conception, car elle conditionne les performances, l'évolutivité et la modularité de l'annuaire.
Exemple :
La
structure de l'arbre est une phase importante représentant la structure
hiérarchique de l'entreprise, comme sur le schéma suivant. On
s'aperçoit alors que l'individu Steve HERVE est représenté
par un DN qui s'étend du point d'entrée de l'arbre jusqu"à
l'objet personne Steve HERVE
3.3.1 Les fonctionnalités de l'annuaire
L'application ANNUAIRE peut être décomposé en deux modules :
Un module de gestion permettant d'ajouter, modifier, supprimer et afficher les objets et les autres informations stockées (projets,…)
Un module de consultation permettant de rechercher les informations dans la base annuaire
Exemple :
Le
module de consultation permet à un utilisateur de rechercher des informations
sur un individu ou sur une société. Les schémas suivants
permettent de voir qu'il est important de spécifier à quel niveau
limite-t-on les consultations.
3.3.2 Identification des acteurs
Les personnes et les applications qui sont amenées à consulter ou à utiliser l'annuaire, ainsi qu'à le gérer et l'administrer. Il s'agit de les identifier afin de leur attribuer des droits d'accès aux données, et de décrire les processus de mise à jour associés.
On distingue généralement trois types d'acteurs :
· Les utilisateurs : ce sont des personnes ou des applications qui
utilisent régulièrement l'annuaire pour y lire ou pour mettre
à jour des informations les concernant
· Les gestionnaires : ce sont ceux qui sont chargé de gérer
l'annuaire, c'est à dire maintenir son contenu.
· Les administrateurs : ce sont ceux qui sont chargé d'administrer
l'annuaire
- Les utilisateurs
Il est conseillé de différencier les utilisateurs anonymes et les utilisateurs identifiés.
Les utilisateurs anonymes ne doivent avoir accès qu'à des informations non sensibles. Les utilisateurs identifiés peuvent avoir accès en lecture à toutes informations et en écriture pour des infos les concernant.
Il est aussi possible de différencier les utilisateurs internes et les utilisateurs externes de l'entreprise.
D'autre part si l'annuaire contient des informations sur les utilisateurs, il est préférable de les protéger par la mise en place de mécanismes de chiffrement protégés par des firewalls.
-
Les gestionnaires
Ce sont des utilisateurs identifiés qui peuvent lire certaines informations
sensibles concernant un ensemble d'utilisateurs ou mettre à jour certains
de leurs attributs. Ce ne sont pas nécessairement des informaticiens.
Les gestionnaires peuvent être :
Les assistantes
Les responsables
Les gestionnaires du personnel
- Les administrateurs
Il existe en général deux catégories d'administrateurs : ceux qui vont se charger de gérer le contenu de l'annuaire, et notamment les gestionnaires de celui-ci, et ceux qui vont l'administrer techniquement.
· L'administrateur fonctionnel : ils sont chargés de créer, modifier, supprimer les gestionnaires de l'annuaire et de leur attribuer des droits d'accès. Ils peuvent aussi agir sur les données de l'annuaire, au même titre que les gestionnaires, mais avec des pouvoirs plus larges. Ils n'ont pas une connaissance pointue de LDAP, mais ils doivent en connaître les notions de base.
· L'administrateur technique : exploitant informatique qui agira sur
l'annuaire en cas de panne ou d'évolution du modèle de données.
Le cas échéant, l'administrateur technique se verra attribuer
l'accès à l'annuaire par l'administrateur fonctionnel.
3.3.3 Identification des process métiers
Les process métiers permettent d'analyser précisément
à quel moment interviennent les acteurs (définies précédemment)
au travers des différentes actions interagissant sur l'annuaire. Ces
process métiers ne sont en fait que les algorithmes des actions possibles
sur l'annuaire. Ils tracent les étapes successives que requiert, par
exemple, la création d'une fiche.
La base doit pouvoir être protéger contre des intrusions intempestives, et ce, de manière efficace. De plus, chaque acteur, suivant ses droits ne doit pouvoir effectuer que certaines actions. Nous aurons trois groupes différents de droits d'accès pour identifier les trois types d'acteurs.
Les aspects de sécurité et confidentialité doivent être
pris en compte dès la phase de conception. Quels sont les aspects à
étudier ?
Les accès non autorisés
Les attaques de type denial-of-service
Les droits d'accès aux données
La tâche primordiale réside dans l'établissement des règles d'accès aux données. Il faut déterminer pour chaque attribut quel est son niveau de confidentialité et quel utilisateur ou quelle application pourra y accéder en lecture ou en écriture.
Les mécanismes qui peuvent être mis en œuvre :
L'authentification
Les signatures électroniques
La cryptographie
Les ACL permettent de décrire les habilitations de tout utilisateur référencé dans l'annuaire sur les autres objets de l'annuaire.
Exemple :
Sur l'exemple suivant, l'utilisation d'ACL va permettre de limiter la visibilité des informations. En effet, l'individu Steve HERVE ne pourra pas voir les informations concernant l'entreprise. Les ACLs limiterons les requêtes à partir de l'ou personnes.
Il est possible d'appliquer des ACLs à tout type de niveau dans l'arbre.
3.4.1 Authentification
LDAP propose plusieurs choix d'authentification :
Anonymous authentification : correspond à un accès au serveur sans authentification , qui permet uniquement de consulter les données accessibles en lecture pour tous.
Root DN Authentification : Utilisateur privilégié. Il a accès en modification à toutes les données.
Mot de passe + SSL : La session entre le serveur et le client est chiffrée et le mot de passe ne transite plus en clair
3.4.2 Définition des droits d'accès
Il s'agit de définir les droits d'accès des utilisateurs sur
les ressources de l'annuaire (objets et attributs).
Préciser à qui appartiennent chaque attribut et chaque classe
d'objet, ainsi que les droits d'accès des acteurs spécifiés.
Ces droits comprennent essentiellement la lecture, la modification, la création,
la suppression et la recherche.
Pour définir ces droits il faut commencer par lister les actions possibles :
Rechercher et lister des données
Comparer des données
Modifier un objet
3.4.3 Protection réseau
Toute la panoplie d'outils de sécurité est à la disposition
de l'administrateur pour sécuriser les accès réseau au
service et la confidentialité des transactions. LDAP supporte les protocoles
SSL et TLS pour chiffrer les données qui transitent sur le réseau.
La réplication est très importante pour plusieurs raisons. La première est la volonté d'assurer une disponibilité maximale des données gérées par l'annuaire. La seconde est l'optimisation des performances.
Cette optimisation d'accès à l'annuaire peut se faire de la façon suivante se fera de la façon suivante : plusieurs serveurs dédiés à la lecture et un seul dédié à la lecture.
De plus, la réplication d'un serveur sur plusieurs serveurs peut pallier à :
Une coupure du réseau
Surcharge du service
Une stratégie consiste à avoir un seul serveur maître sur le centre principal qui centralise toutes les mises à jour. Cette stratégie est simple de mise en place. Le serveur maître va se charger des répliquer ses informations de manière régulière sur les serveurs dédiés à la lecture.
Toutefois si ce type de stratégie est simple à mettre en œuvre, il y a deux inconvénients :
1. Si le serveur maître tombe en panne, les mises à jour ne peuvent plus s'effectuer.
Mise en place d'un doublon non accessible pour pallier à une éventuelle panne du serveur maître
2. Si le serveur maître est situé sur un site distant qui n'est
pas relié en permanence avec les postes clients, la mise à jour
ne pourra pas se faire à tout moment
Ce point n'aura pas de répercussion étant donné que le serveur maître est à proximité et en réseau avec les postes clients.
Les possibilités de réplication :
L'arbre entier ou seulement un sous arbre
Une partie des entrées et de leurs attributs qu'on aura spécifiés via un filtre
La synchronisation des serveurs peut se faire de façon totale ou incrémentale. La réplication se fait en temps réel ou à heure fixe.
Les applications Intranet/Extranet
Les applications Internet
Les bases de données
Ci-dessous sont listés les logiciels clients et serveurs les plus connus et les plus utilisés pour l'intéraction avec le protocle LDAP
5.1. Les logiciels serveurs
Active Directory
Lotus Domino
OpenLDAP
5.2. Les logiciels clients
Microsoft Outlook, NetMeeting
Netscape Communicator
LDAPBrowser
Ce document a pour intérêt de décrire les étapes de l'installation et de la configuration de l'outil OpenLDAP sous l'OS FreeBSD 4.8
Installation
et configuration de OpenLDAP(195Ko)
6.2. Configuration LDAPBrowser
Ce document a pour intérêt de décrire les étapes de l'installation et de la configuration de LDAPBrowser, client permettant de se connecter à un annuaire LDAP
LDAP Browser est un logiciel permettant la gestion graphique d'une base LDAP. Le grand intérêt de ce logiciel est la fait qu'il ait été totalement programmé en java ce qui le rend adaptable à la fois à Unix et à Windows.
Installation
et Configuration de LDAPBrowser (285Ko)
6.3. Configuration Service d'annuaire
Cet document explique comment configurer Outlook Express pour pouvoir consulter
l'annuaire et ainsi rechercher des informations concernant une personne.
Configuration
service annuaire (240Ko)
LDAPBrowser : http://www.iit.edu/~gawojar/ldap/download.html
Service
Annuaire LDAP - Laurent Mirtain
"Construire un annuaire d'entreprise avec LDAP" - Marcel
Rizcallah
Pour tout problème : Steve HERVE |