Avoir son adresse openID
Le 6 février 2008, à 11:29 par Ulhume...

openID a le vent en poupe et j'en veut pour preuve que même Microsoft et Yahoo s'y mettent. C'est dire... Il était donc temps pour moi de voir comment mettre en place son propre serveur openID et comment publier ce serveur.

openID, quoi qu'est-ce ?

Sans trop revenir sur les plus ou moins fumeux mythes de WEB 2.0, il est au moins clair que si la toile de l'après Wikipedia n’a rien de technologique, elle a intégré trois évolutions d'usages majeures :

  • Le crowdsourcing qui délègue aux internautes le soin de fournir (gracieusement... ) des contenus.
  • Les réseaux sociaux qui relient les internautes entre eux à travers de simples commentaires ou par des outils évolués de mise en relation (facebook, viadeo, etc.)
  • Et enfin l' identité numérique , qui fait passer l'internaute du statut de simple visiteur à celui d'utilisateur, avec son profil, ses préférence, son pseudo, etc.

Or d'identité numérique nous sommes vite passé à la schizophrénie numérique tant sont multiples les comptes, les points d'intervention, les mots de passe à mémoriser, etc.

OpenID est donc l’une des réponses à cette schizophrénie et en tout cas la seule qui soit libre. Pour rapidement comprendre en quoi cela consiste, prenons un exemple classique, la saisie d'un commentaire sur un billet :

  • Comme chaque matin, je vais faire un tour sur auBlogDuCoin.fr, et j'y découvre un très intéressant article.
  • Je veux intervenir dans la conversation et donc saisir un commentaire.
  • C'est cool le site utilise l'openID, je n'ai donc plus besoin de donner mon pseudo, l’adresse de mon site web et mon email, mais juste mon openID qui est une adresse WEB unique du genre http://ulhume.fr/monopenID.
  • Je poursuis en rédigeant un commentaire éclairé et je valide.
  • Sans rien me dire et de manière invisible, le site va aller faire un tour sur http://ulhume.fr/monopenID pour récupérer cette fois l'adresse de mon VRAI serveur openID. Cette adresse peut être quelque chose comme http://serveuropenID.fr/ulhume.
  • Le site va alors me rediriger sur http://serveuropenID.fr/ulhume pour authentification.
  • A partir de maintenant, ce n’est pas www.auBlogDuCoin.fr mais bien http://serveuropenID.fr/ulhume qui me demande mon login et mot de passe.
  • Si le login et le mot de passe sont bon, http://serveuropenID.fr/ulhume me redirige sur auBlogDuCoin.fr qui va ainsi recevoir, de manière totalement invisible pour moi, les informations me concernant : psoeudo, site web, adresse eMail, avatar, etc.
  • auBlogDuCoin.fr a maintenant toutes les informations nécessaires et peut donc enfin valider mon commentaire.

La question que l'on peut se poser c'est : pourquoi aller d'abord sur un première adresse pour ensuite aller sur le "vrai" serveur openID ? Pourquoi ne pas y aller directement ?. La réponse est assez simple. La première adresse, http://ulhume.fr/monopenID m'appartient. C'est généralement votre site web ou votre blog. En revanche le serveur openID, http://serveuropenID.fr/ulhume, ne m'appartient pas forcement. Du coup si je donne la seconde adresse comme étant mon adresse openID, je suis pieds et poings liés avec un fournisseur. Si je veux en changer je vais perdre mon openID. En terme technique, on dit que la première page délègue l'authentification à la seconde adresse.

De tout ceci nous pouvons retirer plusieurs choses sur l'openID :

  • Jamais le site que je visite ne voit mon mot de passe. Il n'a qu'un identifiant unique, mon adresse openID.
  • Mon adresse openID peut ne pas être la même que l'adresse du serveur openID. Il est ainsi possible de changer de fournisseur, sans pour autant changer d'identifiant.
  • Je peux fournir au serveur openID que j'utilise des informations plus où moins complètes selon mes besoins. Certains serveurs permettent même de fournir des informations différentes en fonction du site qui y fait appel.
  • Si je change mes informations, cela change celles de toutes mes interventions sur WEB. Par exemple si je change mon Avatar, ou mon pseudo, cela va être répercuté partout où l'openID a été utilisé. C'est en tout cas théoriquement le cas, car beaucoup de sites "copient" en local ces informations.

