OpenId, OAuth : authentification via un tiers

Jean-Marc Lecarpentier
GREYC — Université de Caen

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

OpenId

OpenId : fonctionnement

séquence OpenID

OAuth

  • Déléguer l'accès à ses données sur une application tierce

OAuth : fonctionnement

séquence OAuth

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