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
)
*/