Yadis est un protocole ouvert qui permet à une application de connaitre facilement quels sont les identifiants d’authentification (OpenID, ou autres XRIs) associés à un URI. Sam Ruby en fait un bon résumé dans un de ses billets.
Un fichier Yadis n’est donc qu’un simple fichier XML qui liste plusieurs XRI associés à un URI, lorsqu’on tente de s’identifier avec cet URI. Le mien ressemble à cela (j’ai enlevé des bouts de code pour le rendre plus lisible) :
<xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"
xmlns:openid="http://openid.net/xmlns/1.0">
<XRD>
<!-- Si le consumer supporte OpenID 2.0 -->
<Service priority="10">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<URI>http://www.myopenid.com/server</URI>
<LocalID>http://remi.myopenid.com/</LocalID>
</Service>
<!-- Si le consumer supporte OpenID 1.1 -->
<Service priority="20">
<Type>http://openid.net/signon/1.1</Type>
<URI>http://www.myopenid.com/server</URI>
<openid:Delegate>http://remi.myopenid.com/</openid:Delegate>
</Service>
<!-- Sinon, on utilise OpenID 1.0 -->
<Service priority="30">
<Type>http://openid.net/signon/1.0</Type>
<URI>http://www.myopenid.com/server</URI>
<openid:Delegate>http://remi.myopenid.com/</openid:Delegate>
</Service>
</XRD>
</xrds:XRDS>
Lorsque je tente de m’identifier avec « remiprevost.com », l’application (en jargon OpenID, il s’agit d’un consumer), si elle supporte Yadis, va analyser et choisir quelle identité à utiliser selon ses capacités techniques. Par exemple, si une application ne supporte pas OpenID 2.0, elle ira à la prochaine identité en ordre de priorité.
Dans mon billet précédent, je mentionnais qu’il était possible, si votre fournisseur OpenID le permettait, de fournir un fichier Yadis aux applications qui tentait d’obtenir une authentification sur votre propre URI. myOpenID, par exemple, génère automatiquement ce fichier. Le mien est ici.
Pour servir un fichier Yadis aux applications lors d’une tentative d’authentification, je vous renvoie au même billet de Sam Ruby qui explique sa technique utilisant uniquement un fichier .htaccess d’Apache.
Comme le mentionne Ruby, même si le fichier Yadis remplace le code HTML à insérer, il est tout de même préférable de laisse ce code HTML, pour les applications qui ne supportent pas le protocole Yadis.
Aucun commentaire n'a été posté pour ce billet.