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

    <sect2 id="zend.auth.adapter.digest.introduction">
        <title>Einführung</title>

        <para>
            <ulink url="http://en.wikipedia.org/wiki/Digest_access_authentication">Digest
                Authentifizierung</ulink> ist eine Methode der <acronym>HTTP</acronym>
            Authentifizierung welche die <ulink
                url="http://en.wikipedia.org/wiki/Basic_authentication_scheme">Basis
                Authentifizierung</ulink> verbessert indem ein Weg angeboten wird um
            Authentifizierungen, ohne die Übermittlung des Passwortes als Klartext über das
            Netzwerk, durchzuführen.
        </para>

        <para>
            Dieser Adapter erlaubt Authentifizierungen gegen Textdateien die Zeilen enthalten die
            folgende Basiselemente der Digest Authentifizierung enthalten:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    Benutzername, wie z.B. "<emphasis><filename>joe.user</filename></emphasis>"
                </para>
            </listitem>

            <listitem>
                <para>
                    Bereich, wie z.B. "<emphasis>Administrativer Bereich</emphasis>"
                </para>
            </listitem>

            <listitem>
                <para>
                    <acronym>MD5</acronym> Hash von Benutzername, Bereich und Passwort, getrennt
                    durch Doppelpunkte
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Die obigen Elemente werden durch Doppelpunkte getrennt, wie im folgenden Beispiel (in
            dem das Passwort "<emphasis>irgendeinPasswort</emphasis>" ist):
        </para>

        <programlisting language="txt"><![CDATA[
irgendeinBenutzer:Irgendein Bereich:fde17b91c3a510ecbaf7dbd37f59d4f8
]]></programlisting>
    </sect2>

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

        <para>
            Der Digest Authentifizierungs Adapter, <classname>Zend_Auth_Adapter_Digest</classname>,
            benötigt verschiedene Eingabeparameter:
        </para>

        <itemizedlist>
            <listitem>
                <para>
                    filename - Der Dateiename gegen den Authentifizierungs-Anfragen durchgeführt
                    werden
                </para>
            </listitem>

            <listitem>
                <para>
                    realm - Digest Authentifizierungs Bereich
                </para>
            </listitem>

            <listitem>
                <para>
                    username - Digest Authentifizierungs Benutzer
                </para>
            </listitem>

            <listitem>
                <para>
                    password - Passwort für den Benutzer des Bereichs
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Diese Parameter müssen vor dem Aufruf von <methodname>authenticate()</methodname>
            gesetzt werden.
        </para>
    </sect2>

    <sect2 id="zend.auth.adapter.digest.identity">
        <title>Identität</title>

        <para>
            Der Digest Authentifizierungs Adapter gibt ein <classname>Zend_Auth_Result</classname>
            Objekt zurück, welches mit der Identität wird wobei dieses als Arry mit Schlüssel von
            <emphasis>realm</emphasis> und <emphasis>username</emphasis> veröffentlicht wird. Die
            entsprechenden Array Werte welche diesen Schlüsseln zugeordnet sind korrespondieren mit
            den Werte die vorher durch den Aufruf von <methodname>authenticate()</methodname>
            gesetzt wurden.
        </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] => Irgendein Bereich
    [username] => irgendeinBenutzer
)
*/
]]></programlisting>
    </sect2>
</sect1>
