<sect1 id="zend.auth.adapter.digest">

    <title>אימות מתקדם</title>

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

        <title>הקדמה</title>

        <para>
            <ulink url="http://en.wikipedia.org/wiki/Digest_access_authentication">אימות מתקדם</ulink>
            הינה שיטת אימות בעזרת פרוטוקול HTTP אשר משפרת את
            <ulink url="http://en.wikipedia.org/wiki/Basic_authentication_scheme">אימות בסיסי</ulink>
            על ידי מתן אפשרות לאמת נתונים של משתמש דרך שרתים ללא צורך בהעברת הסיסמא בתור טקסט רגיל.
        </para>

        <para>
            מתאם זה מאפשר לאמת מול קבצי טקסט המכילים שורות התואמים לאלמנטים הבסיסים של אימות מתקדם:
            <itemizedlist>
                <listitem>
                    <para>
                        שם משתמש, כמו "<code>joe.user</code>"
                    </para>
                </listitem>
                <listitem>
                    <para>
                        תחום, לדוגמא "<code>לוח בקרה</code>"
                    </para>
                </listitem>
                <listitem>
                    <para>
                        הצפנת MD5 של שם המשתמש, התחום והסיסמא, מופרדים בנקודותיים.
                    </para>
                </listitem>
            </itemizedlist>
            האלמנטים למעלה מופרדים בנקודותיים, כמו בדוגמא הבאה ("<code>somePassword</code>"):
        </para>

        <programlisting><![CDATA[
someUser:Some Realm:fde17b91c3a510ecbaf7dbd37f59d4f8
]]>
</programlisting>

    </sect2>

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

        <title>מאפיינים</title>

        <para>
           רכיב <code>Zend_Auth_Adapter_Digest</code>, אשר משמש בתור מתאם אימות מתקדם, דורש כמה פרמטרים:
            <itemizedlist>
                <listitem>
                    <para>
                        שם הקובץ - שם הקובץ שמולו כל שאילתות האימות יבוצעו.
                    </para>
                </listitem>
                <listitem>
                    <para>
                        תחום - התחום שבו האימות מתבצע עליו

                    </para>
                </listitem>
                <listitem>
                    <para>
                        שם משתמש - שם משתמש לאימות

                    </para>
                </listitem>
                <listitem>
                    <para>
                        סיסמא - סיסמא למשתמש של אותו תחום
                    </para>
                </listitem>
            </itemizedlist>
            פרמטרים אלו צריכים להיות מוגדרים לפני הקריאה אל <code>authenticate()</code>.
        </para>

    </sect2>

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

        <title>זהות</title>

        <para>
            המתאם המתקדם מחזיר אובייקט של <code>Zend_Auth_Result</code>, אשר נוצרה עם הזהות בתור מערך אשר מכיל מפתחות של <code>realm</code> ו <code>username</code>.
            הערכים במערך מקושרים למפתחות אשר הוגדרו לפני קריאה ל  <code>authenticate()</code>.
        </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] => Some Realm
    [username] => someUser
)
*/
]]>
        </programlisting>

    </sect2>

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