★ Comment utiliser OpenID, la solution d'identification tant attendue

vignette

Cela fait un moment que je suis ça de loin et la sauce est en train de prendre, Tarek en parlait d'ailleurs récemment. OpenID permet de s'identifier via une simple URL sans pour autant être tributaire d'un service puisque vous pouvez avoir votre propre serveur gérant cette identité. Actuellement il y en a 4 « officiellement reconnus » mais rien ne vous empêche de créer le votre et mon petit doigt me dit qu'il ne va pas tarder à y en avoir à foison.

Comment créer un compte OpenID ?

Je donne ici la solution simple, celle ne nécessitant pas de serveur particulier. Si vous êtes déjà identifiés sur l'un des sites suivants (LiveJournal, Vox ou VeriSign Labs), autant utiliser votre compte sinon je préconise MyOpenID qui me semble plus « libre » et sur lequel j'ai créé mon OpenID très facilement.

Peu d'informations sont demandées et vous pouvez vous identifier sans adresse email. En gros un nom/pseudo est suffisant pour commencer, bien sûr vos informations personnelles peuvent ensuite être complétées et ne sont divulguées aux sites sur lesquels vous vous identifiez que si vous l'autorisez. Il est possible de créer des profils très simplement.

Comment avoir son propre domaine OpenID ?

Vous disposez maintenant d'une URL de la forme http://david.larlet.myopenid.com dans mon cas par exemple. Si vous n'avez pas de page internet, vous pouvez utiliser cette adresse pour vous identifier. Si vous avez votre propre page/domaine, il est plus intéressant de pouvoir vous identifier avec votre propre adresse, par exemple http://larlet.fr dans mon cas puisque j'ai décidé que ce serait mon identité numérique sur internet.

Rien de plus simple, il suffit d'ajouter deux lignes dans l'entête de votre page (entre <head> et </head>) de la forme :

<link rel="openid.server" href="http://serveur_OpenID" /> 
<link rel="openid.delegate" href="http://identifiant_OpenID/" />

avec serveur_OpenID qui est le serveur fournit par votre site d'authentification :

  • LiveJournal : http://www.livejournal.com/openid/server.bml
  • Vox : http://www.vox.com/services/openid/server
  • VeriSign : https://pip.verisignlabs.com/server
  • MyOpenID : http://www.myopenid.com/server

et identifiant_OpenID votre URL identifiante.

soit dans mon cas :

<link rel="openid.server" href="http://www.myopenid.com/server" />
<link rel="openid.delegate" href="http://david.larlet.myopenid.com/" />

L'avantage de cette redirection est que vous pouvez changer de fournisseur d'identité sans conséquence si vous avez un problème avec l'actuel. En revanche, la page qui est pointée doit être stable. A priori si vous avez votre propre domaine, vous agissez en personne responsable.

Sur quels sites utiliser OpenID ?

Le problème d'une technologie « émergente » est qu'elle n'est pas disponible partout à un instant t donc autant le dire tout de suite, peu de sites proposent aujourd'hui de telles manières de s'identifier. Vous trouverez la liste la plus complète sur le site officiel d'OpenID ou via le tag openidcustomer sur del.icio.us ou sur MyOpenID directement.

Pour en citer quelques uns : Ma.gnolia, Zooomr ou WikiTravel proposent ce type d'identification.

Créer son propre fournisseur d'identité OpenID

Je vous renvoi directement à la bonne partie du post de Sam Ruby car je n'ai pas encore testé, je n'ai aucune idée de ce que ça peut donner niveau charge ça doit pas être très violent, peut-être que la freebox pour faire l'affaire à l'occasion.

Utiliser OpenID pour son blog

Bien sûr le rêve de tout blogueur c'est de ne plus avoir de spam. C'est aussi le but de cette identification... à condition d'avoir rendue possible l'identification via OpendId. Actuellement je ne crois pas que les différents outils de blog proposés en donnent la possibilité, la seule page que je connaisse relative à son implémentation est celle de django, donc si vous avez votre blog déjà sous django (bientôt, bientôt...), n'hésitez pas à lire la page OpenID Authentication qui donne la solution quasiment clés en main.

Pour les autres plateforme de blogs, n'hésitez pas à mettre des liens vers les ressources en commentaires, je suis assez peu ces développements là. Des bibliothèques sont disponibles sur le site OpenIDEnabled.

Ressources

Principalement le post de Simon Willison : How to turn your blog in to an OpenID ainsi que le screencast associé (très compréhensible) ainsi que l'article OpenID for non-SuperUsers de Sam Ruby. Ces sites utilisent bien sûr OpenID pour l'identification dans leur commentaires.

[edit du 5] : je viens de tomber sur la traduction du billet de Simon Willison : Comment transformer votre blog en une OpenID ?

[edit du 8] : ça bouge encore du côté de Django avec DjangoID :

