LDAP User authentication
| Fiche express | |
|---|---|
| Type | Procédure (authentification web via LDAP) |
| Module | mod_authnz_ldap
|
| Pré-requis | Annuaire LDAP opérationnel (voir LDAP) |
| Voir aussi | Apache · Kerberos single sign on |
Restreindre l'accès à un espace web Apache en s'appuyant sur un annuaire LDAP existant : les utilisateurs s'authentifient avec leurs identifiants LDAP habituels, et l'accès peut être en plus limité à un groupe LDAP précis (utile pour un intranet, un outil interne, une zone d'administration).
Les exemples ci-dessous utilisent un domaine, un annuaire et des identifiants d'exemple à adapter à l'environnement réel.
Configurer le virtual host
vi /etc/httpd/conf.d/ldap_auth.conf
Listen 8000
<Directory "/var/www/html/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
AuthType Basic
AuthName "Acces restreint"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberUid
AuthLDAPURL "ldap://annuaire.example.com:389/dc=example,dc=com"
Require ldap-group cn=web,ou=Group,dc=example,dc=com
</Directory>
<VirtualHost *:8000>
ServerAdmin webmaster@example.com
DocumentRoot /var/www/html
ServerName intranet.example.com
</VirtualHost>
(Require all granted et Require ldap-group se combinent en syntaxe
Apache 2.4 avec <RequireAny>/<RequireAll> si on veut
préciser explicitement comment elles s'articulent — par défaut plusieurs Require
au même niveau sont en OU logique.)
Pour restreindre à un utilisateur LDAP précis plutôt qu'à un groupe :
Require ldap-user jdupont
Entrée LDAP correspondante
Le groupe référencé par AuthLDAPGroupAttribute/Require ldap-group
doit exister côté annuaire, avec les membres attendus dans memberUid :
dn: cn=web,ou=Group,dc=example,dc=com objectClass: posixGroup objectClass: top cn: web gidNumber: 1005 description: Acces au site intranet memberUid: jdupont
Points de vigilance
- L'exemple ci-dessus utilise
AuthType Basic: les identifiants transitent en
clair sur le réseau. À ne jamais faire sans TLS (ldaps://côtéAuthLDAPURL, et HTTPS côté vhost) en dehors d'un réseau strictement interne et de confiance.
AuthzLDAPAuthoritative offpermet à d'autres modules d'autorisation de prendre
le relais si LDAP refuse l'accès ; à mettre à on si LDAP doit être la seule
source de vérité.
Voir aussi
- Apache — vue d'ensemble du service
- Kerberos single sign on — alternative avec authentification transparente (SSO)
- LDAP — présentation générale de l'annuaire
- Directives apache — syntaxe
Require