OpenID

WRInaute occasionnel
Bonjour,
On entend parler de OpenID ces temps ci. Je crois que Orange est compatible openID et que Yahoo y réfléchit. Je ne suis pas sur d'avoir bien compris ce que ça veut dire d'avoir un site compatible avec OpenID.

Est ce que cela veut dire que si j'ai un OpenID, je peux me loguer sur n'importequel site qui est compatible OpenID sans m'enregistrer ?
 
WRInaute passionné
C'est bien cela.

C'est un système mutualisé d'identification de site web, un peu à la manière de feu Microsoft Passport.

J'essaye de voir en ce moment comment le mettre en oeure sur mon site, après m'être renseigné auprès d'eux (je voulais savoir si il était possible de conserver une identification interne au site tout en utilisant leur solution => Oui).
 
WRInaute occasionnel
Ouah BadProcESs, tu m'intéresses là, c'est justement ce que j'avais en tête aussi et j'ai des tas de questions qui me trotte dans la tête.

Imaginons pour un forum par exemple. Je suis un utilisateur OpenID, donc mon username n'est pas en base local.

Je poste un message, comment je fais pour retrouver ces infos ?

Comment je référence l'auteur du post dans la base locale ?

Est ce que par exemple il faut créer des enregistrement "spéciaux" dans la table users de la base locale avec par exemple un nouveau champ openid qui vaut 0 pour les members réguliers et la valeur de l'openid pour les membre openid ?
 
WRInaute passionné
A ce que j'ai compris, tu a tout de même des informations qui concerne ton application dans ta base, i.e. tes comptes utilisateurs dans ton exemple son néanmoins créé dans ta base, mais l'authetification passe via leur réseau.

Je vois ca comme cela : Dans ta table user, tu a l'ID user 123 qui est un utilisateur OpenID. Sur ton formulaire de login, tu as un option select qui te permet de choisir si l'utilisateur est "local" ou OpenID. Si OpenID, alors tu interroge leur serveur avec le login / password entré, celui-ci en retour te renvoi, par exemple, true ou false suivant que l'authentification est correcte ou non.
 
WRInaute occasionnel
j'ai du mal à comprendre le principe, dans ce cas.
si tu dois te réinscrire sur chaque site, en indiquant juste ton OpenID, quel est l'intérêt ? juste avoir un unique pass pour tous tes services?
je trouve ça plus dangereux qu'utile....
 
WRInaute passionné
A priori certaines informations sont stockables dans leur base, et différente pour chaques sites. Dans ce cas, il aut interroger leur base pour les retrouver.
 
WRInaute occasionnel
ok donc on a quand même une notion de "mutualisation" des informations. dans ce cas, ça peut être justifié. merci de la précision :)
 
WRInaute discret
Le but d'OpenID (la version 2 est en cours de spécification et Microsoft, Google, Yahoo ont rejoint le bateau) permet de s'authentifier sur n'importe quel service compatible en utilisant son provider d'identité (ex: Orange, Yahoo, Google, etc.) compatible OpenID.

En gros le but est de permettre de gérer centralement son authentification, et à la rigueur de partager certaines informations avec les providers de service (avec autorisation de l'utilisateur). Ainsi par exemple si vous êtes un fan de forum vous n'aurez pas à vous enregistrer sur 50 forums et gérer autant de jeux de credential. Lors du login, vous spécifiez que vous voulez vous authentifier en utilisant OpenID, ceci vous redirige sur le formulaire de votre provider d'identité, qui va renvoyer un token au forum pour lui indiquer que vous êtes bien authentifié.

L'article sur wikipedia en: est très bien fait.
 
WRInaute occasionnel
D'accord greatpatton, s'il ne faut pas s'enregistrer je comprends bien l'intérêt, mais adminettons que je me logue sur un forum avec mon openID, et que je poste un message, dans le champ "auteur du message" je vais mettre un id (l'openid) qui n'est pas dans ma base local ?
Ca me parait dur à gérer ça! Il me semble qu'il faut forcément qu'il y est un enregistrement dans la table users de la base local corresopndant à chaque utilisateur qui poste un message. Je n'arrive pas à comprendre comment ça peut marcher sinon.
 
WRInaute discret
C'est juste. Au moment ou ton utilisateur va revenir de son provider OpenID celui-ci va te donner un ID unique que tu pourras utiliser pour créer un profile dans ta base locale d'utilisateurs. En même temps tu peux demander au provider OpenID (avec l'accord du user) son nickname favori.

Au final tu vas avoir dans ta base des utilisateurs OpenID qui ressembleront aux utilisateurs normaux sauf que tu n'auras pas de login/password pour eux, mais bien un profile local à ton application...

J'espère que c'est un peu plus clair? :roll:
 
WRInaute occasionnel
Oui je comprends mieux maintenant. En fait on fait un enregistrement transparent en base locale pour l'utilisateur :

Nouvel utilisateur openID se connecte sur ls site : on vérifie si cet openID est déjà en base, si oui, on fait rien, sinon on crée l'enregsitrement.

En fait ça ne parait pas si compliquer à mettre en place, il faut juste se renseigner sur l'API et comment l'utiliser.

Concernant l'email, par exemple dans un forum, on envoie une notification email pour prévenir d'un novueau message. Je suppose qu'on ne peut pas récupérer l'adresse email correspondant à un openID donnée. Donc comment faire ?
 
WRInaute occasionnel
Merci, c'est une limitation importante quand même. On peut se loguer sans s'enregistrer mais il faut quand même remplir des formulaires pour s'identifier un peu plus si on veut profiter des fonctions avancées. C'est beaucoup plus clair, merci bien.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Haut