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

    <title>Autenticación "Digest"</title>

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

        <title>Introducción</title>

        <para>
            La
            <ulink url="http://en.wikipedia.org/wiki/Digest_access_authentication">Autenticación
                "Digest"</ulink>
            es un método de la autenticación
            <acronym>HTTP</acronym>
            que mejora la
            <ulink url="http://en.wikipedia.org/wiki/Basic_authentication_scheme">Autenticación
                Básica</ulink>
            proporcionando una manera de
            autenticar sin tener que transmitir la contraseña de manera
            clara a
            través de la red.
        </para>

        <para>Este adaptador permite la autentificación contra archivos de
            texto que contengan líneas
            que tengan los elementos básicos de la
            autenticación "Digest":
       </para>

        <itemizedlist>
            <listitem>
                <para>
                    username, tal como
                    "
                    <emphasis>
                        <filename>joe.user</filename>
                    </emphasis>
                    "
                </para>
            </listitem>
            <listitem>
                <para>
                    realm, tal como "
                    <emphasis>Administrative Area</emphasis>
                    "
                </para>
            </listitem>
            <listitem>
                <para>
                    Hash
                    <acronym>MD5</acronym>
                    del username, realm y password,
                    separados por dos puntos
                </para>
            </listitem>
        </itemizedlist>

        <para>
            Los elementos anteriores están separados por dos
            puntos, como en el ejemplo siguiente (en
            el que la contraseña es
            "
            <emphasis>somePassword</emphasis>
            "):
        </para>

        <programlisting language="txt"><![CDATA[
someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
]]></programlisting>

    </sect2>

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

        <title>Detalles Específicos</title>

        <para>
            El adaptador de autenticación "Digest",
            <classname>Zend_Auth_Adapter_Digest</classname>
            , requiere varios
            parámetros de entrada:
        </para>

        <itemizedlist>
            <listitem>
                <para>filename - Nombre del archivo contra el que se
                    realiza la autenticación de las consultas</para>
            </listitem>
            <listitem>
                <para>realm - Domino de la autenticación "Digest"</para>
            </listitem>
            <listitem>
                <para>username - Usuario de la autenticación "Digest"
                   </para>
            </listitem>
            <listitem>
                <para>password - Contraseña para el usuario del dominio
                   </para>
            </listitem>
        </itemizedlist>
        <para>
            Estos parámetros deben ser establecidos antes de
            llamar a
            <methodname>authenticate()</methodname>
            .
        </para>

    </sect2>

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

        <title>Identidad</title>

        <para>
            El adaptador de autenticación "Digest" devuelve un objeto
            <classname>Zend_Auth_Result</classname>
            , que ha sido rellenado
            con la identidad como un array que tenga claves
            <emphasis>realm</emphasis>
            y
            <emphasis>username</emphasis>
            . Los respectivos valores del
            array asociados con esas claves correspondes con los
            valores fijados
            andes de llamar a
            <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>
