Vous êtes sur la page 1sur 17

Active Directory Federation Service : authentification pour Apache 2.

0 avec SourceID WsFedAuth


Microsoft Corporation Publi : Juin 2006 Auteur : Guillaume Aubert

Objectifs de ce guide
Tout au long de ce guide, nous tudierons par un cas pratique comment mettre en place en environnement de single-sign-on reposant sur Active Directory Federation Services pour des serveurs applicatifs non Microsoft comme Apache 2.0. Nous utiliserons WS-Federation for Apache 2.0 Toolkit. Ce guide mne lillustration des principes dADFS en utilisant des applications classiques. Pour construire cet environnement, nous supposerons que vous tes familiers avec Windows Server 2003 R2 et que vous disposez dune infrastructure de test Active Directory Federation Service pour drouler les tapes de ce guide. Il vous sera galement ncessaire de disposer dune distribution Linux pour supporter Apache 2.0 (nous prendrons ici pour les exemples de cette dmonstration une version Debian 3.1 GNU/Linux librement tlchargeable sur le site de lditeur.) Le temps ncessaire pour complter les tapes de ce guide est estim environ une heure.

Les informations contenues dans ce document, y compris les URL et autres rfrences de sites Web Internet, pourront faire l'objet de modifications sans pravis. Sauf mention contraire, les socits, les organisations, les produits, les noms de domaine, les adresses lectroniques, les logos, les personnes, les lieux et les vnements utiliss dans les exemples sont fictifs et toute ressemblance avec des socits, organisations, produits, noms de domaine, adresses lectroniques, logos, personnes, lieux et vnements rels est purement fortuite et involontaire. L'utilisateur est tenu d'observer la rglementation relative aux droits d'auteur applicable dans son pays. Aucune partie de ce document ne peut tre reproduite, stocke ou introduite dans un systme de restitution, ou transmise quelque fin ou par quelque moyen que ce soit (lectronique, mcanique, photocopie, enregistrement ou autre) sans la permission expresse et crite de Microsoft Corporation. Microsoft peut dtenir des brevets, avoir dpos des demandes d'enregistrement de brevets ou tre titulaire de marques, droits d'auteur ou autres droits de proprit intellectuelle portant sur tout ou partie des lments qui font l'objet du prsent document. Sauf stipulation expresse contraire d'un contrat de licence crit de Microsoft, la fourniture de ce document n'a pas pour effet de vous concder une licence sur ces brevets, marques, droits d'auteur ou autres droits de proprit intellectuelle. 2006 Microsoft Corporation. Tous droits rservs. Active Directory, Microsoft, SharePoint,MS-DOS, Windows, Windows NT et Windows Server sont soit des marques de Microsoft Corporation, soit des marques dposes de Microsoft Corporation, aux tats-Unis d'Amrique et/ou dans d'autres pays. Les noms de socits et de produits mentionns dans ce document sont des marques de leurs propritaires respectifs.

Table des matires


Active Directory Federation Service : authentification pour Apache 2.0 avec SourceID WsFedAuth...............................................................................................................1 Objectifs de ce guide.............................................................................................1 Table des matires.......................................................................................................3 ADFS authentification pour Apache 2.0 avec SourceID WSFedAuth...........................4 A propos de ce guide................................................................................................4 Attention, ce guide nest pas ...............................................................................4 Pr requis .............................................................................................................5 Etape 1 : Installation de lenvironnement Linux............................................................6 Installation de Debian GNU/Linux ............................................................................6 Mise jour de votre machine................................................................................6 Installation dApache 2.0 ......................................................................................7 Configuration rseau.............................................................................................7 Paramtrage du nom de la machine......................................................................8 Paramtrage de la configuration IP ......................................................................8 Paramtrage des informations de rsolution de noms..........................................9 Installation du module Apache WSFedAuth..............................................................9 Installation des librairies........................................................................................9 Compilation du module Apache WSFedAuth.......................................................10 Cration et importation des certificats.....................................................................11 Cration du certificat serveur pour ws0.treyresearch.net.....................................11 Etape 2 : Configuration de WSFedAuth.....................................................................13 Edition du fichier de configuration...........................................................................13 Redmarrage du serveur Apache ..........................................................................15 Etape 3 : Configuration du serveur de ressource ADFS.............................................15 Ajout du serveur web dans le DNS.........................................................................15 Configurer le serveur de fdration ressource (Trey Research) ............................16 Ajouter et configurer lapplication web.................................................................16

