ダイジェスト認証

導入

ダイジェスト認証 は、 ベーシック認証 を改良した HTTP 認証方式です。 パスワードを平文テキストでネットワークに流すことなく認証を行えます。

このアダプタは、テキストファイルをもとにした認証を行います。 このテキストファイルには、ダイジェスト認証の基本要素が書かれています。

  • "joe.user" のようなユーザ名。

  • "Administrative Area" のようなレルム。

  • ユーザ名、レルムおよびパスワードをコロンで区切った文字列の MD5 ハッシュ。

それぞれの要素はコロンで区切り、たとえば次のようになります (この例のパスワードは "somePassword") です。

someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8

使用

ダイジェスト認証アダプタ Zend_Auth_Adapter_Digest には、以下の入力パラメータが必要です。

  • filename - 認証の問い合わせ先となるファイル名。

  • realm - ダイジェスト認証のレルム。

  • username - ダイジェスト認証のユーザ名。

  • password - 指定したレルムにおける、ユーザのパスワード。

これらのパラメータは、authenticate() をコールする前に設定しなければなりません。

ID

ダイジェスト認証アダプタは Zend_Auth_Result オブジェクトを返します。ここに、認証された ID の情報が 配列として含まれます。配列のキーは realm および username です。 これらのキーに対応する配列の値は、 authenticate() をコールする前に設定したものに対応します。

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