DjangoID is a Django-based OpenID server. It allows you to host your own (or someone else's) OpenID identity.

Et James en remet une couche.

— 04/01/2007

Articles peut-être en rapport

Commentaires

NiCoS le 04/01/2007 :

Intéressant tout ça - merci pour ce résumé :-)

giz404 le 04/01/2007 :

Encore un très bon article ! Voilà qui me simplifie la vie en présentant clairement openID, un projet que je ne suivais que distraitement.

Bader le 04/01/2007 :

L'initiative OpenID est notable car il semble que c'est le seul SSO qui a l'air d'être adopté par la communauté Web. (Liberty Alliance SSO, autre SSO libre n'a pas pris, ni les autres SSO.)
C'est également un protocole se basant sur l'architecture REST , donc très simple à mettre en place dans des applications web !

OpenID est déjà supporté par 2 plugins wordpress: verselogic.net/projects/w... et the-notebook.org/12/01/20...

Malheureusement il existe actuellement un problème intrinsèque de sécurité avec OpenID. En effet le site sur lequel vous vous logguerez avec OpenID aura toute latitude pour faire ce qu'il veut sur le serveur OpenID et tous les autres sites surlequel vous êtes connecté en OpenID.
Exemple concret:
1) je me logge sur monblog.fr en OpenID
2) je visite un blog mechant-pira.te dans lequel je poste un commentaire en utilisant mon identité OpenID
3) le blog en question utilise mon identification pour modifier mon mot de passe sur monblog.fr et y faire plein de betises !
Pour plus d'infos cherchez: openid phishing sur votre moteur de recherche préféré

Simon Rozet le 05/01/2007 :

Salut David,

J'avais déjà lu les originaux, mais je pense qu'une version française est réellement un plus :-)

Au passage, un lien est passé il y a quelque temps sur PlanetRDF donnant un moyen d'utiliser OpenID avec son FOAF : geospatialsemanticweb.com...

Je ne suis pas tout à fait satisfait du résultat, mais c'est déjà ca.

Pierre-Luc Daoust le 05/01/2007 :

Il existe des plugins pour Wordpress qui rendent possible l'intégration de OpenID. J'en ai installé un, et ça marche vraiment bien. Aucune modification à faire à l'interface graphique, tout se joue dans la page d'identification.

Yann le 05/01/2007 :

Excellent article ! Ca résume parfaitement tout ce qui se raconte en ce moment sur OpenID. A garder dans les bookmarks ! ;)

Bader > J'ai tendance à être paranoïaque et je ne comprends pas ta démonstration du problème de sécurité d'OpenID... J'aimerais bien que tu développes... Cela dit, je te remercie pour les liens vers les plugins WordPress ! :)
Il faut que j'étudie ça...

vincent le 05/01/2007 :

Très intéressant ! Je vais chercher du côté du module de développement python un de ces quatres pour voir :D

Et du coup que je refais 'encore' mon site avec django (c'est la 4ème fois, plus ça va, mieux ça va, m'enfin :D) je vais tester ça :D

Thomas le 05/01/2007 :

Merci David, j'avais lu le post de Tarek, mais je n'avais donné suite, cependant là je vais regarder ça de plus prêt.

Misdre le 06/01/2007 :

Merci pour ce billet sur OpenId ^^ J'étais en train de réfléchir à "l'identification en ligne" et plus spécifiquement à FOAF...
jusqu'à songer à un profil FOAF que l'on gérerait de chez nous, et qui pourrait être fourni à n'importe quel site lors de la création d'un compte, et servant également à s'identifier.. de même lorsque l'on poste un message sur un blog, ou ailleurs. On pourrait alors, en plus, avoir un moyen de retrouver ses propres participations sur le web, là où à chaque fois le profil FOAF a été utilisé...

Enfin, je dis sans doute n'importe quoi. Je vais jeter un oeil du côté d'OpenId !

Bader le 06/01/2007 :

@Yann
Je réexplique peut-être plus clairement le problème de sécurité.
Lorsque tu te logges sur un blog A tu utilises ton compte sur un autre site B. Ce qui fait que tu es loggé sur B. Donc si B est ton blog, le blog A vient d'être mis au courant que tu es loggé (ton navigateur) sur B. De ce fait, il connait le logiciel utilisé car il le connait vu qu'il a réalisé l'authentification et donc a obtenu l'identification de B. A peut donc utiliser ton navigateur loggé (grace au cookie) pour faire ce qu'il veut sur B.
Autre cas, là il s'agit de spoof. Tu arrives sur A qui te présente une authentification OpenID. Tu n'es pas encore loggé, tu entres tes informations personnelles en pensant que A t'as bien orienté sur B. Or A a très bien pu te présenter une page de log qui n'est pas celle de B et ainsi A récupère ton login et mot de passe.
La documentation bien plus précise est disponible sur le web, il suffit de chercher: "openid security issue" ou "openid spoof"

