Passer au contenu

Accéder à un annuaire Exchange depuis un intranet

En attendant le déploiement massif de Windows 2000, il est possible d’accéder à l’annuaire Exchange Server à partir d’un intranet et d’un navigateur.

Quel directeur informatique n’a pas envisagé un jour de remplacer la vieille bible papier contenant toutes les coordonnées des collaborateurs de l’entreprise par un annuaire électronique, accessible depuis l’intranet de la société ? Lorsque l’on possède Microsoft Exchange Server, il est possible d’accéder aux champs de l’annuaire du serveur de messagerie moyennant le développement de pages Web s’appuyant sur la bibliothèque d’objets CDO (Collaboration Data Objects).

1) Installez les logiciels

La mise en ?”uvre la plus simple consiste à installer le serveur Internet Information Server (IIS, fourni dans Windows NT) et le composant OWA (Outlook Web Access) livré avec Exchange Server. Le serveur IIS doit avoir un lien réseau avec un serveur Exchange. Il peut être installé sur la même machine, mais cela n’est pas recommandé pour des raisons de charge CPU et de mémoire. Lors de son installation, OWA place les bibliothèques d’objets CDO qui seront exploitées par vos pages dans le répertoire “WINNTSYSTEM32”, puis les enregistre. Dans sa forme la plus simple, l’application est constituée d’une page HTML permettant de saisir les critères de recherche et d’une page ASP contenant un script VBScript. Ce dernier effectue la recherche dans votre annuaire en s’appuyant sur CDO et affiche le résultat sous la forme d’un tableau.

2) Mettez en place la configuration de base

Il s’agit de créer un répertoire sur le disque du serveur IIS. Ce répertoire contiendra les fichiers pages Web de votre application d’accès à l’annuaire. Avec le programme d’administration d’IIS, positionnez-vous sur le site Web par défaut puis, avec le bouton contextuel de la souris, créez un nouveau répertoire virtuel qui pointera vers le dossier que vous avez conçu.

3) Saisissez les critères

Cette tâche passe par une page de formulaire standard que vous pouvez concevoir avec n’importe quel outil de création de pages Web, du genre Macromedia Dreamweaver ou Microsoft FrontPage. Le clic sur le bouton “Recherche” charge la page ASP qui récupère en paramètres les différents critères de recherche. Vous pouvez utili- ser n’importe quel champ de l’annuaire Exchange comme ré-férence car les filtres de recherche sont complètement paramétrables. Les champs les plus couramment utilisés sont le nom de l’utilisateur, le département ou l’entreprise, mais, bien entendu, vous êtes seul maître à bord !

4) Connectez-vous au serveur

Cette partie des opérations est effectuée par un script VBScript s’exécutant sur le serveur IIS dans une page ASP. Le modèle objet CDO permet d’accéder facilement aux ressources d’un serveur Exchange. La première des opérations consiste à créer une instance de l’objet pour réaliser une session de messagerie (baptisée également session Mapi), puis à se connecter au serveur Exchange en mode anonyme ou authentifié. L’annuaire de votre entreprise étant une ressource précieuse, le mode authentifié est nettement plus indiqué. Le plus simple consiste à sécuriser sur une partition NTFS les fichiers HTML et ASP qui contiennent l’application d’accès à l’annuaire. De cette manière, c’est IIS et Windows NT qui assureront la sécurité de vos informations. Pour résumer ce mode de fonctionnement, la connexion à l’annuaire du serveur Exchange est effectuée en mode anonyme par des pages Web accessibles uniquement par certains utilisateurs. Vérifiez bien à ce niveau que l’administrateur Exchange n’a pas dévalidé l’accès anonyme à l’annuaire, ce qui vous forcerait à vous authentifier non seulement vis-à-vis du serveur IIS mais aussi vis-à-vis du serveur Exchange comme c’est expliqué en fin d’article.

5) Accédez à l’annuaire

L’annuaire Exchange est constitué de listes (chaque liste étant une “Addresslist”) contenant des collections d’objets, chacun représentant un utilisateur. Lorsque votre script se connecte en mode anonyme, ce qui est le cas ici, une seule liste est disponible, celle d’adresses globales (LAG) qui recense tous les utilisateurs. Dans la collection des “Addresslists” disponibles, c’est donc le premier et le seul objet. La collection d’objets est baptisée “Addressentries”. Vous pouvez par exemple connaître le nombre d’entrées dans la LAG en utilisant la méthode count, ce qui donne (si l’objet session s’appelle “masession”) : masession.address lists(1).addressentries.count.

6) Lancez la recherche

Dans le modèle CDO, une recherche n’est pas effectuée par une requête semblable à la sélection des SGBD, mais par un filtre qui permet de trier la liste pour ne faire apparaître que les entrées répondant aux critères. Ce filtre contient une collection de champs (collection baptisée “Fields”) servant de critères de filtrage et il est possible d’ajouter ou de supprimer des champs suivant les besoins. Lorsque l’on utilise plusieurs champs, ils sont habituellement combinés par un “ET” (recherche de tous les collaborateurs appartenant au département marketing ET travaillant au bâtiment 5 par exemple), mais il est aussi possible de modifier ce comportement et de remplacer le “ET” par un “OU” en donnant la valeur “Vrai” (True) à la propriété “Or” du filtre. Un filtre vierge est automatiquement créé pour chaque collection “Addressentries”, c’est-à-dire que la collection “Fields” est vide. Suivant les zones que l’utilisateur a renseignées dans le masque de recherche, il faut donc que vous ajoutiez le champ correspondant dans le filtre, avec la valeur entrée par l’utilisateur. Par défaut, la recherche s’effectue uniquement sur le début du champ.Les champs sont reconnus par un identifiant en hexadécimal baptisé “Mapi Tag” (balises Mapi, voir tableau). La liste exhaustive de ces identifiants est disponible sur le site outlookexchange. com. N’hésitez pas à utiliser les balises Mapi des champs servant de critère et les balises Mapi des champs que vous voulez afficher dans la réponse à la requête de l’utilisateur. La modification du filtre affecte immédiatement la collection “Addressentries”. Après avoir ajouté les champs servant de critère et leur valeur, vous pouvez parcourir la collection “Addressentries”, qui aura été réduite suivant la demande de l’utilisateur. Le plus simple consiste à utiliser la boucle “For each … in”. Pour afficher les informations demandées (numéro de téléphone, adresse, fonction, etc.), vous devez d’abord vérifier que le champ contient une valeur, sinon une erreur se produira sur le serveur IIS et rien ne sera affiché.

7) Pour aller plus loin

Une amélioration importante consiste à utiliser une connexion authentifiée au serveur Exchange. Si le standard PC de votre entreprise est constitué d’une machine Windows 95/98, NT ou 2000 et d’Internet Explorer, il faut activer le mode de sécurité Windows NT Challenge/Response au lieu de Basic Authentification sur le répertoire virtuel contenant l’application. De cette manière, quand l’utilisateur se connectera à l’application, le serveur IIS disposera de son nom d’utilisateur et de domaine NT que vous pourrez utiliser pour ouvrir sa boîte aux lettres grâce à la variable serveur “AUTH_USER”. Cette dernière est sous la forme “DOMAINEUtilisateur” où “Utilisateur” est le nom de la boîte aux lettres, sauf exception. Le fichier “CDO. HLP” situé sur le CD-Rom du serveur Exchange donne les informations sur le modèle objet CDO. Les aspects sécuritaires concernent principalement le serveur IIS et ses différents ni- veaux de sécurité : IIS, NTFS, domaine Windows NT.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Laurent Francfort