Authentification avec une table de base de données

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") :

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

  1. $adaptateur = new Zend_Auth_Adapter_Digest($nomFichier,
  2.                                            $domaine,
  3.                                            $identifiant,
  4.                                            $motdepasse);
  5.  
  6. $resultat = $adaptateur->authenticate();
  7.  
  8. $identite = $resultat->getIdentity();
  9.  
  10. print_r($identite);
  11.  
  12. /*
  13. Array
  14. (
  15.     [realm] => Un domaine
  16.     [username] => unUtilisateur
  17. )
  18. */

Authentification avec une table de base de données