<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15103 -->
<!-- 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":
            <itemizedlist>
                <listitem>
                    <para>
                        apellido, tal como "<methodname>joe.user</methodname>"
                    </para>
                </listitem>
                <listitem>
                    <para>
                        dominio, tal como "<methodname>Administrative Area</methodname>"
                    </para>
                </listitem>
                <listitem>
                    <para>
                        Hash MD5 del nombre de usuario, dominio y contraseña, separados por dos puntos
                    </para>
                </listitem>
            </itemizedlist>
            Los elementos anteriores están separados por dos puntos, como en el ejemplo siguiente (en el que 
            la contraseña es "<methodname>somePassword</methodname>"):
        </para>

        <programlisting><![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:
            <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>
            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 <methodname>realm</methodname> y <methodname>username</methodname>. 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>
<!--
vim:se ts=4 sw=4 et:
-->