<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.openid.introduction">
    <title>Introduction</title>

    <para>
        <classname>Zend_OpenId</classname> est le composant de Zend Framework qui propose une
        <acronym>API</acronym> simple pour l'utilisation de la technologie OpenID dans son applicatif internet.
    </para>

    <sect2 id="zend.openid.introduction.what">
        <title>Qu'est ce qu'OpenID ?</title>

        <para>
            OpenID est un ensemble de protocole permettant une gestion centralisée de
            l'identification d'une personne. Ces protocoles permettent la création d'une identité en
            ligne, via un fournisseur d'identité. Cette identité peut alors être utilisée n'importe
            où, où OpenID est supporté. Sur les sites utilisant OpenID, il n'est plus nécessaire de
            se souvenir d'identifiants différents, la seule et unique identité OpenID est la même
            partout. Une identité OpenID est en général matérialisée par une <acronym>URL</acronym> et un utilisateur
            est libre de choisir son fournisseur OpenID, ou alors même de créer son propre serveur
            d'identification OpenID, ceci ne nécessitant pas d'autorisation centrale.
        </para>

        <para>
            Visitez donc <ulink url="http://www.openid.net/">le site officiel de
            OpenID</ulink> pour plus d'information, voyez aussi <ulink
            url="http://www.openidbook.com/">le OpenID Book, par Rafeeq Rehman</ulink> ou <ulink
            url="http://www.openidfrance.fr">OpenIDFrance</ulink>.
        </para>
    </sect2>

    <sect2 id="zend.openid.introduction.how">
        <title>Comment cela fonctionne-t-il ?</title>

        <para>
            Le but de <classname>Zend_OpenId</classname> est d'implémenter le protocole
            d'identification OpenID, comme décrit dans le diagramme suivant :
        </para>

        <para>
            <inlinegraphic align="center" fileref="figures/zend.openid.protocol.jpg"
            format="JPEG" scale="100" valign="middle" width="559" />
        </para>

        <orderedlist>
            <listitem>
                <para>
                    L'authentification est initialisée par l'utilisateur final, qui passe son
                    identifiant OpenID, via son navigateur.
                </para>
            </listitem>

            <listitem>
                <para>
                    Le service protégé par OpenID normalise l'identifiant de l'utilisateur. Il
                    en résulte un identifiant validé, une <acronym>URL</acronym> du serveur OpenID, et une version du
                    protocole OpenID.
                </para>
            </listitem>

            <listitem>
                <para>
                    Le service protégé par OpenID établit optionnellement une connexion avec
                    le serveur OpenID en utilisant des clés <ulink
                    url="http://fr.wikipedia.org/wiki/%C3%89change_de_cl%C3%A9s_Diffie-Hellman">Diffie-Hellman</ulink>.
                    Les deux parties partagent alors un "secret" utilisé pour signer et vérifier les
                    messages suivants.
                </para>
            </listitem>

            <listitem>
                <para>
                    Le service protégé par OpenID redirige le navigateur vers l'URL du serveur
                    OpenID, en effectuant une requête d'authentification.
                </para>
            </listitem>

            <listitem>
                <para>
                    Le serveur OpenID vérifie si le navigateur n'est pas déjà
                    identifié.
                </para>
            </listitem>

            <listitem>
                <para>L'utilisateur entre son mot de passe.</para>
            </listitem>

            <listitem>
                <para>
                    Le serveur OpenID effectue une vérification pour savoir si l'utilisateur a
                    le droit d'accéder au service protégé par OpenID.
                </para>
            </listitem>

            <listitem>
                <para>
                    L'utilisateur final accepte alors ou non de partager ses informations
                    d'identité pour le service protégé par OpenID.
                </para>
            </listitem>

            <listitem>
                <para>
                    Le serveur OpenID redirige le navigateur vers le service protégé par
                    OpenID, avec un message "authentification approuvée" ou "échouée".
                </para>
            </listitem>

            <listitem>
                <para>
                    Le service protégé par OpenID vérifie l'information du serveur OpenID en
                    utilisant le "secret" obtenu étape 3 ou en envoyant des informations
                    supplémentaires.
                </para>
            </listitem>
        </orderedlist>
    </sect2>

    <sect2 id="zend.openid.introduction.structure">
        <title>Zend_OpenId Structure</title>

        <para>
            <classname>Zend_OpenId</classname> contient deux sous-classes.
            <classname>Zend_OpenId_Consumer</classname> est un client, il sera utilisé sur les sites
            nécessitant l'identification OpenID. <classname>Zend_OpenId_Provider</classname>, elle,
            permet de créer son propre serveur OpenID. Ces deux classes sont totalement
            indépendantes l'une de l'autre.
        </para>

        <para>
            Les seuls points communs entre ces deux classes sont l'extension Simple
            Registration Extension, implémentée par la classe
            <classname>Zend_OpenId_Extension_Sreg</classname>, ainsi que les fonctions utilitaires
            présentes dans la classe <classname>Zend_OpenId</classname>.
        </para>

        <note>
            <para>
                <classname>Zend_OpenId</classname> utilise <ulink
                url="http://www.php.net/manual/fr/ref.gmp.php">l'extension GMP</ulink>, lorsqu'elle
                est disponible. Activez cette extension si possible, ceci améliorera les
                performances avec <classname>Zend_OpenId</classname>.
            </para>
        </note>
    </sect2>

    <sect2 id="zend.openid.introduction.standards">
        <title>Standards OpenID supportés</title>

        <para>
            Le composant <classname>Zend_OpenId</classname> est conforme aux standards
            suivants :
        </para>

        <itemizedlist>
            <listitem>
                <para>OpenID Authentication protocol version 1.1</para>
            </listitem>

            <listitem>
                <para>OpenID Authentication protocol version 2.0 draft 11</para>
            </listitem>

            <listitem>
                <para>OpenID Simple Registration Extension version 1.0</para>
            </listitem>

            <listitem>
                <para>OpenID Simple Registration Extension version 1.1 draft 1</para>
            </listitem>
        </itemizedlist>
    </sect2>
</sect1>