Table des matières
Cette documentation présente une méthode pour contrôler l'accès à un Intranet hébergé sur un serveur Apache. Contrairement au module mod_auth_ldap (fourni en standard avec Apache), elle permet de dissocier la partie authentification (= savoir qui se présente sur l'Intranet) et la partie autorisation (= savoir si la personne authentifiée a les droits requis pour accéder à l'Intranet).
Principe de fonctionnement
Authentification
Le client s'authentifie en présentant au serveur Apache un certificat client. Au niveau du serveur l'authentification est gérée par le module Apache mod_ssl. Il vérifie d'abord la validité du certificat transmis au serveur par le client : certificat en cours de validité, certificat non révoqué etc. Puis il en extrait certaines informations : nom du titulaire, nom de l'Autorité de Certification émettrice etc.
Autorisation
Un annuaire LDAP contient l'identité de personnes et leurs privilèges. Le module Apache mod_authZ_ldap retrouve les privilèges correspondants au certificat client présenté et autorise ou non l'accès à l'Intranet selon les contrôles d'accès à l'Intranet définis dans la configuration du serveur.
Illustration sur l'accès à l'Intranet des RSSI du CRU
- la page accédée requiert une authentification par certificat définie dans la configuration d'Apache par SSLVerifyClient require. Le navigateur transmet le certificat de l'utilisateur au serveur Web ;
- mod_ssl vérifie la validité du certificat, en extrait certaines informations (SSL_CLIENT_S_DN, SSL_CLIENT_I_DN, SSL_CLIENT_M_SERIAL, ...) et les transmet à mod_authZ_ldap ;
- mod_authZ_ldap identifie l'utilisateur grâce au couple subjectDN/issuerDN ou serial/issuerDN ;
- ici l'annuaire LDAP contient une une branche contenant l'identité des utilisateurs (People) et une branche contenant leurs privilèges (Privileges), reliées par un UID. L'annuaire est directement alimenté par les données de l'IGC de Pilote du CRU. mod_authZ_ldap recherche les attributs correspondants au certificat utilisateur et vérifie l'Access Control List (ACL) pour le contrôle d'accès à la page. L'ACL est définie dans la configuration du serveur :
Require filter (rssiMember=Yes).
Mise en oeuvre dans votre établissement
Il faut :
- un serveur Apache avec un certificat serveur. L'IGC pilote du CRU délivre des certificats serveur aux établissement d'enseignement supérieur ;
- installer les modules Apache mod_ssl et mod_authZ_ldap ;
- un annuaire LDAP contenant l'identité et les privilèges de vos utilisateurs ;
- distribuer des certificats aux utilisateurs susceptibles d'accéder aux Intranet ainsi conçus. L'IGC pilote du CRU propose un service de délégation d'Autorité d'Enregistrement qui permet à un établissement d'enseignement supérieur de distribuer de façon autonome des certificats à son personnel sans avoir à déployer d'infrastructures techniques.
Pointeurs
- serveur Apache : http:httpd.apache.org/
* module Apache mod_ssl : http:www.modssl.org/
- annuaires LDAP : http:www.cru.fr/ldap/
* module Apache mod_authZ_ldap : http:authzldap.othello.ch/
- IGC pilote du CRU : http:igc.cru.fr/