ADFS authentification pour Apache 2.0 avec SourceID WSFedAuth


A propos de ce guide
Ce guide vous permettra de construire une infrastructure de dmonstration pour valuer les capacits dauthentification de ADFS en environnement non Microsoft. Il vous permet dtablir un environnement single-sign-on utilisant les principes de dlgation dauthentification de ADFS. Il vous guidera dans linstallation des composants logiciels et le paramtrage de lenvironnement.

Ce guide suppose que vous tes familiers avec ADFS ainsi que lenvironnement dvaluation ADFS Pas--pas disponible galement sur le site de Microsoft : http://www.microsoft.com/downloads/details.aspx?familyid=062F7382-A82F-44289BBD-A103B9F27654&displaylang=fr Pour toute rfrence concernant ADFS, veuillez consulter notre site : http://www.microsoft.com/france/windows/windowsserver2003/R2/identite.mspx

Attention, ce guide nest pas


Un guide de rfrence constituant les meilleures pratiques pour mettre en place un environnement de production ADFS. Il permet uniquement dillustrer dans un environnement de test, les possibilits dinteroprabilit de ADFS utilisant les tickets SAML. Pour plus dinformations concernant les meilleures pratiques de dploiement et de gestion de ADFS, veuillez vous rfrer aux livres blancs suivants disponibles galement sur le site Internet de Microsoft Windows Server 2003 R2 Roadmap. Un guide pour installer et configurer les services de certificats pour ADFS.

Pour plus dinformations propos des services de certificats dans Windows 2003 Server, veuillez vous rfrer aux livres blancs suivants disponibles galement sur le site Internet de Microsoft Public Key Infrastructure for Windows Server 2003. Un guide pour installer un proxy de fdration de services.