C'est bon je crois pour la théorie. Maintenant mettons cela en musique et commençons par nous créer un compte sur un serveur openID.

Création d'un compte

Le serveur openID est un logiciel sur lequel vous devez avoir un compte au sein duquel vous allez stocker vos informations personnelles (pseudo, avatar, etc.). C'est ce serveur qui va réaliser l'authentification réelle sur tous les sites WEB où vous utiliserez votre adresse openID.

A ce stade, vous avez deux options possibles : soit vous décidez d'utiliser un service publique, soit vous préférez fabriquer vous-même votre propre serveur openID.

Fabriquer son propre serveur openID

Choisir entre serveur publique et serveur perso revient à mettre en balance la toute relative difficulté de l'opération avec l'importance que vous accordez à votre vie privée. En effet, toute enthousiasmante soit cette technologie, cela ne doit pas vous faire perdre de vue que votre serveur openID est par définition au courant de toute votre vie sur le WEB. Comme le soulignait, à juste titre Tuxicoman (un peu plus bas dans les commentaires), mettez un serveur openID dans les main d'un Google, et je rajoute, avec le succès d'un Google Analytics, et vos balades sur le net vont vite devenir de la pâtée à fabriquer de l'AddSens...

Pour qui dispose d'un simple hébergement PHP, il existe plusieurs serveurs openID mais le plus simple est définitivement phpMyID. Constitué de seulement deux fichiers il a pour seuls inconvénients que de devoir être paramétré à la mano et d'être mono utilisateur. Si vous cherchez un serveur plus complet (et complexe), orientez vous plutôt pour PHP Standalone openID Server qui a juste l'inconvénient (pour moi) de fonctionner seulement avec MySql. Je vais pour l'instant donc me concentrer sur l'installation de phpMyID.

Pour l'installer vous pouvez soit télécharger et décompresser la dernière archive dans votre dossier web ou alors, ma solution préférée, utiliser subversion :

  1. cd /var/www
  2. svn co phpMyID
  3. chown apache:apache phpMyID -Rc

L'avantage de la solution subversion est que la mise à jour est simple comme un :

  1. cd /var/www/phpMyID
  2. svn up

Dans un cas comme dans l'autre, vous devez avoir maintenant un dossier /var/www/phpMyID. Nous allons donc maintenant paramétrer le serveur en commençant par générer une clef d’identification qui va servir pour l'authentification. Imaginons que votre pseudo soit roberto et que le mot de passe soit secret. Pour fabriquer la clef d’identification il vous suffit alors de taper la commande :

  • echo "roberto:monSite.com:secret" | md5sum
  • 69f48b88c2171415117f29eff63da779 -

Si vous n'avez pas accès à un shell, le code php suivant (à détruire après usage !!) fera l'affaire :

genkey.php
  1. <?
  2.    print md5("roberto:monSite.com:secret");
  3. ?>

Une fois la clef en main, nous devons la coller, avec notre pseudo, dans le fichier MyID.config.php :

  1. 'auth_username' =>      'roberto',
  2. 'auth_password' =>      '69f48b88c2171415117f29eff63da779',

