Apache Howto AuthLDAP

Aller à : navigation, rechercher

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

References

Documentation officielle de apache