# ダイジェスト認証

## 導入

ダイジェスト認証 は、 ベーシック認証 を改良した 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
    )
    */