Maintenant il ne nous reste maintenant plus qu'à modifier la configuration d'apache (si c'est nécessaire) :

  1. Alias /phpMyID/ "/var/www/phpMyID/"
  2. <Directory "/var/www/phpMyID/">
  3.     Order allow,deny
  4.     Allow from all
  5. </Directory>

Et c'est fini !! Votre serveur openID est prêt à être publié grâce à ces coordonnées :

  1. <link rel="openID.server" href="http://monSite.com/phpMyID/MyID.config.php" />
  2. <link rel="openID.delegate" href="http://monSite.com/phpMyID/MyID.config.php" />  

MyPhpID est incompatible avec l'extension PHP Suhosin. Vérifiez donc que celle-ci n'est pas présente sur le serveur que vous utilisez ou désactivez-le si vous en avez la possibilité (ne faites pas cela si vous hébergez du code PHP ne vous appartenant pas !!).

Serveurs openID publiques

Si pour des raisons d'hébergement ou de temps (ou simplement pour tester), vous préférez l'option serveur publique, il existe aujourd'hui de nombreux services gratuits et relativement fiable qui permettent l'authentification openID. La section Well Known & Simple Providers du site openID.net vous en fournit une liste.

Il est aussi possible de passer par openID France qui est une association 1901.

La création d’un compte y est aussi simple que classique. Une fois que vous l’avez activé, vous n'avez plus qu'à vous connecter pour paramétrer votre profil. Sur la page d'accueil vous sont fournis deux informations. Une adresse openID fonctionnelle :

http://www.openIDfrance.fr/roberto

Et un bout de code HTML pour que vous puissiez créer votre propre adresse openID :

  1. <link rel="openID.server" href="http://www.openIDfrance.fr/index.php" />
  2. <link rel="openID.delegate" href="http://www.openIDfrance.fr/roberto" />

Une fois de plus, je radote pour la bonne cause, il ne faut pas utiliser l'adresse openID fournit par ce site, car sinon, vous seriez définitivement liés à celui-ci. Il faut que vous utilisiez le code HTML comme nous allons le voir un peu plus loin pour créer votre propre adresse openID.

Votre adresse openID

Que vous ayez créé un compte sur un serveur publique, ou que vous ayez monté votre propre serveur, vous avez maintenant deux lignes de code HTML qui vont vous permettre de créer votre adresse openID.

Là, vous avez le choix. Si vous avez un site web ou un blog, il suffit de coller ces deux lignes dans la balise <HEAD> de la page d’accueil et l'adresse WEB de votre site ou blog est maintenant, votre adresse openID. Vous pouvez créer aussi une page spécifique comme http://monSite.com/roberto/index.html et y mettre le code suivant :

  1. <html>
  2. <head>
  3. <TITLE>L'openID de Roberto !</TITLE>
  4. <link rel="openID.server" href="http://monSite.com/robertoopenID/MyID.config.php" />
  5. <link rel="openID.delegate" href="http://monSite.com/robertoopenID/MyID.config.php" />  
  6. </head>
  7. <body>
  8. La page openID de Roberto !
  9. </body>
  10. </html>

Il ne vous reste maintenant plus qu'à tester votre nouvelle adresse openID. Pour se faire vous pouvez aller sur cette application de test ou alors pour traquer les problèmes, utiliser cette page de validation très complète (et plus complexe...).

Conclusion

OpenID a un réel avenir et présente une véritable solution à l'épineux problèmes des identités numériques multiples. Reste maintenant à ce que de plus en plus de site utilise cet identifiant unique.

Commentaires

Tuxicoman , le 6 February, 2008 - 13:09

Article détaillé et très clair. Un plaisir à lire.

Néanmoins, faire appel à un serveur OpenID qui ne nous appartient pas, n'est ce pas lui remettre toutes nos infos personnelles + la liste des sites que nous utilisons (réseaux sociaux) + le pouvoir d'usurper notre identité ?
Si Google lance son serveur OpenID, ça pourrait leur donner une force d'analyse des comportements privés inespérée.

Ulhume, le 6 February, 2008 - 13:38

D'accord avec toi à 200%, d'où l'intérêt d'avoir son propre serveur ou, le cas échéant, pouvoir en changer facilement. C'est pour cela que j'ai articulé de cette manière et radotant telle une vieille chèvre pour ne jamais utiliser l'adresse du fournisseur. C'est aussi pour cela que je conseille plutôt OpenID France qui a le mérite d'être une association avec des objectifs clairs.

PS: je me suis permis d'ajouter deux liens en commentaire à ton article.

xian , le 6 February, 2008 - 13:53

Excellent article, va falloir que je me pense là dessus sérieusement.

Tuxicoman , le 6 February, 2008 - 14:36

ulhume : Serveur commercial -> serveur privé -> machine privée? Pourquoi alors ne pas pousser le bouchon encore plus loin et stocker son OpenID sur sa machine? Ainsi, pas besoin d'hébergement web tiers. Et dans ce cas, ca revient un peu à remplacer le gestionnaire de mots de passe de son navigateurs par un gestionnaire OpenID qui gèrerait en plus la divulgation de nos infos persos par site web.

Ulhume, le 6 February, 2008 - 14:58

@Tuxicoman Euh, là je commence à me dire que ce que tu essayes de faire passer comme message c'est que mon article n'est pas suffisamment clair Smiling

Ok, je vais remanier cette partie pour qu'il deviennent un peu plus évident que la "bonne" option reste celle d'avoir son propre serveur.

Ulhume, le 6 February, 2008 - 15:25

Voilà qui est fait Smiling

Tuxicoman , le 6 February, 2008 - 17:44

ulhume : je disais juste que le serveur OpenID pourrait être intégré au navigateur web. Je vois mal la majorité des gens gérer leur script PHP.

Ulhume, le 6 February, 2008 - 18:22

@tuxicoman Arg, désolé, j'av po compris, tant pis, j'espère que l'article est plus clair en tout cas. Mais ta remarque, maintenant que j'ai le focus, ne manque pas de sens mais techniquement délicate (mais pas irréalisable). En plus tu perds par là une évolution que je pressens sur cette technologie, celle de centralise l'information personnelle.

En effet, pourquoi ton commentaire ne serait pas stocké sur TON serveur et aggrégé/mis en cache sur le MIEN, l'adresse OpenID servant de clef unique ? Du coup, je verrais plus une solution de type mini-boitier (comme un routeur) que l'utilisateur lambda branche entre sa *box et son PC, qui contiendrait un serveur WEB, l'OpenID, etc. Le tout basée sur une micro-distrib (openWRT) qui publie automatiquement et sans connaissance technique ce genre de service sur le web.

Du moins c'est un peu ma vision du WEB 3.0 Wink

Omnisilver , le 6 February, 2008 - 21:45

Hello,

Merci pour cet article qui m'a fait comprendre ce qu'était l'openID

Juste une remarque : on dit un profil et non un profile, qui est un anglicisme.

Enfin, tes deux derniers liens sont des erreurs 404 Arf

Cordialement,

Omnisilver

Ulhume, le 7 February, 2008 - 09:24

@omnisilver c'est réglé, merci Smiling

ultrafil , le 7 February, 2008 - 10:02

J'ai essayé l'OpenID de yahoo.. yahoo n'accepte que les serveur openID yahoo. Ils n'ont donc rien compris.

Ulhume, le 7 February, 2008 - 10:12

@ultrafil Arf, je comprends mieux pourquoi Microsoft veut les racheter Smiling Perso, j'ai testé cela avec les blog google récemment et là ça fonctionne, mis à part qu'ils n'utilisent que la partie authentification ces ânes, du coup, si l'openID est http://toto.truc.fr, le pseudo c'est "toto" et le site c'est toto.truc.fr. Il semble qu'il y ait encore du chemin à parcourir Wink

dup , le 9 February, 2008 - 22:55

Juste pour signaler une petite faute, rien de bien méchant :
"ne faites pas cela si vous hébergez du code PHP ne vous appartenant pas !!"

Ulhume, le 10 February, 2008 - 08:37

@dup C'est corrigé, gracie mile Smiling

Dab, le 23 April, 2008 - 22:10

En voulant tester http://limilic.com/ écrit en ... devines quoi Wink je suis revenu sur ton article, très complet en effet. L'a tu mis en pratique sur ton site?
Si j'ai bien compris c'est le serveur openid qui renvoit l'authentification, on ne peut alors tester sur un site de développement en interne derrière un firewall Frown ... sauf a avoir ce serveur en interne.
Et donc l'idée de Tuxicoman d'un openid dans un navigateur ne me semble donc pas possible.

Ulhume, le 24 April, 2008 - 06:44

En pratique j'ai essayé en tout cas Smiling Maintenant c'est pas encore super utilisé, j'ai eu deux créations de compte via openID depuis le début.

Sinon pour le firewall, il est très méchant le tiens car tout passe par de l'https et oui effectivement c'est le serveur openid qui authentifie et renvoie au site source le token d'authentification.

Dab, le 24 April, 2008 - 10:52

Quel abruti je n'avais même pas remarqué 'Log in using OpenID' Frown
En fait je voulais comprendre qui initiait les connexions, tu me dis que le serveur openid envoie le token en https, ça veut dire que ton site est à l'écoute sur le port 443 pour gérer l'openid ?

Ulhume, le 24 April, 2008 - 10:56

nan c moi qui dit anneries, c'est du http

Dab, le 24 April, 2008 - 11:02

Et pour le spam ? pas de risque particulier ? genre création ephémère de serveur openid, j'imagine que cette voie sera certainement rapidement utilisée Wink

Ulhume, le 24 April, 2008 - 11:03

Pour l'instant je n'ai pas eu mais effectivement je suis assez curieux de voir ce qu'ils vont nous inventer dans ce domaine.

Comme une image , le 29 April, 2008 - 18:30

Excellent article, vraiment complet !
Je me lance dans l'installation, pour voir. Comme je suis un peu maso, je tente le serveur standalone (pour proposer un OpenId à mes amis qui n'ont pas de serveur sous la main et qui voudront bien me faire confiance – eh eh eh !)

