3.3. Uwierzytelnianie Digest

3.3.1. Wprowadzenie

Uwierzytelnianie Digest jest metodą uwierzytelniania HTTP, która udoskonala uwierzytelnianie Basic dostarczając sposób uwierzytelniania bez konieczności przesyłania hasła w postaci czystego tekstu poprzez sieć.

Ten adapter pozwala na uwierzytelnianie w oparciu o pliki tekstowe zawierające linie, w których znajdują się podstawowe elementy uwierzytelniania digest:

  • nazwa użytkownika, jak na przykład "joe.user"

  • nazwa obszaru, jak na przykład "Administrative Area"

  • skrót MD5 nazwy użytkownika, nazwy obszaru oraz hasła, oddzielonych dwukropkami

Powyższe elementy są oddzielone dwukropkami, tak jak w poniższym przykładzie (w którym hasłem jest "somePassword"):

someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8

3.3.2. Parametry

Adapter uwierzytelniania digest, Zend_Auth_Adapter_Digest, wymaga ustawienia kilku wejściowych parametrów:

  • filename - plik na podstawie którego przeprowadzane są zapytania uwierzytelniania

  • realm - obszar uwierzytelniania Digest

  • username - użytkownik uwierzytelniania Digest

  • password - hasło dla użytkownika danego obszaru

Te parametry muszą być ustawione przed wywołaniem metody authenticate().

3.3.3. Tożsamość

Adapter uwierzytelniania digest zwraca obiekt Zend_Auth_Result, który został wypełniony danymi tożsamości w postaci tablicy posiadajacej klucze realm oraz username. Odpowiednie wartości tablicy powiązane z tymi kluczami odpowiadają wartościom ustawionym przed wywołaniem metody authenticate().

<?php
require_once 'Zend/Auth/Adapter/Digest.php';

$adapter = new Zend_Auth_Adapter_Digest($filename, $realm, $username, $password);

$result = $adapter->authenticate();

$identity = $result->getIdentity();

print_r($identity);

/*
Array
(
    [realm] => Some Realm
    [username] => someUser
)
*/