<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 15103 -->
<sect1 id="zend.auth.adapter.digest">

    <title>ダイジェスト認証</title>

    <sect2 id="zend.auth.adapter.digest.introduction">

        <title>導入</title>

        <para>
            <ulink url="http://en.wikipedia.org/wiki/Digest_access_authentication">ダイジェスト認証</ulink>
            は、
            <ulink url="http://ja.wikipedia.org/wiki/Basic%E8%AA%8D%E8%A8%BC">ベーシック認証</ulink>
            を改良した HTTP 認証方式です。
            パスワードを平文テキストでネットワークに流すことなく認証を行えます。
        </para>

        <para>
            このアダプタは、テキストファイルをもとにした認証を行います。
            このテキストファイルには、ダイジェスト認証の基本要素が書かれています。
            <itemizedlist>
                <listitem>
                    <para>
                        "<code>joe.user</code>" のようなユーザ名。
                    </para>
                </listitem>
                <listitem>
                    <para>
                        "<code>Administrative Area</code>" のようなレルム。
                    </para>
                </listitem>
                <listitem>
                    <para>
                        ユーザ名、レルムおよびパスワードをコロンで区切った文字列の MD5 ハッシュ。
                    </para>
                </listitem>
            </itemizedlist>
            それぞれの要素はコロンで区切り、たとえば次のようになります
            (この例のパスワードは "<code>somePassword</code>") です。
        </para>

        <programlisting><![CDATA[
someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
]]>
</programlisting>

    </sect2>

    <sect2 id="zend.auth.adapter.digest.specifics">

        <title>使用</title>

        <para>
            ダイジェスト認証アダプタ <classname>Zend_Auth_Adapter_Digest</classname>
            には、以下の入力パラメータが必要です。
            <itemizedlist>
                <listitem>
                    <para>
                        filename - 認証の問い合わせ先となるファイル名。
                    </para>
                </listitem>
                <listitem>
                    <para>
                        realm - ダイジェスト認証のレルム。
                    </para>
                </listitem>
                <listitem>
                    <para>
                        username - ダイジェスト認証のユーザ名。
                    </para>
                </listitem>
                <listitem>
                    <para>
                        password - 指定したレルムにおける、ユーザのパスワード。
                    </para>
                </listitem>
            </itemizedlist>
            これらのパラメータは、<code>authenticate()</code>
            をコールする前に設定しなければなりません。
        </para>

    </sect2>

    <sect2 id="zend.auth.adapter.digest.identity">

        <title>ID</title>

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

        <programlisting role="php"><![CDATA[
$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
)
*/
]]>
        </programlisting>

    </sect2>

</sect1>
<!--
vim:se ts=4 sw=4 et:
-->
