Problématique
- Créer un compte (un de plus...)
- Accéder à des données d'une application tierce
- Combiner les deux
OpenId
- Utiliser un identifiant unique pour se connecter sur les sites web
- OpenID fourni par un provider (Google, Yahoo!, etc.)
- Délégation du processus d'authentification
OAuth
- Déléguer l'accès à ses données sur une application tierce
Différences
- OpenId certifie qui vous êtes
- OAuth OpenId donne une clé d'accès à vos données
- Implémentations varient selon les sites (ce serait trop simple sinon...)
Principes d'utilisation
- Nécessité de clés publique/privée pour son application
- Utilisation de cryptographie
- Différents cas d'utilisation
- Application web via un serveur
- Application client Javascript
- Application installée (mobile ou desktop)
Application web avec serveur
- Spécifier une URL de retour
- URL de retour interprète la réponse du provider
- Redirection vers une page du site afin de masquer les données
- Utilisation des sessions
- Utilisation des header de type Location
- Recommendé d'utiliser des bibliothèques
Gestion des comptes sur un site
- Distinguer si le compte a été créé sur le site ou si c'est un compte créé via un provider
- Proposer la connection en fonction du type de compte
- Besoin de stocker localement des informations complémentaires
- Unifier les modèles pour avoir un traitement des utilisateurs identique quel que soit le type du compte utilisé
Gestion de l'authentification
- Découpler le gestionnaire d'authentification
- De ses adapteurs qui vérifient le login de l'utilisateur
- Code extensible pour ajouter de nouveaux providers