<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15860 -->
<!-- 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
            HTTP 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>