Petite erreur sur le lien vers PHP Standalone : http://openidenabled.com/php-standalone-openid-server et non dead://www.openidenabled.com/openID/php-standalone-openID-server/

Ulhume, le 29 April, 2008 - 23:59

S'est corrigé, merci Smiling

Faudrait que je ponde un module qui vérifie les liens des posts à l'occasion.

Comme une image , le 29 April, 2008 - 22:34

J'ajoute que le projet clamshell est une alternative remarquable à PHP Standalone openID Server : installation hyper rapide sans aucune dépendance (contrairement à PHP-SOS – justement ce qui m'a fait renoncer), configuration en trois coups de cuillère à pot.

Ulhume, le 30 April, 2008 - 00:00

Alors j'avais testé clamshell qui effectivement est très bien avec un bémole cependant, à l'époque du dit test, il était incompatible avec la version Suhosin de PHP (une version blindée). Du coup, impossible pour moi, avec une mandriva, de m'authentifier avec...

Comme une image , le 30 April, 2008 - 00:06

Actuellement, c'est toujours le cas (d'après ce que j'ai lu) mais...

phpMyID is NOT compatible with Suhosin or other hardened PHP systems (Debian users take note).


phpMyID aussi.

Bon, pour l'instant j'ai testé tout ça en local sous Windows XP, faut que je vois ce que ça donne chez OVH maintenant !

