Apache Howto AuthLDAP
Sommaire
[masquer]Introduction
L'authentification avec un annuaire LDAP est très pratique. Voici comment le faire avec Apache 2.2 ( attention c'est différent dans apache 1 et 2.0, les modules n'ont pas le même nom auth_ldap au lieu de authnz_ldap)
Pré-requis
- vous devez disposer d'un annuaire LDAP, ici openLDAP sous openSUSE (paquet openldap2)
- vous devez disposer d'un serveur Apache 2.2 (paquet apache2)
Installation
Le module Ldap est en standard ( à partir de la version 2 de apache me semble t'il ) donc il n'y a rien a installer.
Configuration
Pour ajouter un module, il faut éditer le fichier /etc/sysconfig/apache2 et à la ligne APACHE_MODULES et ajouter "ldap authnz_ldap" dans la liste des modules. Egalement, bien vérifier que auth_basic se trouve dans la liste des modules activés, car il permet de configurer ldap comme module à utiliser pour l'authentification.
Par exemple:
APACHE_MODULES="alias auth_basic authz_host ldap authnz_ldap autoindex dir env expires include log_config mime negotiation setenvif php5 mod_python"
Ensuite il faut configurer le "virtualhost" concerné:
Par exemple, pour restreindre l'accès au chemin ("location") "/secure":
<Location /secure> AuthType Basic AuthName "restricted area" AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPBindDN LDAP_Username,cn=Users,dc=exemple,dc=org AuthLDAPBindPassword xxxxxxxx AuthLDAPRemoteUserIsDN off AuthLDAPGroupAttributeIsDN off AuthLDAPUrl ldap://LDAP_Serveur/ou=People,dc=exemple,dc=org?uid?sub?(objectClass=posixAccount) AuthLDAPGroupAttribute member memberUid require ldap-group cn=Users,ou=Groups,dc=exemple,dc=org </Location>
Finalisation
Redémarrer apache, dans une console en root
~#/etc/init.d/apache2 restart