データベースのテーブルでの認証

ダイジェスト認証

導入

» ダイジェスト認証 は、 » ベーシック認証 を改良した 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() をコールする前に設定したものに対応します。

  1. $adapter = new Zend_Auth_Adapter_Digest($filename,
  2.                                         $realm,
  3.                                         $username,
  4.                                         $password);
  5.  
  6. $result = $adapter->authenticate();
  7.  
  8. $identity = $result->getIdentity();
  9.  
  10. print_r($identity);
  11.  
  12. /*
  13. Array
  14. (
  15.     [realm] => Some Realm
  16.     [username] => someUser
  17. )
  18. */

データベースのテーブルでの認証