Ulhume, le 30 April, 2008 - 00:11

Oui, c'est toi qui a raison (désolé le billet remonte à loin), clamshell est d'ailleurs une version étendue de phpMyID si je me souviens bien.

Tu héberges sur une kimsufi ?

MM2 , le 15 May, 2008 - 12:32

ok merci pour cette réponse
je suis curieux de savoir en pratique comme chaque site gère cela, quelques ex ?

oui et non il faudrait prévoir une certaine tolérance d'indisponibilité car sinon gloups si le serveur openid est hs

je vais me monter mon propre serveur openid ce week-end moi Smiling

MM2 , le 15 May, 2008 - 12:48

ok merci pour cet échange instructif
juste une remarque : que mes données (commentaires, photos, signets ...) soient indisponibles si mon serveur openid ne répond pas ça me convient mais par contre je n'aimerai perdre mes données parce que celui-ci est hs ...

comme tu dis l'idéal serait de pouvoir depuis son propre serveur monitorer en qq sorte ses propres interventions sur la toile et pouvoir les contrôler ...

bonne journée

Ulhume, le 15 May, 2008 - 12:50

Après c'est comme tout système informatique. Perdre ses données pour un serveur HS, c'est qu'il y a un soucis de sauvegarde Wink

Ulhume, le 15 May, 2008 - 12:40

