RelMeAuth-fr: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
([fr: 1st translation draft of RelMeAuth - to be reviewed])
 
m ([fr: minor corrrections - web-sign-in-fr translated in connexion web])
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[RelMeAuth-fr|RelMeAuth]] est un standard ouvert proposé pour utiliser les liens [[rel-me-fr|rel-me]] vers les profils sur les services supportant [[OAuth-fr|OAuth]] pour l'authentification que ce soit via ces profils ou votre propre site.
[[RelMeAuth-fr|RelMeAuth]] est un standard ouvert proposé pour utiliser les liens [[rel-me-fr|rel-me]] vers les profils sur les services supportant [[OAuth-fr|OAuth]] pour l'authentification que ce soit via ces profils ou votre propre site.
RelMeAuth est la technologie derrière [[web-sign-in-fr|connexion-web]].


<div class="vcard">
<div class="vcard">
Line 12: Line 14:
== support RelMeAuth ==
== support RelMeAuth ==
=== utilisateurs ===
=== utilisateurs ===
Vous voulez utiliser votre propre site pour vous connecter à d'autres sites ? Voici tout ce que vous devrez faire :
Voir [[web-sign-in-fr|connexion web]]


'''Utilisez simplement [[rel-me-fr|rel="me"]] sur votre site personnel, et entrez votre site personnel comme votre URL sur d'autres sites.'''
Voici une explication plus technique :


Voilà ! Pas de nouveaux méta-tags étranges ou de fichiers XML invisibles.
'''Utilisez [[rel-me-fr|rel="me"]] sur votre site personnel, et saisissez votre site personnel comme votre adresse web sur les sites avec une [[web-sign-in-fr|connexion web]] (RelMeAuth).'''


Explication légèrement plus longue :  
Étapes :


'''1. Ajoutez des liens [[rel-me-fr|rel="me"]] à vos autres profils.'''
'''1. Ajoutez des liens [[rel-me-fr|rel="me"]] à vos autres profils.'''


Ajoutez [[rel-me-fr|rel="me"]] aux liens de votre page personnelle vers vos différents profils sur d'autres services.
Ajoutez [[rel-me-fr|rel="me"]] aux liens provenant de votre page d'accueil personnelle vers vos différents profils sur d'autres services.


'''2. Editez vos autres profils pour faire un lien retour vers votre site.'''
'''2. Éditez vos autres profils pour faire un lien retour vers votre site.'''


Editez vos autres profils et réglez le champ "home page" ou "page d'accueil" ou "URL" vers votre site personnel.
Éditez vos autres profils et réglez le champ "home page" ou "page d'accueil" ou "URL" vers votre site personnel.


