Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

RFC 7565: The 'acct' URI Scheme

Date de publication du RFC : Mai 2015
Auteur(s) du RFC : P. Saint-Andre (Cisco System)
Chemin des normes
Réalisé dans le cadre du groupe de travail IETF appsawg
Première rédaction de cet article le 23 mai 2015


Hop, encore un nouveau plan d'URI, le plan acct: (pour account) qui permet de désigner les informations qu'on peut récupérer sur un compte utilisateur. Désormais, acct:stephane@seenthis.net désignera donc mon compte à SeenThis.

Ne vous fiez pas à la ressemblance syntaxique avec les adresses de courrier : la syntaxe est la même (nom-du-compte@nom-du-service) mais les URI acct: sont indépendants du protocole d'accès. Dans l'exemple plus haut, SeenThis ne fournit pas de service de courrier, mais cela ne change rien à l'URI.

Le premier (et pour l'instant quasi-unique) demandeur de ces URI est le protocole WebFinger (RFC 7033). WebFinger permet d'accéder à des informations, via un protocole REST, en utilisant comme identificateur un URI qui, en pratique, est souvent un URI acct:. La version initiale de WebFinger utilisait uniquement des adresses de courrier électronique. Avant le plan acct:, les plans les plus proches identifiaient toujours un protocole particulier : le courrier pour les URI mailto: (RFC 6068) ou XMPP pour les xmpp:... du RFC 5122. Après moultes discussions au sein du groupe de travail sur WebFinger entre les partisans de l'ancien système (adresses de courrier seulement) et ceux d'un nouveau, fondé sur les URI (eux-même divisés entre amateurs de mailto: et fanas de http:), le choix a été fait de créer ce nouveau plan. Comme indiqué, il a l'avantage de ne pas supposer l'existence d'un protocole particulier. Ainsi, mon compte Twitter est désormais acct:bortzmeyer@twitter.com et il n'implique pas que Twitter fournisse du courrier ou de la messagerie instantanée ou quoi que ce soit d'autre.

À noter qu'un URI acct: identifie un compte, que son titulaire soit un humain ou une organisation ou un bot.

La section 4 fournit la définition rigoureuse de ces nouveaux URI (la syntaxe formelle étant repoussée en section 7). Elle rappelle qu'ils servent à l'identification et pas à l'interaction (RFC 3986, section 1.2.2). La partie gauche (à gauche du @) est le nom du compte auprès d'un fournisseur quelconque et la partie droite est un nom de domaine de ce fournisseur. Donc, acct:foobar@status.example.net, acct:user@example.com ou acct:hamlet@dk sont tous des URI valides. Si un client WebFinger cherche de l'information sur le premier de ces URI, il fera une requête HTTP à status.example.net :

GET /.well-known/webfinger?resource=acct%3Afoobar%40status.example.net HTTP/1.1

Si le nom du compte est une adresse de courrier (ce qui est fréquent sur le Web d'aujourd'hui), il faudra convertir le @ en caractères pour-cent. Par exemple, si le compte juliet@capulet.example existe chez le fournisseur shoppingsite.example, l'URI sera acct:juliet%40capulet.example@shoppingsite.example. Et si on prend mon compte au RIPE-NCC, bortzmeyer+ripe@nic.fr, l'URI sera acct:bortzmeyer%2Bripe%40nic.fr@ripe.net. C'est cet URI qui sera mis, par exemple, dans les requêtes WebFinger.

La section 5 du RFC traite des problèmes de sécurité. On ne met évidemment dans une réponse WebFinger que ce qu'on veut bien indiquer, surtout si le client HTTP n'est pas authentifié. Mais il existe un risque plus subtil : même si le client n'arrive pas à accéder aux informations derrière l'URI acct:, la seule existence de cet URI peut indiquer que le compte existe et cela peut donc être utile aux spammeurs et autres nuisibles. Bref, même si les acct: ne sont que des URI, que des identificateurs, ils peuvent en dire trop.

La section 6, elle, se penche sur l'internationalisation. Les URI acct: sont des URI comme les autres (RFC 3986) et peuvent donc contenir n'importe quel caractère Unicode. Il faut simplement qu'ils soient encodés en UTF-8 puis surencodés en pour-cent. Ainsi, un compte stéphane sur le service example.com pourra être représenté par acct:st%C3%A9phane@example.com. Quelques restrictions toutefois :

  • Le nom de compte est limité aux caractères autorisés par le RFC 8264, dans la classe IdentifierClass.
  • Le nom de domaine après le @ est limité aux caractères IDN autorisés dans le RFC 5892, et encodé en Punycode. Ainsi, le compte stéphane sur le service académie-française.fr sera acct:st%C3%A9phane@xn--acadmie-franaise-npb1a.fr.

La section 7 de notre RFC contient le formulaire d'enregistrement du nouveau plan (selon la procédure du RFC 4395), qui inclut la syntaxe formelle de ces URI, en ABNF. acct: est donc désormais dans le registre officiel des URI.

Si vous voulez voir des exemples réels, le mieux est de regarder le monde WebFinger, par exemple les exemples dans mon article sur le RFC 7033.

L'importance de ce plan d'URL acct: avait été décrite dans un article d'Eran Hammer de 2009 (c'est long, la normalisation).


Téléchargez le RFC 7565

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)