Pr requis
Pour mener bien ce laboratoire, vous aurez besoin De lenvironnement dvaluation ADFS Pas pas (ralisable grce au document http://www.microsoft.com/downloads/details.aspx?familyid=062F7382A82F-4428-9BBD-A103B9F27654&displaylang=fr) Dune distribution Debian GNU/Linux (http://www.debian.org)

Dune connexion internet pour tlcharger les composants Apache ainsi que le kit SourceID WS-Federation (http://www.sourceid.org)

Etape 1 : Installation de lenvironnement Linux


La premire tape consiste la mise en place du serveur Web. Pour les besoins de cette dmonstration nous utiliserons une distribution Debian GNU/Linux 3.1 quil vous est possible de tlcharger depuis ladresse de son diteur. (http://www.debian.org).

Installation de Debian GNU/Linux


Le but de guide nest pas de dcrire linstallation dune distribution Linux, nous utiliserons pour cet atelier linstallation minimale propose par la version stable de Debian.

Mise jour de votre machine


Il est de bon usage de mettre jour la distribution que vous venez dinstaller : Important Si vous tes connects Internet via un proxy, vous devrez dabord spcifier celui-ci au systme en utilisant les instructions suivantes : export http_proxy=http://myproxyadress:myproxyport

Lutilitaire de gestion de paquets apt permet de grer les installations pour la distribution Debian; pour effectuer les mises jour il vous suffit de taper dans la console : apt-get update Note Cette commande permet de mettre jour la liste des paquets qui peuvent tre installs sur le systme.

apt-get upgrade Note Cette commande met jour les paquets.

Vous devrez ensuite suivre les instructions de mise jour.

Installation dApache 2.0


Dans ce guide, nous utilisons les paquets Apache fournis par Debian en utilisant le gestionnaire dinstallation. Encore une fois, il ne sagit nullement des meilleures pratiques en termes de scurit mais cela sera suffisant pour notre environnement dvaluation. Il vous est par-ailleurs possible dutiliser des versions plus rcentes dApache 2.0 ou de compiler votre propre version. Il vous appartiendra alors dassurer les dpendances associes et la prsence du module SSL.

Lancez linstallation de vim (un diteur de texte), de Apache ainsi que les fichiers ncessaires la compilation de module Apache (apache2-threaded-dev), laide des instructions suivantes (en tant quutilisateur root) : apt-get install vim apt-get install apache2 apt-get install apache2-threaded-dev Une fois linstallation acheve, le service sera automatiquement dmarr. Les fichiers de configuration sont localiss dans le rpertoire : /etc/apache2 Les fichiers de journaux sont eux localiss dans le rpertoire : /var/log/apache2

Configuration rseau
Nous appellerons notre serveur de dmonstration ws0; il sinsrera dans notre architecture ADFS treyresearch.net, son nom de machine pleinement qualifi sera donc ws0.treyresearch.net. Le tableau suivant vous permet de suivre les configurations rseau des diffrentes machines de cet atelier.
Nom de la machine Rle ADFS OS Paramtres IP Paramtres DNS

client.adatum.com

Client

Windows XP Service Pack 2 (SP2)

Adresse IP : 172.16.101.51 Masque de sous-rseau : 255.255.255.0

172.16.101.50

Nom de la machine

Rle ADFS

OS

Paramtres IP

Paramtres DNS

ws0.treyresearch.net

Serveur Web

Debian GNU/Linux 3.1 avec Apache 2.0

Adresse IP : 172.16.101.54 Masque de sous-rseau : 255.255.255.0

172.16.101.49

account.adatum.com

Serveur de fdration et contrleur de domaine

Windows Adresse IP : Server 2003 172.16.101.50 R2, Enterprise Masque de Edition sous-rseau : 255.255.255.0

172.16.101.50

resource.treyresearch.net Serveur de fdration et contrleur de domaine

Windows Adresse IP : Server 2003 172.16.101.49 R2, Enterprise Masque de Edition sous-rseau : 255.255.255.0

172.16.101.49

Paramtrage du nom de la machine


Pour dfinir le nom rseau de la machine 1. Editer le fichier /etc/hostname (en tant quutilisateur root) en tapant vim /etc/hostname 2. Dans les paramtres de nom de machine, spcifier ws0.treyresearch.net 3. Renseigner ensuite le fichier /etc/hosts (en tant quutilisateur root) en tapant vim /etc/hosts et changer localhost.localdomain par ws0.treyresearch.net

Paramtrage de la configuration IP
Pour dfinir la configuration IP de la machine 1. Editer le fichier /etc/network/interfaces (en tant quutilisateur root)

en tapant vim /etc/network/interfaces 2. Et dfinir


auto eth0 iface eth0 inet static address 172.16.101.54 netmask 255.255.255.0 gateway 172.16.101.1

Paramtrage des informations de rsolution de noms


Pour dfinir les informations de rsolution de noms 1. Editer le fichier /etc/resolv.conf (en tant quutilisateur root) en tapant vim /etc/resolv.conf 2. Et ajouter lentre suivante pour pointer vers le serveur DNS de linfrastructure
nameserver 172.16.101.49

Installation du module Apache WSFedAuth


SourceID fournit sur son site Web les sources au format ZIP pour les environnements Windows/Linux. Il vous est possible de vous les procurer sur le site web de lditeur ladresse suivant : http://www.sourceid.org Pour compiler le module Apache nous devons dabord installer les librairies ncessaires WS-Federation.

Installation des librairies


Voici la liste des librairies ncessaire la compilation du module Apache : Libxml2, The Apache Xalan Project, Xerces, libapreq2.

Note Pour le moment, le paquet Debian libapreq2 nest disponible que dans la version testing. Pour installer cette librairie, il faut ajouter les sources testing dans le fichier /etc/apt/source.list. XML Security Library. Note Le paquet Debian correspondant la librairie XML Security nest pas disponible pour le moment. Il est donc ncessaire de le tlcharger et de linstaller manuellement. Pour installer les libraires (en tant quutilisateur root) 1. apt-get install libxml2-dev. 2. apt-get install libxalan18-dev. 3. apt-get install libxerces25-dev, (automatiquement install par dpendance). 4. apt-get install libapreq2-dev.

Tlchargement et installation de la librairie XML Security


Tlcharger la librairie ladresse http://xml.apache.org/security/dist/c-library/. Pour installer la librairie XML Security 1. tar zxvf xml-security-c.x.x.x.tar.gz C /tmp/, (o x.x.x est la version) 2. cd /tmp/xml-security-c-x.x.x/src/ 3. ./configure --prefix=/usr. 4. make. 5. make install (en tant quutilisateur root). 6. make clean

Compilation du module Apache WSFedAuth


Pour compiler et installer le module Apache WSFedAuth 1. apt-get install unzip, (en tant quutilisateur root) 2. unzip WS-Federation_for_Apache_2.0_Toolkit_1.0_Beta.zip d /tmp/ 3. cd /tmp/WS-Federation\ for\ Apache\ 2.0\ Toolkit\ 1.0\ Beta/src/

4. gcc -I/usr/include -I/usr/include/apreq2 -I/usr/include/libxml2 -I/usr/include/apache2 -I/usr/include/apr-0 -g -O2 -c validate_rstr.cpp 5. gcc -I/usr/include -I/usr/include/apreq2 -I/usr/include/libxml2 -I/usr/include/apache2 -I/usr/include/apr-0 -g -O2 -c parse_rstr.c 6. gcc -I/usr/include -I/usr/include/apreq2 -I/usr/include/libxml2 -I/usr/include/apache2 -I/usr/include/apr-0 -g -O2 -c mod_auth_adfs.c 7. /bin/sh ./libtool --mode=link g++ -g -O2 -o mod_auth_adfs.la -rpath /usr/local/lib -module validate_rstr.lo parse_rstr.lo mod_auth_adfs.lo -lxerces-c -lxml-security-c -lxml2 -lssl -lapreq2 8. apxs2 i mod_auth_adfs.la

Cration et importation des certificats


Il est possible dutiliser des certificats auto-signs ou de requter des certificats auprs de lautorit de certification du serveur de fdration du royaume auquel appartient le serveur web (treyresearch.net dans lexemple ADFS Pas pas ).

Cration du certificat serveur pour ws0.treyresearch.net


Nous pouvons utiliser OpenSSL pour gnrer nos certificats auto signs. Gnrons une cl: openssl genrsa -des3 -out /etc/apache2/ssl/ws0.key 1024

Gnrons le certificat openssl req -new -x509 -days 365 -key ws0.key -out ws0.crt openssl rsa -in ws0.key -out ws0.key

Crer ensuite le fichier de configuration dApache ws0 dans le rpertoire /etc/apache2/sites-avalaible/ ws0 NameVirtualHost * <VirtualHost *> ServerName ws0.treyresearch.net ServerAdmin webmaster@treyresearch.net SSLEngine On #SSLCertificateFile /etc/apache2/ssl/ws0.pem SSLCertificateKeyFile /etc/apache2/ssl/ws0.key

SSLCertificateFile /etc/apache2/ssl/ws0.crt DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/error.log LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On </VirtualHost>

Il est galement possible dimporter un certificat au format PFX gnr sur une des machines de lenvironnement Windows Server ADFS Pas pas en utilisant la commande : openssl pkcs12 in ws0.pfx out ws0.pem nodes Il nous faudra alors modifier en consquence le fichier ws0. ws0 SSLCertificateFile /etc/apache2/ssl/ws0.pem #SSLCertificateKeyFile /etc/apache2/ssl/ws0.key #SSLCertificateFile /etc/apache2/ssl/ws0.crt

Nous activons le site ws0 et dsactivons le site par dfaut. Pour activer le site ws0 1. a2ensite ws0 2. a2dissite 000-default

Nous souhaitons que le serveur Apache ncoute pas sur le port 80, afin de ne rpondre quaux requtes https.

Pour couter sur le port 443 1. vim /etc/apache2/ports.conf 2. remplacer 80 par 443

Notre serveur web est maintenant prt.

Etape 2 : Configuration de WSFedAuth


Maintenant que nous avons configur lenvironnement de base : serveur web, et certificats, il nous faut configurer le module Apache pour lenvironnement ADFS.

Edition du fichier de configuration


Dune manire gnrale, pour configurer un module Apache, il suffit dditer le fichier de configuration du module (/etc/apache2/mods-avaible/auth_adfs.conf). Pour configurer le module (en tant quutilisateur root) 1. Editere le fichier /etc/apache2/mods-avaible/auth_adfs.load vim /etc/apache2/mods-avaible/auth_adfs.load 2. Et dfinir LoadModuleauth_adfs_module/usr/lib/apache2/modules/mod_auth_adfs.so 3. Editer le fichier /etc/apache2/mods-avaible/auth_adfs.conf vim /etc/apache2/mods-avaible/auth_adfs.conf 4. Et dfinir # Timers for the Auth token WSFedAuthTokenRenewalTimer 60 WSFedAuthTokenInactivityTimer 1500 WSFedAuthTokenSessionTimer 3000 # Specify the domain for the cookie containing the Auth token WSFedAuthCookieDomain ws0.treyresearch.net # Specify the path for the cookie containing the Auth token WSFedAuthCookiePath / # If set to "yes" the cookie is only sent while using SSL WSFedAuthCookieSecure Yes # Specify the URL for the ADFS Federation Service here, for e.g., #https://<ADFS_FEDERATION_SERVER>/adfs/fs/FederationServerService.asmx #where <ADFS_FEDERATION_SERVER> is the hostname for the ADFS

WSFedAuthSTSURL https://resource.treyresearch.net/adfs/ls/ # The URL where the module is expecting the RSTR from ADFS. WSFedAuthRstrReply /rstrreply #WSFedAuthFailureURL /authfailure.html #WSFedAuthSTSFailureURL /stsauthfailure.html # URL to initiate signout from the module WSFedAuthSignOut /signout # Specify the URL for the ADFS Federation Service for Logout here, for e.g., #https://<ADFS_FEDERATION_SERVER>/adfs/fs/FederationServerService.asmx #where <ADFS_FEDERATION_SERVER> is the hostname for the ADFS WSFedAuthSTSSignOutURL https://resource.treyresearch.net/adfs/ls/ # URL where ADFS sends the cleanup request WSFedAuthSignOutCleanup /cleanup #WSFedAuthSignOutFailureURL /signoutfailure.html #WSFedAuthSignOutCompleteURL /signoutcomplete.html WSFedAuthTokenPassphrase 67vjdGnkigt53fuS698gvcx@431flbx9XSlo4Fcn WSFedAuthCertFile /etc/apache2/ssl/resource_signing.cer # Hostname and port where Apache Server is installed WSFedAuthRealm https://ws0.treyresearch.net <Directory /protected-resources/> AuthType WSFedAuth </Directory> <Location /protected-resources/> AuthType WSFedAuth </Location> Dans ce fichier de configuration, nous dclarons lurl pour joindre le serveur de fdration du royaume ressource ADFS : WSFedAuthSTSURL https://resource.treyresearch.net/adfs/ls/. Nous dclarons ensuite les rpertoires ainsi que les droits requis pour y accder, laide des directives < Directory> et <Location>; ici le rpertoire protg est protected-resources. Nous crons la ressource protger dans le rpertoire racine du site web (/var/www/). Pour crer la ressource protger (en tant quutilisateur root) 1. mkdir /var/www/protected-resources 2. cp /tmp/WS-Federation\ for\ Apache\ 2.0\ Toolkit\ 1.0\ Beta/dist/htdocs/prot/prot.html /var/www/protected-

resources/index.html 3. chown -R root:root /var/www/protected-resources

Redmarrage du serveur Apache


Une fois ces changements effectus, il est ncessaire dactiver le module et de redmarrer le serveur Apache. Pour activer le module et redmarrer Apache (en tant quutilisateur root) 1. a2enmod auth_adfs 2. apache2ctl restart

Pour tester que le serveur bien redmarrer nous pouvons tester : wget https://ws0.treyresearch.net

Et nous assurer que nous avons bien une rponse de type HTTP 200. Surveiller les logs Pour sassurer que tout fonctionne correctement et dpanner les services en cas de problmes, les fichiers de logs sont situs dans le rpertoire : /var/log/httpd/

Etape 3 : Configuration du serveur de ressource ADFS


Une fois les tapes prcdentes compltes, paramtrons les services de fdration ct ressource (treyresearch.net) et ct compte (account). Les paramtres de fdration entre les serveurs ressource et compte sont ceux donns dans latelier ADFS Pas pas . Voyons maintenant comment y ajouter notre serveur Web Apache pour tirer partie de Active Directory Federation Service.

Ajout du serveur web dans le DNS


La premire chose faire pour que nos machines de laboratoire aient accs au serveur est de renseigner le DNS de larchitecture. Crer une entre statique dans le DNS 1. Cliquer sur Demarrer, se diriger sur outils administratifs et cliquer sur

DNS 2. Dans la zone de forward treyresearch.net, ajouter une entre A 3. Entrer ws0 (pour obtenir ws0.treyresearch.net) et ladresse IP 172.16.101.54

Configurer le serveur de fdration ressource (Trey Research)


Ajouter et configurer lapplication web
SourceID fournit un exemple dapplication web. Une application traditionnelle (non claims-aware), utilisant les mcanismes de scurit Apache (protected-resources).

Il nous reste maintenant ajouter et configurer cette application dans la console dadministration de Active Directory Federation Services.

Ajout dapplications pour ADFS


Pour ajouter des applications 1. Dans le menu Start, cliquer sur All Programs, Administrative Tools, et cliquer sur Active Directory Federation Services. 2. Double cliquer sur Federation Service, double cliquer sur Trust Policy, double cliquer sur My Organization, clique droit sur Applications, New, Application. 3. A lcran de bienvenue de lassistant cliquer sur Next. 4. A lcran Application Type, cliquer sur Windows NT token-based application, puis Next. 5. A l'cran Application Details, dans Application display name, taper ADFS Apache WSFedAuth. 6. Dans Application URL, taper https://ws0.treyresearch.net/rstrreply puis cliquer sur Next. 7. A lcran Generating the Accepted Identity Claims page, verifier que User principal name (UPN) est slectionn et cliquer sur Next. 8. A lcran Enable this Application, vrifier que Enable this application est slectionne, et cliquer sur Next. 9. A lcran Completing the Add Application Wizard, cliquer Finish.

Tester laccs au site Trey Research


Nous pouvons maintenant tester la configuration. Pour se faire nous utilisons lordinateur Client. On ouvre le navigateur Windows ladresse https://ws0.treyresearch.net. Il est possible que le navigateur vous demande de choisir votre royaume (home realm), slectionner A. Adatum et cliquer sur Submit. A partir de ce moment, le site Trey Research va safficher.

Vous aimerez peut-être aussi