Voici une [[http://microformats.org/wiki/hcard-xfn-supporting-friends-lists-fr#Services_avec_XFN_rel.3D.22me.22_vers_un_site_externe|liste des sites de profil qui ont des champs URL et supportent rel-me]].  
Voici une [[http://microformats.org/wiki/hcard-xfn-supporting-friends-lists-fr#Services_avec_XFN_rel.3D.22me.22_vers_un_site_externe|liste des sites de profil qui ont des champs URL et supportent rel-me]].  


'''3. Il n'y a pas d'étape 3. C'est terminé.'''
'''3. Il n'y a pas d'étape 3. C'est terminé.'''
Désormais sur tout site qui utilise une connexion (connexion web) RelMeAuthNow (essayez par ex. [http://tantek.com/relmeauth/ le prototype RelMeAuth]), saisissez simplement votre URL de site personnel, et ce code RelMeAuth du site vous connectera en vous authentifiant avec l'un des profils sociaux que vous avez reliés (par ex. Twitter).


==== exemples dans la jungle ====
==== exemples dans la jungle ====
Line 49: Line 53:
Si vous préférez avoir une page de contact séparée qui lie vers vos autres profils, alors :  
Si vous préférez avoir une page de contact séparée qui lie vers vos autres profils, alors :  


# ajoutez [[rel-me-fr|rel="me"]] au lien provenant de votre page d'accueil vers votre page de contact
# ajoutez [[rel-me-fr|rel="me"]] aux liens provenant de votre page contact vers ces autres profils  
# ajoutez [[rel-me-fr|rel="me"]] aux liens provenant de votre page contact vers ces autres profils  
# ajoutez [[rel-me-fr|rel="me"]] au lien de votre page d'accueil vers votre page de contact
 


==== plus d'exemples dans la jungle ====
==== plus d'exemples dans la jungle ====
Line 86: Line 91:
Faites-vous tourner un site avec des profils ?
Faites-vous tourner un site avec des profils ?


N'importe quel site de réseau social ou site similaire qui a des pages de profils utilisateur devrait :  
N'importe quel site de réseau social ou site similaire ayant des pages de profils-utilisateur devrait :  
# fournir une [[user-interface-fr|interface utilisateur]] à un utilisateur pour saisir et publier publiquement une URL vers sa page personnelle
# fournir une [[user-interface-fr|interface utilisateur]] à un utilisateur pour saisir et publier publiquement une URL vers sa page personnelle
# publier un lien visible avec [[rel-me-fr|rel="me"]] de la page du profil de l'utilisateur vers sa propre page personnelle
# publier un lien visible avec [[rel-me-fr|rel="me"]] de la page du profil de l'utilisateur vers sa propre page personnelle
Line 98: Line 103:


Tout site qui veut permettre aux utilisateurs de se connecter avec ses présentations provenant de ce site sur des sites tiers devrait :  
Tout site qui veut permettre aux utilisateurs de se connecter avec ses présentations provenant de ce site sur des sites tiers devrait :  
# Supporter [[OAuth-fr|OAuth]] (2.0 even)
# Supporter [[OAuth-fr|OAuth]] (même avec 2.0)
# Suivre les conventions de Twitter pour :
# Suivre les conventions de Twitter pour :
#* les chemins endpoint et autres détails de protocole
#* les chemins endpoint et autres détails de protocole
Line 109: Line 114:
* Google Profiles ([http://sites.google.com/site/oauthgoog/ documentation Google OAuth])
* Google Profiles ([http://sites.google.com/site/oauthgoog/ documentation Google OAuth])
* Identi.ca (utilise les mêmes chemins endpoint/détails que Twitter)
* Identi.ca (utilise les mêmes chemins endpoint/détails que Twitter)
* Github ([http://developer.github.com/v3/oauth/ Github OAuth 2 documentation])
* ...
* ...


Line 120: Line 126:
== comment ça marche ==
== comment ça marche ==
=== résumé algorithme ===
=== résumé algorithme ===
Résumé de l'alogrithme de l'authentification RelMeAuth
Résumé de l'algorithme de l'authentification RelMeAuth


* input : une identité utilisateur (URL) pour s'authentifier
* input : une identité utilisateur (URL) pour s'authentifier
Line 126: Line 132:


# démarrer avec une URL d'identité utilisateur (par ex. provenant de l'IU, ou d'un cookie provenant des précédentes connexions, etc.)
# démarrer avec une URL d'identité utilisateur (par ex. provenant de l'IU, ou d'un cookie provenant des précédentes connexions, etc.)
# itérer ) travers les liens entrants rel-me sur l'URL de l'identité utilisateur
# itérer à travers les liens entrants rel-me sur l'URL de l'identité utilisateur (n'importe lesquelles des sous-pages locales rel-me si nécessaire)
## si
## si
### une destination rel-me est trouvée (HTTP Get réussi, en suivant n'importe quelle redirection)
### une destination rel-me est trouvée (HTTP Get réussi, en suivant n'importe lesquelles des redirections)
### et des liens rel-me en retour vers l'URL identité de l'utilisateur
### et des liens rel-me en retour vers l'URL identité de l'utilisateur
### et a un endpoint OAuth
### et a un endpoint OAuth
### alors faire authentification OAuth
### alors faire authentification OAuth
### si authentification réussie, c'est fini, l'utilisateur a été authentifié avec l'URL identité utilisateur, exit
### si authentification réussie, c'est fini, l'utilisateur a été authentifié avec l'URL identité utilisateur, exit
### si elle est rejetée, l'utilisateur a annulé, alors annuler la totatlité du processus d'authentification, exit  
### si elle est rejetée, l'utilisateur a annulé, alors annuler la totalité du processus d'authentification, exit  
## continuer itération avec le prochain lien rel-me s'il y en a
## continuer itération avec le prochain lien rel-me s'il y en a
# pas d'URLs authentifiables trouvée (que ce soit pas du tout, ou n'importe laquelle fournie comportant d'autres erreurs, 404, pas de réponse, pas de endpoint OAuth, autres erreurs OAuth)
# pas d'URLs authentifiables trouvées (que ce soit pas du tout, ou n'importe laquelle fournie comporte d'autres erreurs, 404, pas de réponse, pas de endpoint OAuth, autres erreurs OAuth)
 


=== algorithme détaillé ===
=== algorithme détaillé ===
Line 142: Line 149:


# start with a user identity URL (e.g from the UI, or from a cookie from previous login etc.)
# start with a user identity URL (e.g from the UI, or from a cookie from previous login etc.)
# if the URL is an OAuth provider
# if the URL is an OAuth provider  
# then try authenticating with it
# then try authenticating with it (we prefer the user's own site for auth)
## if it succeeds, exit
## if it succeeds, exit
## if canceled, exit
## if canceled, exit
## otherwise continue
## otherwise continue
# iterate through their outbound rel-me links on the user identity URL (first through direct rel-me links to external sites in order, then iterate through URLs deeper into the personal site in order, e.g. to a contacts page, and iterate through rel-me links from there to external sites in order)
# iterate through their outbound rel-me links on the user identity URL (first through direct rel-me links to external sites in order, then iterate through URLs deeper into the personal site in order, e.g. to a contacts page, and iterate through rel-me links from there to external sites in order, then the next breadth-first local rel-me page from the identity URL if necessary)
## if
## if
### a rel-me destination is up (HTTP Get succeeded, following any redirects)
### a rel-me destination is up (HTTP Get succeeded, following any redirects)
Line 157: Line 164:
## continue iteration with the next rel-me link if any
## continue iteration with the next rel-me link if any
# no authenticatable URLs found (either none at all, or any provided had some other error, 404, no response, no OAuth endpoint, other OAuth error)
# no authenticatable URLs found (either none at all, or any provided had some other error, 404, no response, no OAuth endpoint, other OAuth error)


== implémentations open source ==
== implémentations open source ==
Line 166: Line 174:
=== PHP ===
=== PHP ===
* [http://github.com/themattharris/relmeauth PHP RelMeAuth] par Matt Harris et Tantek Çelik
* [http://github.com/themattharris/relmeauth PHP RelMeAuth] par Matt Harris et Tantek Çelik
** Sites démo Live :
*** http://tantek.com/relmeauth/
*** http://apps.themattharris.com/relmeauth/
=== Ruby ===
* [https://github.com/aaronpk/IndieAuth IndieAuth] par Aaron Parecki contient du code Ruby pour exécuter une authentification RelMeAuth authentication, mais actuellement intégré à l'intérieur du code indieauth.com en général
** To Do : Séparer Ruby gem pour implémentation Ruby de RelMeAuth


== problématiques ==
== problématiques ==
Line 173: Line 189:
** Utilisez une liste blanche de site fournisseur vers un endpoint OAuth
** Utilisez une liste blanche de site fournisseur vers un endpoint OAuth
** Essayez les chemins endpoint Twitter OAuth sur d'autres sites pour voir s'ils fonctionnent - en supposant que beaucoup de fournisseurs OAuth imiteront simplement l'exemple de Twitter comme suggéré.
** Essayez les chemins endpoint Twitter OAuth sur d'autres sites pour voir s'ils fonctionnent - en supposant que beaucoup de fournisseurs OAuth imiteront simplement l'exemple de Twitter comme suggéré.
*** Cette découverte par technique de convention foncitonnera par exemple sur :
*** Cette découverte par technique de convention fonctionnera par exemple sur :
**** http://identi.ca/
**** http://identi.ca/
* How do you get an appID to use with any given site's OAuth? -[[User:Tantek|Tantek]]
* How do you get an appID to use with any given site's OAuth? -[[User:Tantek|Tantek]]
** This appears to still be a manual process, per site, and thus a legitimate limitation of RelMeAuth in comparison to say [[OpenID]].
** This appears to still be a manual process, per site, and thus a legitimate limitation of RelMeAuth in comparison to say [[OpenID]].
*** Some services are supporting appkey/secret pair anonymous/anonymous for mobile/desktop apps already.  Unsure how popular this is [[User:Singpolyma|Singpolyma]] 13:51, 23 April 2010 (UTC)
*** Some services are supporting appkey/secret pair anonymous/anonymous for mobile/desktop apps already.  Unsure how popular this is [[User:Singpolyma|Singpolyma]] 13:51, 23 April 2010 (UTC)
* OAuth is for authorization, and as such gives the site I'm ident asserting to access to my account on the id service.  This is very bad.  Suggested solution: use OpenID instead. [[User:Singpolyma|Singpolyma]] 13:51, 23 April 2010 (UTC)
* OAuth is for authorization, and as such gives the site I'm ident asserting to access to my account on the id service.  This is very bad.  Suggested solution: use OpenID instead. [[User:Singpolyma|Singpolyma]] 13:51, 23 April 2010 (UTC)
** OAuth actually suggests granularity in access rather than blanket access ([http://tools.ietf.org/html/draft-hammer-oauth-10 OAuth IETF draft, see Sec 4.8]): <blockquote><p>When implementing this protocol, servers should consider the types of access resource owners may wish to grant clients, and should provide mechanisms to do so.  Servers should also take care to ensure that resource owners understand the access they are granting, as well as any risks that may be involved.</p></blockquote>Thus for RelMeAuth purposes, the RelMeAuth "consumer"/library should ask merely for "authentication" rather than read, write, update, or delete access. One exception is the "share" scenario, where a site lets a user RelMeAuth login via another site (e.g. Twitter), and then provides a UI for the user to share from that site to Twitter - in that case request auth/read/write access granularity makes sense. [[User:Tantek|Tantek]] 22:46, 26 April 2010 (UTC)
* After authing with OAuth, how do you know what user it is that auth'd?  OAuth specifically does not tell you that information... [[User:Singpolyma|Singpolyma]] 13:54, 23 April 2010 (UTC)
* After authing with OAuth, how do you know what user it is that auth'd?  OAuth specifically does not tell you that information... [[User:Singpolyma|Singpolyma]] 13:54, 23 April 2010 (UTC)
** Twitter provides user information via the OAuth token and their API, it is recommended that other OAuth providers follow this API convention while OAuth is evolved to provide to capability. [[User:Tantek|Tantek]] 22:46, 26 April 2010 (UTC)
</div>
</div>


Line 185: Line 207:
Le 2010-02-01 Tantek [http://tantek.com/2010/032/t5/modest-proposal-authentication-oauth-twitter-rel-me a présenté la base] et Jeff Lindsay [http://twitter.com/progrium/status/8521001762 a suggéré le nom] de RelMeAuth.
Le 2010-02-01 Tantek [http://tantek.com/2010/032/t5/modest-proposal-authentication-oauth-twitter-rel-me a présenté la base] et Jeff Lindsay [http://twitter.com/progrium/status/8521001762 a suggéré le nom] de RelMeAuth.


Dans une relance, Tantek [http://tantek.com/2010/032/t6/relmeauth-oauth-rel-me-auto-fallback-authentication suggérait le simple protocole qui suit] pour RelMeAuth :
Lors d'une relance, Tantek [http://tantek.com/2010/032/t6/relmeauth-oauth-rel-me-auto-fallback-authentication suggérait le simple protocole qui suit] pour RelMeAuth :


<blockquote cite="http://tantek.com/2010/032/t6/relmeauth-oauth-rel-me-auto-fallback-authentication"><p>
<blockquote cite="http://tantek.com/2010/032/t6/relmeauth-oauth-rel-me-auto-fallback-authentication"><p>
Line 200: Line 222:
* 2010-02-16 [http://www.google.com/buzz/dclinton/HeMv1AQTXS8/Envisioning-decentralized-replies-and#1266371138608000 Tantek Çelik] comment re: user interface
* 2010-02-16 [http://www.google.com/buzz/dclinton/HeMv1AQTXS8/Envisioning-decentralized-replies-and#1266371138608000 Tantek Çelik] comment re: user interface
* 2010-02-06 [http://aaronparecki.com/RelMeAuth Aaron Parecki] wiki page
* 2010-02-06 [http://aaronparecki.com/RelMeAuth Aaron Parecki] wiki page
== vendor specific sign in ==
Les méthodes commerciales suivantes spécifiques à la connexion ont réussi et sont bien plus utilisées que les efforts précédemment décrits d'identifé URL (par ex. OpenID)
http://hueniverse.com/wp-content/uploads/2009/09/Sign-in-with-Twitter.png
http://4.mshcdn.com/wp-content/uploads/2009/04/facebook-twitter-connect.gif
* Connexion avec Twitter
** 2009-04-16 [http://hueniverse.com/2009/04/introducing-sign-in-with-twitter-oauth-style-connect/ Introducing ‘Sign-in with Twitter’, OAuth-Style “Connect”]
** [https://dev.twitter.com/docs/auth/sign-twitter Sign in with Twitter developer home page]
** [https://dev.twitter.com/docs/sign-twitter-resources Sign in with Twitter Resources] (more/latest buttons)
* Connexion avec Facebook
** ...
Voir les articles les comparant/mettant en perspective :
* 2009-04-18 [http://mashable.com/2009/04/18/twitter-facebook-connect/ Facebook Connect vs. Sign in with Twitter: Fight!]
User-facing [[web-sign-in]] functionality (including "( Web sign-in )" button graphic) must be at least as simple, easy, and trustworthy as the these vendor specific sign in methods.


== en rapport ==
== en rapport ==

Latest revision as of 08:16, 30 June 2012

RelMeAuth est un standard ouvert proposé pour utiliser les liens rel-me vers les profils sur les services supportant OAuth pour l'authentification que ce soit via ces profils ou votre propre site.

RelMeAuth est la technologie derrière connexion-web.

support RelMeAuth

utilisateurs

Voir connexion web

Voici une explication plus technique :

Utilisez rel="me" sur votre site personnel, et saisissez votre site personnel comme votre adresse web sur les sites avec une connexion web (RelMeAuth).

Étapes :

1. Ajoutez des liens rel="me" à vos autres profils.

Ajoutez rel="me" aux liens provenant de votre page d'accueil personnelle vers vos différents profils sur d'autres services.

2. Éditez vos autres profils pour faire un lien retour vers votre site.

Éditez vos autres profils et réglez le champ "home page" ou "page d'accueil" ou "URL" vers votre site personnel.

Voici une [des sites de profil qui ont des champs URL et supportent rel-me].

3. Il n'y a pas d'étape 3. C'est terminé.

Désormais sur tout site qui utilise une connexion (connexion web) RelMeAuthNow (essayez par ex. le prototype RelMeAuth), saisissez simplement votre URL de site personnel, et ce code RelMeAuth du site vous connectera en vous authentifiant avec l'un des profils sociaux que vous avez reliés (par ex. Twitter).

exemples dans la jungle

page d'accueil simple

La page personnelle de Tantek http://tantek.com/ a (marquage simplifié)

<ul>
<li><a rel="me" href="http://twitter.com/t">Twitter: @t</a></li>
<li><a rel="me" href="http://identi.ca/t">identi.ca: t</a></li>
</ul>

utilisateurs avec des pages de contact séparées

Et si je préfère avoir une page de contact ou "à propos" séparée avec mes liens vers d'autres profils ?

Si vous préférez avoir une page de contact séparée qui lie vers vos autres profils, alors :

  1. ajoutez rel="me" au lien provenant de votre page d'accueil vers votre page de contact
  2. ajoutez rel="me" aux liens provenant de votre page contact vers ces autres profils


plus d'exemples dans la jungle

page contact séparée

La page d'accueil de Jeremy Keith http://adactio.com/ has (marquage simplifié)

<ul>
<li><a rel="me" href="/journal/">Journal</a></li>
<li><a rel="me" href="/contact/">Contact</a></li>
</ul>

et puis aussi :

http://adactio.com/journal/ a (marquage simplifié)

<ul>
<li><a rel="me" href="http://huffduffer.com/adactio/">Huffduffer</a></li>
<li><a rel="me" href="http://twitter.com/adactio/">Twitter</a></li>
<li><a rel="me" href="http://adactio.tumblr.com/">Tumblr</a></li>
<li><a rel="me" href="http://www.last.fm/user/adactio/">Last.fm</a></li>
<li><a rel="me" href="http://www.dopplr.com/traveller/adactio/public">Dopplr</a></li>
<li><a rel="me" href="http://www.vimeo.com/user196031">Vimeo</a></li>
<li><a rel="me" href="http://ffffound.com/home/adactio/found/">Ffffound</a></li>
<li><a rel="me" href="http://readernaut.com/adactio">Readernaut</a></li>
<li><a rel="me" href="http://97bottles.com/people/adactio/">97 Bottles</a></li>
</ul>

préférence d'authentification

Si vous avez une préférence spécifique parmi le(s) service(s) d'authentification, assurez-vous juste que vous listez les liens vers vos profils sur ces autres services dans l'ordre de préférence (sur votre page d'accueil ou votre page contact comme décrit au-dessus)

sites de profils

Faites-vous tourner un site avec des profils ?

N'importe quel site de réseau social ou site similaire ayant des pages de profils-utilisateur devrait :

  1. fournir une interface utilisateur à un utilisateur pour saisir et publier publiquement une URL vers sa page personnelle
  2. publier un lien visible avec rel="me" de la page du profil de l'utilisateur vers sa propre page personnelle

[plupart des sites font déjà cela].

sites d'authentification

Vous faites tourner un site avec des profils d'utilisateurs que vous voulez faire utiliser par vos utilisateurs pour se connecter sur d'autres sites ?

En plus de supporter rel-me comme décrit ci-dessus :

Tout site qui veut permettre aux utilisateurs de se connecter avec ses présentations provenant de ce site sur des sites tiers devrait :

  1. Supporter OAuth (même avec 2.0)
  2. Suivre les conventions de Twitter pour :
    • les chemins endpoint et autres détails de protocole
    • imiter l'interface utilisateur de Twitter pour le flux d'authentification (que ce soit sur le desktop ou le mobile - ils ont fait un travail remarquable)

Fournisseurs RelMeAuth

Les sites qui supportent à la fois rel-me et sont aussi des fournisseurs OAuth :

sites ayant besoin d'une connexion utilisateur

Avez-vous un site sur lequel vous voulez laisser les utilisateurs se connecter avec leurs propres identités ?

Tout site désirant laisser les utilisateurs se connecter avec leurs propres identités devrait :

  1. fournir une interface utilisateur pour que les utilisateurs saisissent ou choisissent leur identité en ligne préférée (par ex. leurs propres URLs)
  2. exécuter une authentification RelMeAuth comme décrit plus bas

comment ça marche

résumé algorithme

Résumé de l'algorithme de l'authentification RelMeAuth

  • input : une identité utilisateur (URL) pour s'authentifier
  • output : succès ou annulation authentification ou pas d'URLs authentifiables trouvées
  1. démarrer avec une URL d'identité utilisateur (par ex. provenant de l'IU, ou d'un cookie provenant des précédentes connexions, etc.)
  2. itérer à travers les liens entrants rel-me sur l'URL de l'identité utilisateur (n'importe lesquelles des sous-pages locales rel-me si nécessaire)
    1. si
      1. une destination rel-me est trouvée (HTTP Get réussi, en suivant n'importe lesquelles des redirections)
      2. et des liens rel-me en retour vers l'URL identité de l'utilisateur
      3. et a un endpoint OAuth
      4. alors faire authentification OAuth
      5. si authentification réussie, c'est fini, l'utilisateur a été authentifié avec l'URL identité utilisateur, exit
      6. si elle est rejetée, l'utilisateur a annulé, alors annuler la totalité du processus d'authentification, exit
    2. continuer itération avec le prochain lien rel-me s'il y en a
  3. pas d'URLs authentifiables trouvées (que ce soit pas du tout, ou n'importe laquelle fournie comporte d'autres erreurs, 404, pas de réponse, pas de endpoint OAuth, autres erreurs OAuth)


algorithme détaillé

  • input: a user identity (URL) to authenticate
  • output: success or cancel authentication or no authenticatable URLs found
  1. start with a user identity URL (e.g from the UI, or from a cookie from previous login etc.)
  2. if the URL is an OAuth provider
  3. then try authenticating with it (we prefer the user's own site for auth)
    1. if it succeeds, exit
    2. if canceled, exit
    3. otherwise continue
  4. iterate through their outbound rel-me links on the user identity URL (first through direct rel-me links to external sites in order, then iterate through URLs deeper into the personal site in order, e.g. to a contacts page, and iterate through rel-me links from there to external sites in order, then the next breadth-first local rel-me page from the identity URL if necessary)
    1. if
      1. a rel-me destination is up (HTTP Get succeeded, following any redirects)
      2. and rel-me links back to the user identity URL
      3. and has OAuth endpoint
      4. then do OAuth authentication
      5. if authentication succeeded, you're done, the user has been been authenticated with the user identity URL, exit
      6. if it was rejected, the user canceled, thus cancel the entire authentication process, exit
    2. continue iteration with the next rel-me link if any
  5. no authenticatable URLs found (either none at all, or any provided had some other error, 404, no response, no OAuth endpoint, other OAuth error)


implémentations open source

Il existe quelques librairies opensource que les sites peuvent utiliser pour implémenter RelMeAuth de manière à ce que les utilisateurs puissent se connecter avec leurs propres identités.

Python

PHP

Ruby

  • IndieAuth par Aaron Parecki contient du code Ruby pour exécuter une authentification RelMeAuth authentication, mais actuellement intégré à l'intérieur du code indieauth.com en général
    • To Do : Séparer Ruby gem pour implémentation Ruby de RelMeAuth


problématiques

  • Comment trouvez-vous le endpoint OAuth pour n'importe quel site/service de profil utilisateur ? -Tantek
    • Utilisez le mécanisme de découverte OAuth 2.0 si c'est supporté
    • Utilisez une liste blanche de site fournisseur vers un endpoint OAuth
    • Essayez les chemins endpoint Twitter OAuth sur d'autres sites pour voir s'ils fonctionnent - en supposant que beaucoup de fournisseurs OAuth imiteront simplement l'exemple de Twitter comme suggéré.
      • Cette découverte par technique de convention fonctionnera par exemple sur :
  • How do you get an appID to use with any given site's OAuth? -Tantek
    • This appears to still be a manual process, per site, and thus a legitimate limitation of RelMeAuth in comparison to say OpenID.
      • Some services are supporting appkey/secret pair anonymous/anonymous for mobile/desktop apps already. Unsure how popular this is Singpolyma 13:51, 23 April 2010 (UTC)
  • OAuth is for authorization, and as such gives the site I'm ident asserting to access to my account on the id service. This is very bad. Suggested solution: use OpenID instead. Singpolyma 13:51, 23 April 2010 (UTC)
    • OAuth actually suggests granularity in access rather than blanket access (OAuth IETF draft, see Sec 4.8):

      When implementing this protocol, servers should consider the types of access resource owners may wish to grant clients, and should provide mechanisms to do so. Servers should also take care to ensure that resource owners understand the access they are granting, as well as any risks that may be involved.

      Thus for RelMeAuth purposes, the RelMeAuth "consumer"/library should ask merely for "authentication" rather than read, write, update, or delete access. One exception is the "share" scenario, where a site lets a user RelMeAuth login via another site (e.g. Twitter), and then provides a UI for the user to share from that site to Twitter - in that case request auth/read/write access granularity makes sense. Tantek 22:46, 26 April 2010 (UTC)
  • After authing with OAuth, how do you know what user it is that auth'd? OAuth specifically does not tell you that information... Singpolyma 13:54, 23 April 2010 (UTC)
    • Twitter provides user information via the OAuth token and their API, it is recommended that other OAuth providers follow this API convention while OAuth is evolved to provide to capability. Tantek 22:46, 26 April 2010 (UTC)

historique

Le 2010-02-01 Tantek a présenté la base et Jeff Lindsay a suggéré le nom de RelMeAuth.

Lors d'une relance, Tantek suggérait le simple protocole qui suit pour RelMeAuth :

RelMeAuth works for any #OAuth + rel-me site, and enables auto-fallback with use of alternate identities for authentication:

  1. user enters their site URL
  2. iterate through their outbound rel-me links
  3. if
    1. a rel-me destination is up, and
    2. rel-me links back to user's site, and
    3. has OAuth endpoint,
    then do OAuth authentication.

Thus user links to their RelMeAuth profiles in preference order, and authentication code tries them in order. e.g. Twitter, Identi.ca, ... etc.

Plus tard dans la soirée, Tantek, Jeff Lindsay, Paul Tarjan et d'autres ont discuté de RelMeAuth lors du microformats dîner à Mountain View et ensuite Jeff et Paul ont implémenté RelMeAuth dans une librairie open source Python lors du Hacker Dojo et l'ont discutée/testée sur IRC.

http://krijnhoetmer.nl/irc-logs/microformats/20100203

Moins de 24 heures pour passer du concept à l'implémentation opensource.

articles billets commentaires

vendor specific sign in

Les méthodes commerciales suivantes spécifiques à la connexion ont réussi et sont bien plus utilisées que les efforts précédemment décrits d'identifé URL (par ex. OpenID)

Sign-in-with-Twitter.png

facebook-twitter-connect.gif

Voir les articles les comparant/mettant en perspective :

User-facing web-sign-in functionality (including "( Web sign-in )" button graphic) must be at least as simple, easy, and trustworthy as the these vendor specific sign in methods.


en rapport