3.3. ダイジェスト認証

3.3.1. 導入

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

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

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

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

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

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

someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8

3.3.2. 使用

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

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

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

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

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

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

3.3.3. ID

ダイジェスト認証アダプタは 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
)
*/