3.3. Authentification "Digest"

3.3.1. Introduction

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

3.3.2. Spécifications

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

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

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