NiCoS le 08/01/2007 :

J'étais un peu sceptique sur le système mais avec les propos de Bader sur la partie phishing et sécurité, j'avoue être encore plus sceptique.

Je reconnais néanmoins à la solution le mérite d'exister et peut-être suffit-il qu'elle gagne un peu plus en maturité.

Pour les afficionados de Django/Lighttpd/OpenID, il y a cette entrée qui devrait vous intéresser : www.b-list.org/weblog/200...

David, biologeek le 08/01/2007 :

@Simon : merci.

@Bader : je vais me renseigner là-dessus, ça me parait trop énorme pour être possible.

@NiCoS : c'était déjà rajouté en edit ;-).

NiCoS le 08/01/2007 :

Oups, j'avais pas vu :-)

Biologeek : Ubuntu, bio-informatique et geekeri... le 09/01/2007 :

OpenId et phishing sont dans un bateau...

Suite aux commentaires de Bader relatifs aux problèmes de phishing, je me suis renseigné et je pense qu'il est nécessaire de mettre en garde les lecteurs un peu trop emballés par le premier billet. Il existe clairement un risque...

Eric Daspet le 09/01/2007 :

Désolé Bader, j'ai du mal à voir.

Je pars de la seule hypothèse que tu as une confiance dans ton provider openid et que cette confiance est légitime.

Tu as deux problèmes : le pishing et les CSRF.

Pishing ?
Un site te redirige vers un tiers qui fait semblant d'être ton provider, en espérant que tu t'y identifies. On se retrouve dans un cas de pishing on ne peut plus classique, comme certains tenteront de le faire avec ta banque. Openid n'y change rien, ni en mieux ni en moins bien. A toi de toujours vérifier l'url et le ssl avant de t'identifier quelque part. Ca vaut pour openid, pour ta banque et finalement où que ce soit sur Internet, openid ou non.

CSRF ?
La là menace est plus réelle car le problème ne vient pas de l'utilisateur, il vient des sites que potentiellement tu utilises. CSRF c'est un site vilain.com qui te renvoie via un formulaire ou un lien vers un site à toi (monsiteamoi.com), en tentant de te faire faire une action dangereuse.
Ce n'est pas spécifique à OpenId. Prend vilain.com, construits y une requête qui va effacer les 100 premiers mails du compte gmail et fais la lancer par ton visiteur. Le seul truc important pour que ça fonctionne c'est que tu sois identifié sur gmail. Que ce soit avec OpenId ou un login propre n'y change rien. En ciblant gmail j'ai de bonne chances de réussites (beaucoup de gens sous gmail, et une bonne chance qu'ils soient déjà identifiés)
Heureusement mon exemple avec gmail ne fonctionne pas. Justement parce que la problématique n'est pas nouvelle. Gmail vérifie l'entête "referer" du navigateur pour retirer les tentatives les plus flagrantes, puis il impose la présence d'un jeton spécifique dans l'url : aléatoire et différent à chaque connexion. Celui qui construit le lien ou la requête de suppression ne connait pas ce jeton (et n'a aucun moyen de le connaitre, openid ou non), la requête sera ignorée car considérée comme "fausse"
Pour que CSRF fonctionne il faut donc une faille de sécurité ou au moins une imprudence de la part du site ciblé. Si c'est un gros site il y a de bonnes chances pour que ce genre d'erreur soit déjà comblé, parce que les attaques par CSRF n'ont pas attendu openid. Si c'est une petite application perso qui est ciblée (genre mon forum perso ou mon moteur de blog perso) il y a plus de chance que j'y sois sensible, mais ça veut dire aussi que la personne qui a fait l'attaque l'a faite expressément pour moi. Et dans ce cas il n'a pas besoin d'openid pour faire tout ça, il a juste à trouver un moment où je suis probablement identifié sur l'application cible.

Non, franchement, ces problématiques sont à prendre en compte, elles sont à connaitre vis à vis du fonctionnement d'openid, mais openid lui même ne créé aucun risque supplémentaire.
Je dirai même que pour peu qu'on s'identifie au préalable sur le provider openid (au lieu d'attendre de s'y faire rediriger pour s'identifier), il devient assez complexe de faire du pishing.
Et si vous craignez CSRF, demandez à votre provider une validation manuelle de chaque demande d'identification (pas en resaisissant les mots de passe mais juste en cliquant sur "oui je veux m'identifier sur xxx"), ça limitera les effets du "tu es identifié chez moi donc tu l'es automatiquement ailleurs aussi". Tous les providers que j'ai vu proposent la chose.
où te rediriger vers un site où tu as un compte, et qu'il te fasse faire quelque chose de gênant.
Pour que ça fonctionne il faut qu'il y ait une faille de

Amaury le 15/01/2007 :

J'ai pas tout suivi dans la faille de sécurité qu'expose Bader, mais cependant j'ai une question semblable: qu'est-ce-qui empêche quelqu'un d'utiliser mon url d'OpenId ? pour peut qu'un site soit en "allow forever" cette personne peut usurper mon identité sans problème non ?

Stéphane Bortzmeyer le 19/01/2007 :

Amaury (#15) : "Qu'est-ce-qui empêche quelqu'un d'utiliser mon url d'OpenId ?"

Je pense que rien ne l'empêche. Comme rien n'empêche le gérant d'un blog de présenter un fil de discussions avec des commentaires dont il affirme qu'il ont été écrits par "Jacques Chirac" ou "Un expert" ou "bortzmeyer.myopenid.com/" (attention, les URL sont massacrés par le moteur de blog, c'était mon URL OpenID [David : ok, corrigé.]).

(Alors que le méchant a tout fabriqué lui-même.)

En d'autres termes, si on ne fait pas confiance au blog en question, on ne fait pas confiance aux URL OpenID qu'il affiche.


Amaury le 19/01/2007 :

ok, je comprends mieux

DevBlog le 22/01/2007 :

OpenID Delegation

Après une plongée profonde dans l'univers de openID, voici un premier plugin qui implémente ces spécifications. Ce plugin vous permet de définir les tags nécessaires à l'utilisation de l'URL de votre blog comme identifiant OpenID. Une meilleur

Stéphane Bortzmeyer le 23/01/2007 :

D'ailleurs, ce serait bien de permettre l'authentification OpenID sur ce blog :-)

David, biologeek le 23/01/2007 :

C'est prévu pour la prochaine version ;-).

Idée contre phishing le 24/03/2007 :

Si j'ai bien compris ce qu'est un OpenID il suffit juste de son adresse URL + login pour se connecter aux sites qui proposent. Il n'y a donc pas de changement de ce côté là en terme de sécurité par rapport aux sites auquel on se connecte tout les jours... sauf que là toutes les infos sont centralisés au meme endroit, donc risqué en cas d'intrusion. Une solution serait de renforcer cela par un système comme le propose les banques, je travaille en Lituanie et oui ici le système bancaire est bien plus sécurisé qu'en France - c'est à dire avoir un certificat en plus enregistré sur son PC ou un login aléatoire mais qui se tape sur un clavier à l'écran... sinon trop risqué à mon gout... Je vois qu'il y a un site OpenID français : OpenID France ==> www.openidfrance.fr/ je voulais tester mais on peu pas encore : dommage ! :( faut encore attendre... David

David, biologeek le 28/03/2007 :

Le problème du phishing est dans la redirection effectuée vers le serveur OpenId. Il n'existe pas à ce jour de solution pour contrer ça, si ce n'est l'absence de redirection, ce qui nécessite que l'utilisateur tape l'adresse de lui-même pour s'enregistrer, ce qui n'est pas envisageable car trop contraignant...

Nicofrand's blog le 02/05/2007 :

To be (a web identity) or not to be... That is the question

J'ai découvert assez récemment seulement le concept d'identité sur le web, par un billet sur Biologeek parlant d'OpenID...

yjoyeux le 08/09/2007 :

Bonjour,

Pour ceux qui chercherais un serveur openid français, je vous propose www.getmyopenid.com/ basée sur le framework Joomla.

C'est un service gratuit, profitez-en !

www.getmyopenid.com/yjoye...

Toff le 30/12/2007 :

Bader t'es sur de toi ?
j'aimerai bien que Stéphane Bortzmeyer confirme tes dires

Andlil le 27/04/2009 :

Alors sécurisé ou pas ?

Deedigit le 10/06/2010 :

Joomla a intégré openid depuis un bon moment, tout comme la possibilité de se connecter a travers un compte gmail ou un annuaire ldap ;-)

free coloring pages le 02/08/2010 :

Merci pour les bonnes idées, je vais donner LiveJournal, Vox ou VeriSign Lab un essai à l'aide de vos conseils.

informatique Grenoble le 09/04/2011 :

merci pour cet article

il date un peu aussi qu'en est il aujourdh'ui de ce type de solution : sécurité, liberté d'utilisation …

quelles sont les meilleures solutions ?

merci par avance

Cordialement,

Sébastien

site bio le 19/04/2011 :

merci pour cet article
par contre j'ai essayé de m'inscrire sur myopenID pour mon site de produits bio mais une fois mon inscription validée quand j'essaye de me loguer il me renvoie à la page d'acceuil sans aucun message

serge-web54 le 14/09/2011 :

j'ai bien lu ce que disent tous les intervenants , mais au niveau de sécurité c'est le cas de tous les systèmes ou tu te loggues en permanence ?(google /gamil, facebook etc)