C'est tout l'idée de l'extension du concept d'OpenID à la gestion des droits sur les contenus d'un utilisateurs. Si tu pars du principe que ton serveur OpenID est , comme ton site WEB, stratégique. S'il est en panne, c'est malheureux mais ton contenu, tes commentaires, seront inaccessibles.

Ca va encore poser des gros cas de conscience au législateur car si l'on pousse encore l'idée, mes commentaires sont stockés sur mon serveur et sont lus, par flux sur le site où je les attache.

Mais sans aller jusque là, une bonne "voie du milieu" serait de pouvoir, via ton serveur openId, avoir la liste de tes contributions et de disposer d'un droit de retrait sur tous les sites où tu l'utilises.

Bon courage pour ce we Smiling

Comme une image , le 30 April, 2008 - 00:18

Une 60GP kimsuffi amplement so far... Je ne suis pas assez geek pour avoir besoin d'autre chose (je n'ai même pas de distrib' Linux à la maison – bien que la dernière Ubuntu me chatouille un peu mais je perds assez de temps comme ça en bidouilles sur WP, je suis censé avoir un boulot et une vie de famille — hein, quoi, il est 1h17 du mat' ??!)

Christophe Ducamp , le 5 May, 2008 - 14:00

Merci pour cet excellent article en français et bonjour à tous.

Non programmeur, "représentant" d'OpenID en France et nouveau venu sur WP, j'ai essayé de suivre les instructions sur phpMyID, mais en vain. (http://christopheducamp.com/id/ essai ici : mais il y a une erreur à la connexion sur test/test)

Aussi s'il y a un(e) geek qui serait prêt durant ces prochains jours à me montrer comment pratiquer l'installation de phpMyid sur un WP à Paris, je serai preneur contre quelques bières/ou bouteille de vin.

Bonne journée

P.S. En passant, j'aimerais bien monter un jour un atelier pratique d'installation d'OpenID pour les nuls comme moi. Si ça tente quelqu'un. "Comme une Image" ça te dirait Wink

MM2 , le 15 May, 2008 - 11:36

Bonjour,

Merci pour cet article intéressant.

Question que se passe-t-il si le compte OpenID d'un utilisateur est indisponible (serveur HS) ou supprimé par lui ? j'imagine que cela dépend de la manière dont les site utilisant l'openid gère ce cas de figure ?

ex : je me crée un compte sur un site A en utilisant openid
à un moment donné mon compte openid n'est plus joignable mon compte sur le site A est-il supprimé ?

Ulhume, le 15 May, 2008 - 11:56

Comme tu le présumes, cela dépend de la manière dont le "client" gère cela. S'il effectue une copie locale, ce qu'il va faire dans 90% des cas, de ton identifiant. Ton compte et tes commentaires ne sont donc pas perdus.

J'aurais tendance à dire "malheureusement" car ce serait un formidable moyen de contrôler à posteriori l'information que l'on sème sur la toile.

Poster un nouveau commentaire

Le contenu de ce champ est gardé secret et ne sera pas montré publiquement.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • To highlight piece of code, just surround them with <code type="language"> Your code &tl;/code>>. Language can be java,c++,bash,etc... Everything Geshi support.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Textual smileys will be replaced with graphical ones.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.

Plus d'informations sur les options de formatage

Connexion utilisateur
Les derniers bavardages...