OpenID, YADIS and Directed Identity

Michael Graves mgraves at verisign.com
Sun Feb 12 15:48:51 UTC 2006


I post this at the risk of having Johannes send out a special ops team to hunt 
me down for throwing out issues like this at the (pregnant) point we're at with 
YADIS...

In recent discussions about URL-based identity -- particular with a couple of 
people from Microsoft who were (predictably) holding Kim Cameron's 
"Seven Laws" over my head, it has become clear that while directed identities 
are supportable in OpenID, a simple change in the semantics would allow elegant 
integration of directed identities into OpenID servers and relying parties. 
Also, I should note that Dick Hardt of Sxip correctly identifies this as a 
deficiency in the OpenID/YADIS/LID mix right now.

I am not suggesting we stop and change anything in YADIS. Repeat, no changes in 
YADIS. However, I would like this group to be thinking about how these proposed 
changes might be integrated.

Directed Identity
===================
Just a quick summary of the issue for any who might not be familiar with the 
term (you're familiar with concept):

If we think of a blog URL as being the *omnidirectional* identitier -- it is 
how the blog is identifieed to all -- sometimes we want to use a *directional* 
identifier -- an ID that is specific to a relationship. For example, I may have 
an ID that Amazon.com knows me by, and another different ID that Expedia.com 
knows me by. This is useful for me if I'm concerned about my privacy and want 
to prevent *correlation*, a case in which Amazon and Expedia compare notes and 
can each glean additional information about me by filling in the pieces the 
other is missing.

For URL-based identity systems, then, directed identities are URLs that are 
created on a per-instance basis just for a particular trust relationship.

Directed IDs *can* and do work with OpenID right now -- setting aside for the 
moment that correlation is of limited value with OpenID since OpenID doesn't 
support profile exchange (the correlated info would have to be gathered 
separately). If I want to have, say Zooomr.com know me by a *dedicated* ID, I 
could go to a capable identity server, and manufacture an alias. For instance, 
if my identity server is "idsrus.com", I might add an alias for my "normal" 
account ("mgraves.idsrus.com") that is just known between Zooomr and I 
("343992.idrus.com").

If I create this "alias" ahead of time, everything works fine. When I go to 
Zooomr.com, I login as "343992.idrus.com". Voila! Directed identity.

So the OpenID/YADIS/LID mix *does* support directed identity, it just isn't 
very convenient for the user: the user must prepare ahead of time, and create 
the required alias that must be remembered or copy/pasted at the relying party, 
instead of the normal URL. Not very elegant in terms of ergonomics, that.

Sxip has a much more elegant approach to this: Login with your "homesite" on 
the front end of the process, and the identity server will return the selected 
identity for this user as an output of the process. 

In my example above, then, if we were to use the Sxip idiom, I would go to 
Zoomr and login in as "idsrus.com", which isn't really logging in, but simply 
redirecting to my identity server, where I can authenicate if needed, but then 
also manufacture an alias for "directed identity" on the fly.  When I click 
"Login" at Zooomr.com and it redirects me to my identity server, I am presented 
with a choice: login using an *omnidirectional* ID (say my blog URL), or a 
*directed* ID that it will make up right then and there and register as an 
alias.

What would be need to support this? The only change that I can think of would 
be that the relying party would not require the "input" login URL to be the 
same as the "output" login URL. If I can start by entering "idsrus.com", then 
choose one of a number of personae that I control, including a one-time persona 
that I made up on the fly just for this login, as long as the OpenID (or insert 
your favorite protocol here) consumer evaluates the *output* URL I think it all 
works out. As it is, OpenID is expecting (cryptographically) a match on the 
input URL.

As things start to converge here this spring, I think its important to think 
ahead a little bit as to how this group will address the need for *directed 
identity*. Technically, we can assert that its supported, now, via preparation 
and copy/paste. But if this is indeed a fundamental requirement (as per 
Cameron's Fourth Law of Identity), it would be good to investigate what it 
would take to support directed identities in an elegant way.

I read a comment from Johannes a while ago mentioning that he was already 
working on directed identity in LID 2.0. Maybe he can comment here on how his 
designs will unfold.

Thoughts?

-Mike





More information about the yadis mailing list