DokuWiki

It's better when it's simple

Outils pour utilisateurs

Outils du site


fr:auth:ldap

LDAP Authentication Backend

Depuis la version 2013-05-10 “Weatherwax”
voir la page du plugin AuthLDAP

Pour les versions 2012-10-13 “Adora Belle” et antérieures
voir les informations ci-dessous

Ce module autorise l'authentification sur un annuaire LDAP avec utilisation de l'ACL. Il est inclus dans DokuWiki.

Les utilisateurs peuvent se connecter au wiki avec les identifiants définies sur le serveur LDAP, l'ajout de nouveau utilisateurs n'est pas supporté.

:!: Merci de ne pas rapporter de bogues ou problèmes dans le wiki ! Utilisez plutôt le suivi de bogues, la liste de diffusion ou le forum.

Configuration

C'est un exemple de configuration à mettre dans votre conf/local.php afin d'activer l'authentification sur un annuaire LDAP.

$conf['useacl']      = 1;
$conf['openregister']= 0;
$conf['authtype']    = 'ldap';
 
#$conf['auth']['ldap']['server']      = 'localhost';
#$conf['auth']['ldap']['port']        = 389;
$conf['auth']['ldap']['server']      = 'ldap://server.tld:389'; #instead of the above two settings
$conf['auth']['ldap']['usertree']    = 'ou=People, dc=server, dc=tld';
$conf['auth']['ldap']['grouptree']   = 'ou=Group, dc=server, dc=tld';
$conf['auth']['ldap']['userfilter']  = '(&(uid=%{user})(objectClass=posixAccount))';
$conf['auth']['ldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))';
 
# This is optional but may be required for your server:
#$conf['auth']['ldap']['version']    = 3;

# This enables the use of the STARTTLS command
#$conf['auth']['ldap']['starttls']   = 1;

# This is optional and is required to be off when using Active Directory:
#$conf['auth']['ldap']['referrals']  = 0;

# Optional bind user and password if anonymous bind is not allowed (develonly)
#$conf['auth']['ldap']['binddn']     = 'cn=admin, dc=my, dc=home';
#$conf['auth']['ldap']['bindpw']     = 'secret';

# Mapping can be used to specify where the internal data is coming from. 
#$conf['auth']['ldap']['mapping']['name']  = 'displayname'; # Name of attribute Active Directory stores it's pretty print user name.
#$conf['auth']['ldap']['mapping']['grps']  = array('memberof' => '/CN=(.+?),/i'); # Where groups are defined in Active Directory

# Optional debugging
#$conf['auth']['ldap']['debug']      = 1;

Vous pouvez utiliser le paramètre version pour dire à PHP d'utiliser la version 3 du protocole LDAP pour se connecter au serveur, par défaut la version 2 est utilisé.

userfilter définie le filtre LDAP utilisé afin de chercher un utilisateur. groupfilter est utilisé pour trouver les groupes d'un utilisateur.

Les variables suivantes sont utilisable pour userfilter et groupfilter :

variable signification
%{user} Le nom d'utilisateur utilisé pour la connexion
%{server} La valeur fournie par $conf['auth']['ldap']['server']

groupfilter peux aussi accéder aux attributs fournit par l'objet utilisateur :

variable signification
%{dn} The users dn eg. uid=user,ou=People,dc=server,dc=dk
%{uid} The uid of the user eg. user
%{…}

Le mapping est utilisé pour les annuaires qui n'utilisent pas des noms standards pour les attributs. For all variables but 'grps' only the first attribute is used to replace the variable if more than one is provided.

variable mapping meaning
grps array('memberof' ⇒ '/CN=(.+?),/i') Replace the content of grps with what is provided in the attribute memberof and apply this regexp /CN=(.+?),/i to every element in it.
name 'displayname' Replace the content of name with first element of 'displayname' attribute.

L'authentification est effectuée dans ces étapes:

  1. Tout d'abord voir si nous avons besoin de faire un bind anonyme en regardant dans l'arbre d'utilisateur pour un %{user}:
  2. Essayez de vous lier avec le DN trouvé et le mot de passe - si cela réussit l'accès est accordé
  3. Pour obtenir les groupes de l'utilisateur, le groupfilter est utilisé pour la recherche grouptree.

Notes

  • Lors de la configuration de l'accès LDAP vous pouvez activer l'option debug qui affichera les erreurs que vous delivre le serveur LDAP. N oubliez pas de la désactiver après la configuration.
  • Le freeware LDAP Browser (écrit en Java) est utile pour trouver les bon paramètres de $conf['auth']['ldap'] et déterminer la structure du serveur LDAP.
  • Les mappings et nom des champs sont toujours en minuscule si vous utilisez un serveur LDAP!
  • Assurez-vous d'avoir installé l'extension LDAP pour PHP.
  • Si vous obtenez un message “Protocol error”, il est possible que vous n'ayez pas activé l'item de configuration suivante : $conf['auth']['ldap']['version'] = 3;

Exemples Réels

Voici une liste d'exemples de configuration utilisés par différents utilisateurs pour différents serveurs LDAP. Ce sont des exemples ! N'oubliez pas de les adapter à vos paramètres serveur.

fr/auth/ldap.txt · Dernière modification : 2020-08-13 19:58 de Digitalin

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki