[OpenID] Proposal: SMTP service extension for Yadis discovery

David Fuelling sappenin at gmail.com
Tue Feb 6 03:47:32 UTC 2007

> -----Original Message-----
> From: Dmitry Shechtman [mailto:damnian at gmail.com]
> Subject: RE: Proposal: SMTP service extension for Yadis discovery
> > there's nothing wrong with transforming an email to
> > an OpenId Endpoint url (using the root domain of the email).
> That would require a rule for such a transform. Should it be
> http://example.com/bob@example.com? Or maybe http://example.com/~bob? So
> an explicit resolution protocol is required. Why not deploy a plain SMTP
> extension?

Three benefits to using Yadis (and OpenId extensions):

1.) We don't have to mess with MTA stuff (read: It's easier to do, better
for adoption, etc).
2.) OP's will already be deploying YADIS (or HTML-based rel links, which
could be used instead).
3.) Every site can have its own transform rule, since the transform rule can
be defined in the Yadis service doc.

On that last point, maybe our OpenId extension works as follows:

1.) Given an email (bob at example.com), take the domain of the email and treat
it as an OpenId Endpoint URL (http://example.com).  
2.) Perform OpenId discovery on this URL to get a Yadis service document.
3.) Look for a service type specified by the emailToOpenId transform
extension (maybe http://ext.openid.net/emailTransform or something better).
4.) If the service exists in the Yadis doc, then investigate its URI element
for some sort of replacement pointer (like ['username']) and use that
pointer to perform the transform.
So, for example.com, the Yadis service document might include the following

     	<!-- eMail to OpenId URL Transformation Service -->
     	<URI priority="1">http://example.org/[username]</URI>

Using the rule above, with the wildcard/replacement indicator specified by
our extension ('[username]'), we have an OpenId of 'http://example.com/bob'.

4b.) If the Service was defined as follows:

     	<!-- eMail to OpenId URL Transformation Service -->
     	<URI priority="1">http://example.org/~[username]</URI>

then the email address would map to 'http://example.com/~bob', and so forth.

More information about the general mailing list