mercredi 21 février 2007

Banque d'identité, un exemple pour mieux comprendre

Au cas où certains ont raté le début, c'est la suite d'un billet où j'explique comment étendre le standard OpenId.

Je vous ai donc promis un exemple.

Je m'appelle MOI, et je connais trois personnes, A, B et C. Mon identifiant OpenId est http://moi.myopenid.com
Je souhaite m'inscrire sur le réseau social RS.com


Première étape : je m'inscris sur RS.com

Je donne donc mon identifiant OpenId, je suis redirigé vers ma banque d'identité qui me demande tout d'abord de m'identifier, puis m'informe que le service RS.com a sollicité des informations personnelles (nom, prénom, âge). Je décide d'accepter définitivement RS.com comme site de confiance et je lui transmets les informations demandées. Je suis alors redirigé vers le site RS.com
Jusque là, je n'ai que fait décrire le fonctionnement actuel d'OpenId.


Deuxième étape : je souhaite inviter des connaissances sur ce réseau.

Je clique donc sur inviter des connaissances, et je suis redirigé vers ma banque d'identité. Celle-ci récupère au passage la carte d'identité du site RS.com (avec entre autre le message d'invitation par défaut).
Je suis donc sur mon compte, et je cherche parmi mes connaissances celles que je souhaite inviter. Je peut compléter le message par défaut par un petit mot personnalisé.
Un message (au format XML) est alors envoyé à la banque d'identité de mon contact (B par exemple), comprenant la carte d'identité de RS.com (ou juste l'url où la trouver), mon identifiant et mon message d'invitation. Si cette personne me connaît, si je fais partie de ses relations (dans le cas où on accepte les relations déclaratives, de type Ziki ou FOAF), la banque d'identité transmet ce message à mon interlocuteur, par le biais qu'il a défini (mail, messagerie instantanée, flux RSS...).
Tout cela peut-être asynchrone, bien entendu.

Pendant ce temps là, une fois que j'ai fini d'inviter mes connaissances, je suis redirigé vers le site RS.com
On peut aussi imaginer que j'aille directement sur mon compte OpenId pour inviter des gens, et dans ce cas il faut pouvoir obtenir la fiche d'identité du site RS.com simplement (il serait d'ailleurs assez logique que celle-ci soit publique).


Troisième étape : B a accepté mon invitation.

Cela signifie qu'il s'est inscrit sur le site en indiquant à RS.com qu'il est venu suite à mon invitation. Là encore, c'est la banque d'identité qui fait le rapprochement : quand B s'inscrit sur le site, c'est à dire qu'il accepte RS.com comme site de confiance, la banque d'identité cherche dans la liste des invitations reçues celles qui concernent RS.com et les signale au site (après accord de B, bien entendu).
Le site RS.com est donc informé de la relation entre B et moi, et la stocke en cache chez lui (pour des questions de performance et de recherche dans les graphes).
Quant à moi, je suis informé que B a accepté mon invitation.


Quatrième étape : je noue de nouveaux contacts via RS.com

Si ces contacts ont eux-mêmes une identité OpenId, RS.com informe ma banque d'identité de cette nouvelle relation qui peut alors la sauvegarder dans mon espace OpenId.

Fin de l'exemple.

Le principe du stockage décentralisé qui est celui d'OpenId à l'heure actuelle permet au réseaux sociaux déjà existants de ne pas se dé-saisir de leurs informations mais au contraire d'offrir un nouveau service pour que leurs utilisateurs aillent sur d'autres sites sans avoir à tout retaper.
On devrait même pouvoir « obliger » les sites à communiquer sur demande l'ensemble des informations concernant un utilisateur. Je m'explique. Si le site RS.com gère en interne un certain nombre d'informations supplémentaires sur moi (profil, statistiques, je ne sais quoi), je dois pouvoir rapatrier en un clic ces infos (au format XML) dans mon compte OpenId.

Un point important (je ne sais pas quelle est la politique d'OpenId à l'heure actuelle) : lorsque je modifie une information personnelle (mon numéro de téléphone par exemple), ma banque d'identité doit « pousser » cette information vers tous les services qui l'utilisent pour une mise à jour complète.

J'espère que j'ai été à peu près clair...

Aucun commentaire: