Choses à faire

24h dans une journée, et tant de choses à faire !

Authentification en un clic avec OpenID et OAuth (1/3)

publié le 14 février 2012 par Pierre Quillery

Bonjour à tous ! Après un long hiatus, j’ai décidé de me remettre à poster un peu plus fréquemment sur ce blog … Je vais commencer un petit cycle de trois articles autour de la connexion dite « en un clic » sur laquelle j’ai récemment eu l’occasion de travailler. Il ne s’agit pas de donner des détails d’implémentation, car ces derniers changent souvent, mais plutôt de présenter les grandes lignes de chacun des protocoles existants pour en démystifier le fonctionnement qui est souvent très mal présenté dans les documentations que j’ai pu trouver à ce sujet.

Les logos d'OpenID & d'OAuth

Ce premier article se propose de faire un rapide état des lieux sur OpenID et OAuth, les deux principaux protocoles utilisés pour la mise en place de la connexion en un clic. Suivront dans les prochaines semaines un premier article sur OpenID puis un autre sur OAuth, où je passerai en revue les différentes étapes du dialogue avec chacun.

De nombreux sites sociaux tels que Twitter, Facebook, etc. vous proposent des fonctionnalité de connexion en un clic – concrètement, le principe est assez simple : plutôt que d’inviter l’internaute à se créer un n-ième compte sur votre site (et risquer ce faisant de le perdre s’il n’en a pas envie) vous lui proposez d’utiliser un compte créé sur un site qu’il fréquente sans doute, un réseau social. C’est à travers ce réseau social que l’internaute va vous communiquer ses informations personnelles, sans que vous n’ayez à intervenir activement dans la collecte desdites données.

Pour que cette idée soit facile à implémenter, il fallait bien entendu que les « gros poissons » se mettent d’accord entre eux sur un protocole commun permettant d’intégrer de la même façon la connexion à leurs différents sites. Comme il s’agit d’une œuvre humaine (trop humaine), deux standards ont été adoptés, OpenID et OAuth … Pour compliquer la situation, ils ne répondent pas exactement aux mêmes besoins.

OpenID

Le plus simple des deux est sans conteste OpenID : il va vous permettre de connecter simplement un internaute à votre site depuis un ensemble de fournisseurs connus … Ou indépendants : vous pouvez laisser à l’internaute le soin de préciser l’URL du fournisseur à contacter pour les identifier sur votre propre site. Vous n’avez donc pas besoin de connaître à l’avance le fournisseur avec lequel vous allez converser pour récupérer les quelques informations qui vont vous permettre d’identifier l’internaute à coup sûr : son prénom, son nom, son email.

OpenID a clairement été conçu pour être une solution de connexion complètement décentralisée dans le navigateur : cela le rend peu adapté pour des interactions plus poussées vis-à-vis de la plate-forme avec laquelle vous conversez ou bien pour une utilisation, dans une application mobile ou autre.

Cliquez ici pour voir l’article qui lui est consacré.

OAuth

… C’est pour répondre à un besoin plus large qu’OAuth a été inventé : grâce à lui, il vous est possible non seulement d’identifier l’internaute, mais également de récupérer un nombre plus important de données depuis la plate-forme cible si vous le souhaitez. Par ailleurs, ce protocole convient parfaitement pour une utilisation sur d’autres supports que le navigateur, ce qui en fait un candidat idéal pour l’intégration d’applications mobiles hors du navigateur, par exemple.

La contre-partie est que ce protocole est plus complexe à mettre en place, car les interactions à réaliser sont plus nombreuses … Par surcroît, les implémentations des fournisseurs sont toujours similaires mais généralement suffisamment différentes pour que vous soyez obligé de prévoir une procédure séparée pour la connexion à chaque fournisseur. Le corollaire est que vous devez donc obligatoirement prévoir à l’avance une liste de fournisseurs vers lesquels vous autoriserez la connexion – il est de toutes façons nécessaire de créer une compte de développement sur chacune des plates-formes pour obtenir des identifiants d’accès à leur API.

Cliquez ici pour voir l’article détaillé sur l’implémentation d’OAuth de Twitter & Facebook.

En conclusion

Heureusement pour nous, des librairies existent pour simplifier l’intégration de ces différentes solutions … Mais les protocoles et les implémentations évoluent bien souvent plus vite que ces librairies qui peuvent parfois être un peu dépassées, il convient donc de bien les choisir pour éviter au maximum les surprises. Dans les prochains articles, nous reviendrons en détails sur OpenID puis sur OAuth afin de vous donner quelques éléments qui devraient vous simplifier la vie pour procéder à leur intégration.

Les textes, illustrations et démonstrations présents sur ce site sont la propriété de leurs auteurs respectifs, sauf mention contraire (photo de la bannière).
Chosesafaire.fr, un site propulsé par Wordpress, vous est proposé par Pierre Quillery & Killian Ebel.

Valid XHTML 1.0 Strict