Authentification "Digest"

Introduction

L'authentification "Digest" est une méthode d'authentification HTTP qui améliore l'authentification 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 "utilisateur.jean"

  • domaine, tel que "Zone administrative"

  • hachage MD55 d'un identifiant, domaine et mot de passe, séparés par des caractères deux-points.

Les éléments ci-dessus sont séparés par des caractères deux-points, comme dans l'exemple suivant (dans lequel le mot de passe est "unMotdepasse") :

unUtilisateur:Un domaine:3b17d7f3a9374666e892cbce58aa724f

Spécifications

L'adaptateur d'authentification Digest, Zend_Auth_Adapter_Digest requiert plusieurs paramètres d'entrée :

  • filename : fichier utilisé pour réaliser l'authentification

  • realm : domaine d'authentification Digest ("realm" en anglais)

  • username : identifiant d'authentification Digest

  • password : mot de passe pour l'identifiant dans le domaine

Ces paramètres doivent être définis avant l'appel de authenticate().

Identité

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().

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