L'authentification "Digest" est une méthode d'authentification HTTP qui améliore l'authentication basique en fournissant un moyen d'authentifier sans avoir à transmettre le mot de passe en clair sur le réseau.
Cet adaptateur permet l'authentification en utilisant un fichier texte contenant des lignes comportant les éléments de base d'une authentification Digest :
identifiant, tel que "jean.utilisateur
"
domaine, tel que "Zone administrative
"
hashage MD5 d'un identifiant, domaine et mot de passe, séparés par des virgules.
Les éléments ci-dessus sont séparés par des virgules, comme dans l'exemple suivant (dans lequel
le mot de passe est "unMotdepasse
") :
unUtilisateur:Un domaine:fde17b91c3a510ecbaf7dbd37f59d4f8
L'adaptateur d'authentification Digest, Zend_Auth_Adapter_Digest
requiert plusieurs paramètres d'entrée :
nomFichier - Fichier utilisé pour réaliser l'authentification
domaine - Domaine d'authentification Digest ("realm" en anglais)
identifiant - Identifiant d'authentification Digest ("username" en anglais)
motdepasse - mot de passe pour l'identifiant dans le domaine
Ces paramètres doivent être définis avant l'appel de authenticate()
.
L'adaptateur d'authentification Digest retourne un objet Zend_Auth_Result
, lequel a
été alimenté avec l'identité sous la forme d'un tableau ayant pour clés realm
(domaine) et
username
(identifiant). Les valeurs respectives associées à ces clés correspondent aux
valeurs définies avant l'appel à authenticate()
.
<?php require_once 'Zend/Auth/Adapter/Digest.php'; $adaptateur = new Zend_Auth_Adapter_Digest($nomFichier, $domaine, $identifiant, $motdepasse); $resultat = $adaptateur->authenticate(); $identite = $resultat->getIdentity(); print_r($identite); /* Array ( [realm] => Un domaine [username] => unUtilisateur ) */