<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 14978 -->
<!-- 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 HTTP Authentifizierung die 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:
            <itemizedlist>
                <listitem>
                    <para>
                        Benutzername, wie z.B. "<code>joe.user</code>"
                    </para>
                </listitem>
                <listitem>
                    <para>
                        Bereich, wie z.B. "<code>Administrativer Bereich</code>"
                    </para>
                </listitem>
                <listitem>
                    <para>
                        MD5 Hash von Benutzername, Bereich und Passwort, getrennt durch Doppelpunkte
                    </para>
                </listitem>
            </itemizedlist>
            Die obigen Elemente werden durch Doppelpunkte getrennt, wie im folgenden Beispiel (in dem das Passwort
            "<code>irgendeinPasswort</code>" ist):
        </para>

        <programlisting><![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:
            <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>
            Diese Parameter müssen vor dem Aufruf von <code>authenticate()</code> 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 <code>Bereich</code>
            und <code>Benutzername</code> veröffentlicht wird. Die entsprechenden Array Werte die diesen
            Schlüsseln zugeordnet sind korrespondieren mit den Werte die vorher durch den Aufruf von
            <code>authenticate()</code> gesetzt wurden.
        </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] => Irgendein Bereich
    [username] => irgendeinBenutzer
)
*/
]]>
        </programlisting>

    </sect2>

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