<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 24249 -->
<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>
            を改良した <acronym>HTTP</acronym> 認証方式です。
            パスワードを平文テキストでネットワークに流すことなく認証を行えます。
        </para>

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

        <itemizedlist>
            <listitem>
                <para>
                    "<emphasis><filename>joe.user</filename></emphasis>" のようなユーザ名。
                </para>
            </listitem>

            <listitem>
                <para>
                    "<emphasis>Administrative Area</emphasis>" のようなレルム。
                </para>
            </listitem>

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

        <para>
            それぞれの要素はコロンで区切り、たとえば次のようになります
            (この例のパスワードは "<emphasis>somePassword</emphasis>") です。
        </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>
            には、以下の入力パラメータが必要です。
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    filename - 認証の問い合わせ先となるファイル名。
                </para>
            </listitem>

            <listitem>
                <para>
                    realm - ダイジェスト認証のレルム。
                </para>
            </listitem>

            <listitem>
                <para>
                    username - ダイジェスト認証のユーザ名。
                </para>
            </listitem>

            <listitem>
                <para>
                    password - 指定したレルムにおける、ユーザのパスワード。
                </para>
            </listitem>
        </itemizedlist>

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

    </sect2>

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

        <title>ID</title>

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

        <programlisting language="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:
-->
