Authentification LDAP avec Apache
January 14th, 2007
Je me suis retrouvé dans la nécessité de configurer un serveur Apache 2.2 (sous debian) pour qu’il puisse puiser sa liste d’utilisateurs dans un serveur LDAP, que j’utilise aussi pour authentifier mes utilisateurs FTP, SSH, Jabber, etc, et donc j’utilise des objectClass faites pour PAM (ce qui est le cas de la plupart des serveurs LDAP je pense…).
Donc me voici dans une section <Directory>, je configure maintenant Apache pour authentifier les utilisateurs à l’aide de LDAP.
## On donne l'url du serveur LDAP. Syntaxe : ldap://serveur:port/base_dn?attribu_a_verrifier?profondeur_de_recherche?filtre_de_recherche AuthLDAPURL ldap://localhost/dc=thegreatspirit,dc=net?uid?sub?(objectClass=*) ## On spécifie à Apache que l'attribu qui contient le nom d'utilisateur est "memberUid" AuthLDAPGroupAttribute memberUid ## Et on spécifie aussi que c'est le uid qui est stocké, au lieu que ce soit le DN complet AuthLDAPGroupAttributeIsDN off ## Maintenant on lance une fenêtre d'authentification AuthType basic ## Nom de la fenêtre d'authentification AuthName "Restrited LDAP-protected area" ## On indique à Apache de regarder dans LDAP pour la liste des utilisateurs AuthBasicProvider ldap #On veut un utilisateur qui provient du groupe dont le DN est cn=svnUser,ou=SVN,ou=ACL,ou=Groups,dc=thegreatspirit,dc=net Require ldap-group cn=svnUser,ou=SVN,ou=ACL,ou=Groups,dc=thegreatspirit,dc=net ## On aurai aussi pu tenter : ## Une liste d'utilisateurs # Require ldap-user user1 user2 etc ## Une liste de DNs # Require ldap-dn DN1 DN2 etc ## N'importe quel DN avec certains attribus # Require ldap-attribute attribut="valueur" attribut="valeur" etc ## Ou si le DN passe à travers ce filtre # Require ldap-filter (filtre ldap)
Si on avait voulu que n’importe quel utilisateur qui a réussi à faire un bind correct puisse se connecter, il faut d’abord que mod_authz_user soit chargé, et que l’option AuthzLDAPAuthoritative soit à off. Ainsi on peut remplacer le require de la configuration précédente par
AuthzLDAPAuthoritative off Require valid-user
Bien sûr, les noms d’utilisateurs, DN etc peuvent être entré comme n’importe quel chaine en argument dans un fichier de apache : c’est à dire qu’on peut les mettre comme sans rien, ou si on a besoin de délimiter la chaîne on peut la mettre entre guillemets.
Et ausis, Apache n’a pas besoin de pouvoir voir les mots de passes sur LDAP, puisque quand un nom d’utilisateur sera rentré il tentera un bind avec.
2 Comments Add your own
1. bliml | August 23rd, 2007 at 3:32 pm
bonjour,
j’ai réussit à configurer apache pour gérer l’authentification d’une “location” par le bias de Ldap et ça marche comme il faut.
Code :
DAV svn
SVNPath /home/xyz/SVNRepository/
SVNAutoversioning on
#DavGenericLockDB /opt/subversion/locks/davlock
AuthBasicProvider ldap
AuthLDAPUrl ldap://localhost:389/ou=societe,dc=nodomain
#AuthzSVNAccessFile /home/xyz/access.txt
AuthzLDAPAuthoritative off
AuthType basic
AuthName “(LDAP local 2007)”
Require valid-user
maintenant je veux savoir si c’est possible de configurer apache pour qu’il gére les droits d’accès de branches par Ldap.
c’est à dire une chose équivalente à:
Code :
AuthzSVNAccessFile /home/xyz/access.txt
mais pour Ldap non pas pour une fichiers.
Merci bien
2. bliml | September 26th, 2007 at 9:18 am
Slt tt le monde,
L’auth avec ldap est bien fonctionnel il y a longtemps. Hier, j’ai constaté un comportement bizare, en effet
lorsque je m’authentifie pour accèder à un referentiel, il m’affiche une page d’erreur”Internal Server Error”. voici ce que je trouve dans le fichier log d’apache:
[warn] [client 127.0.0.1][7709] auth_ldap authentificate: user g545552 authentificate failed; URI /SimpleRepos [ldap_search_ext_s() for user failed][Operation error]
waiting for answer at:
ayed.akrout@gmail.com
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed