What happened was, I got an invite to Poetica, the new startup by Good Internet People Blaine and Maureen. (Poetica has a strong central idea and is aesthetically a treat.) The login experience was unlike anything I’d seen.
The screen had just one blank space: “Type your email address.” So I picked my address at our textuality.com family domain, where mail happens to go through Google apps.
The next thing I saw was the approval screen from Google saying “OK to use your identity to log into Poetica?” Then there I was, signed-in and seeing the new-user experience. Very, very slick; and of course no passwords involved. Go there, try it yourself, even if you don’t have a Poetica account; put in a few email addresses and watch what happens.
So I asked Blaine how it’d guessed which Identity Provider (IDP) and he said “MX record. But we try lots of other things too.” He listed a few, then wrote Fixing Sign-in, where he digs a little deeper.
So, I thought about this, and decided that:
This is good behavior and should be encouraged;
in fact, it should be offered as a service,
with an open-source implementation if anyone doesn’t want to rely on the service,
and should be protocol-independent, so it’ll work with Persona and SAML and OpenID and whatever comes next,
and it should let humans drop by and set the IDP for any email address they can prove they own,
and the code would be pretty easy to write for anyone comfortable with DNS and OpenID and HTTP and WebFinger and JSON/XML wrangling,
but maybe a little boring, so the people who are qualified wouldn’t bother, and the people who aren’t might find it scary.
So I think I’ll write it. I went and bought findIDP.com/.net/.org. I bounced the idea off Blaine and he didn’t think it was crazy. I don’t think it’ll be expensive to run; but if it is, I can probably get Google or the OpenID foundation or someone to cough up some dough, and who knows, maybe you could run ads on it.
Also I’m a little bored with client-side Java and server-side Ruby; feel like trying out some new technologies.