ダイジェスト認証 は、 ベーシック認証 を改良した HTTP 認証方式です。 パスワードを平文テキストでネットワークに流すことなく認証を行えます。
このアダプタは、テキストファイルをもとにした認証を行います。 このテキストファイルには、ダイジェスト認証の基本要素が書かれています。
"joe.user" のようなユーザ名。
"Administrative Area" のようなレルム。
ユーザ名、レルムおよびパスワードをコロンで区切った文字列の MD5 ハッシュ。
それぞれの要素はコロンで区切り、たとえば次のようになります
(この例のパスワードは "somePassword") です。
someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
ダイジェスト認証アダプタ Zend_Auth_Adapter_Digest
には、以下の入力パラメータが必要です。
filename - 認証の問い合わせ先となるファイル名。
realm - ダイジェスト認証のレルム。
username - ダイジェスト認証のユーザ名。
password - 指定したレルムにおける、ユーザのパスワード。
これらのパラメータは、authenticate()
をコールする前に設定しなければなりません。
ダイジェスト認証アダプタは Zend_Auth_Result
オブジェクトを返します。ここに、認証された ID の情報が
配列として含まれます。配列のキーは
realm および username です。
これらのキーに対応する配列の値は、
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
)
*/