Yadis/XRDS Service Element URI Question

Drummond Reed drummond.reed at cordance.net
Mon Feb 12 08:06:03 UTC 2007


With regard to the URI template approach, is there a reason your ETT spec
doesn't use the IETF Internet Draft for URI Templates?


It seems like this would be a good fit.


-----Original Message-----
From: yadis-bounces at lists.danga.com [mailto:yadis-bounces at lists.danga.com]
On Behalf Of David Fuelling
Sent: Sunday, February 11, 2007 7:36 PM
To: 'Johannes Ernst'
Cc: yadis at lists.danga.com
Subject: RE: Yadis/XRDS Service Element URI Question

> -----Original Message-----
> From: Johannes Ernst [mailto:jernst+openid.net at netmesh.us]
> Sent: Sunday, February 11, 2007 1:53 PM
> To: David Fuelling
> Cc: yadis at lists.danga.com; specs at openid.net; general at openid.net
> Subject: Re: Yadis/XRDS Service Element URI Question
> Can you explain what you are trying to accomplish? This particular
> problem looks like you should be defining a different XRDS file for
> each user at example.com and fill in their user name?

So, at the highest level, I'm trying to create a formalized specification
that allows an OpenId end-user to enter an email address at an RP, such that
the RP can map that email address to an OpenId URL (either a claimed
Identifier, or an OP Url).

To do that in a flexible way (i.e., sites are free to define their own
mapping structures), I would like to advertise domain-wide mapping
instructions (called URL Templates) in the Yadis document that gets returned
when an RP does discovery on the root of a given domain.

In a nutshell, my spec works as follows:

1.) Enter email address into RP.
2.) RP normalizes the email address (per this spec[1]) and figures out the
root domain of the email.  
3.) RP performs discovery (defined by [1]) on the root domain, and gets an
XRDS document (via Yadis).
4.) That XRDS doc advertises various site-wide services for the IdP/Email
5.) One of these services is an Email Address Transform Template (basically,
a URI template) that can be used to transform an email address into an
OpenID URL (either a claimed Identifier or an OP endpoint).

So, before an RP can get to an individual user's XRDS doc, it first needs to
understand what the domain-wide policy is wrt to mapping email addresses to
URL's (if any).


> On Feb 10, 2007, at 10:26, David Fuelling wrote:
> > Hey All,
> >
> > I'm working on a draft OpenId 2.0 extension [1] and am looking for
> > guidance
> > on how to define a Yadis Service Element that includes a URI Template
> > (instead of a real URI).
> >
> > At first, I thought that the following would be ok:
> >
> > <Service xmlns="xri://$xrd*($v*2.0)">
> >   <Type>http://openid.net/srv/oeat/1.0/ett</Type>
> >   <URI>https://{username}.example.com/</URI>
> > </Service>
> >
> > However, 'https://{username}.example.com/' is not a valid URI,
> > since the '{'
> > and '}' characters are reserved per the URI specification.
> >
> > So, should I simply "percent encode" the URI above to be
> > 'https://%7Busername%7D.example.com/', or should I define a new
> > Service
> > Element child, like the following:
> >
> > <Service xmlns="xri://$xrd*($v*2.0)">
> >   <Type>http://openid.net/srv/oeat/1.0/ett</Type>
> >   <TemplateURI>https://{username}.example.com/</TemplateURI >
> > </Service>
> >
> > Does Yadis/XRDS require the presence of a URI child in a service
> > element?
> > Is it legal to define new children elements?  Is that advisable?
> >
> > Thanks!
> >
> > David
> >
> > [1]
> > http://www.sappenin.com/openid/ext/oet/openid-email-transform-
> > extension-1_0.
> > html

More information about the yadis mailing list