Package Ldap

Fichiers du package

FichierDescription
ldap.php

Gestion de l'authentification par LDAP

Proposer une amélioration

Liste des fonctions

On ne peut pas détecter à l'avance si l'autorisation sera donnée, il faudra informer l'utilisateur a posteriori si la modif n'a pas pu se faire.

boolean auth_ldap_autoriser_modifier_pass( string $serveur = '' )

Paramètres

  1. string $serveur = ''

Retour

  • boolean

    Pour un auteur LDAP, a priori toujours true, à conditiion que le serveur l'autorise: par exemple, pour OpenLDAP il faut avoir dans slapd.conf:

     access to attr=userPassword
        by self write
        ...

Package

Proposer une amélioration

Il faut passer par spip_connect() pour avoir les info donc potentiellement indiquer un serveur meme si dans les fait cet argument est toujours vide

array auth_ldap_connect( string $serveur = '' )

Paramètres

  1. string $serveur = ''

Retour

  • array

Utilisé par

Package

Proposer une amélioration
  • On se bind avec le compte generique defini dans config/ldap.php,
  • On determine le DN de l'utilisateur candidat a l'authentification,
  • On se re-bind avec ce DN et le mot de passe propose.

Si la connexion est autorisee, on renvoie pour enregistrement en session, en plus des champs SQL habituels, les informations de connexion de l'utilisateur (DN et password). Cela permettra de se binder en cours de session sous son identite specifique pour les operations necessitant des privileges particuliers. TODO: Gerer une constante de conf qui permette de choisir entre ce comportement et tout faire avec le compte generique.

string auth_ldap_dist( string $login , string $pass , string $serveur = '' , boolean $phpauth = false )

Paramètres

  1. string $login
  2. string $pass
  3. string $serveur = ''
  4. boolean $phpauth = false

Retour

  • string

Package

Proposer une amélioration

On se bind au LDAP cette fois sous l'identité de l'utilisateur, car le compte générique defini dans config/ldap.php n'a généralement pas (et ne devrait pas avoir) les droits suffisants pour faire la modification.

boolean auth_ldap_modifier_pass( $login , $new_pass , $id_auteur , string $serveur = '' )

Paramètres

  1. $login
  2. $new_pass
  3. $id_auteur
  4. string $serveur = ''

Retour

  • boolean

    Informe du succès ou de l'echec du changement du mot de passe

Package

Proposer une amélioration
array auth_ldap_retrouver( string $dn , array $desc = array() , string $serveur = '' )

Paramètres

  1. string $dn
  2. array $desc = array()
  3. string $serveur = ''

Retour

  • array

Package

Proposer une amélioration
string auth_ldap_retrouver_login( string $login , string $serveur = '' )

Paramètres

  1. string $login
  2. string $serveur = ''

Retour

  • string

Package

Proposer une amélioration

C'est ici que se font éventuellement les vérifications de longueur mini/maxi ou de force.

string auth_ldap_verifier_pass( string $login , string $new_pass , integer $id_auteur , string $serveur = '' )

Paramètres

  1. string $login

    Le login de l'auteur : permet de vérifier que pass et login sont différents même à la creation lorsque l'auteur n'existe pas encore

  2. string $new_pass
  3. integer $id_auteur

    Si auteur existant déjà

  4. string $serveur = ''

Retour

  • string

    Message d'erreur si login non valide, chaîne vide sinon

Package

Proposer une amélioration