Introduction
Zend_OpenId est le composant de Zend Framework qui propose une
API simple pour l'utilisation de la technologie OpenID dans son applicatif internet.
Qu'est ce qu'OpenID ?
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 URL 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.
Visitez donc le site officiel de
OpenID pour plus d'information, voyez aussi le OpenID Book, par Rafeeq Rehman ou OpenIDFrance.
Comment cela fonctionne-t-il ?
Le but de Zend_OpenId est d'implémenter le protocole
d'identification OpenID, comme décrit dans le diagramme suivant :
L'authentification est initialisée par l'utilisateur final, qui passe son
identifiant OpenID, via son navigateur.
Le service protégé par OpenID normalise l'identifiant de l'utilisateur. Il
en résulte un identifiant validé, une URL du serveur OpenID, et une version du
protocole OpenID.
Le service protégé par OpenID établit optionnellement une connexion avec
le serveur OpenID en utilisant des clés Diffie-Hellman.
Les deux parties partagent alors un "secret" utilisé pour signer et vérifier les
messages suivants.
Le service protégé par OpenID redirige le navigateur vers l'URL du serveur
OpenID, en effectuant une requête d'authentification.
Le serveur OpenID vérifie si le navigateur n'est pas déjà
identifié.
L'utilisateur entre son mot de passe.
Le serveur OpenID effectue une vérification pour savoir si l'utilisateur a
le droit d'accéder au service protégé par OpenID.
L'utilisateur final accepte alors ou non de partager ses informations
d'identité pour le service protégé par OpenID.
Le serveur OpenID redirige le navigateur vers le service protégé par
OpenID, avec un message "authentification approuvée" ou "échouée".
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.
Zend_OpenId Structure
Zend_OpenId contient deux sous-classes.
Zend_OpenId_Consumer est un client, il sera utilisé sur les sites
nécessitant l'identification OpenID. Zend_OpenId_Provider, elle,
permet de créer son propre serveur OpenID. Ces deux classes sont totalement
indépendantes l'une de l'autre.
Les seuls points communs entre ces deux classes sont l'extension Simple
Registration Extension, implémentée par la classe
Zend_OpenId_Extension_Sreg, ainsi que les fonctions utilitaires
présentes dans la classe Zend_OpenId.
Zend_OpenId utilise l'extension GMP, lorsqu'elle
est disponible. Activez cette extension si possible, ceci améliorera les
performances avec Zend_OpenId.
Standards OpenID supportés
Le composant Zend_OpenId est conforme aux standards
suivants :
OpenID Authentication protocol version 1.1
OpenID Authentication protocol version 2.0 draft 11
OpenID Simple Registration Extension version 1.0
OpenID Simple Registration Extension version 1.1 draft 1