OpenID和Email
什么是OpenID?
OpenID就是一套以用户为中心的分散式身份验证系统,用户只需要注册获取OpenID之后,就可以凭借此OpenID帐号在多个支持OpenID的网站之间自由登录使用,而不需要每上一个网站都需要注册帐号。
如何使用OpenID?
我用一个简单的OpenID的使用实例来理解OpenID
- 注册OpenID,找到一个OpenID服务网站(当然这个服务网站可以自己建立),比如www.mysceond.name进行注册,我的用户名是dancewithnet,这个时候我获取了我的OpenID是http://dancewithnet.mysceond.name(如果没有自己的域名,可以直接使用这个网址座位OpenID)
- 在自己网站http://dancewithnet.com的<head></head>之间加上
<link rel="openid.server" href="http://mysecond.name/openidserver.aspx"> <link rel="openid.delegate" href="http://dancewithnet.mysecond.name/">这样就可以使用我自己的网址http://dancewithnet.com作为我的OpenID了
- 访问支持OpenID的应用网站www.zooomr.com,在登录处输入http://dancewithnet.com,确定后网页跳转到www.mysceond.name的登录页面,我输入用户名密码后确定,网页又跳回www.zooomr.com,这样我就登录zooomr.com了(当然还需要填写一下zooomr.com的专有信息,但是已经不需要注册填写用户名和密码了)。如果我在刚才从zooomr.com跳到www.mysecond.name进行验证时,我选上了记住用户名和密码,那么以后就可以直接在www.zooomr.com输入http://dancewithnet.com,无需再到mysceond.com验证,就可以直接登录。
- 以此类推,我可以只用http://dancewithnet.com这个OpenID和我在mysecond.name注册的用户名和密码来访问其他的支持OpenID的应用网站www.livejournal.com,openprofile.net等等。
OpenID的好处
- 一处注册,到处通行,同时也是这些支持OpenID的网站一起共享用户,是双赢。这样解决了访问多个站点频繁注册带来多个用户名和多个密码的烦恼,也解决了害怕某些不信任网站获取自己密码信息的担心,因为初始的OpenID的注册可以选择信任的服务网站。
- 密码永不丢失?忘记密码时,可以采用传统的方法取回密码(目前www.mysecond.name似乎不支持,他支持后面的非传统的方法),比如通过Email,但是还有更简单的是可以在www.mysecond.com重新申请一个dancewithnet1的帐号,然后重新修改一下dancewithnet.com首页的head里关联内容,我一样可以用http://dancewithnet.com这个ID来访问www.zooomr.com,我也可以到其他的OpenID服务网站,比如www.openid.cn,去注册一个dancewithnet.openid.cn的OpenID,然后修改dancewithnet.com首页的head部分的关联代码,我依旧可以用http://dancewithnet.com来访问我以前访问过的网站
- OpenID是网址(URI,URL),可以和个人网站、博客等等网址统一起来,具有唯一性和可识别性,对个人来讲是非常容易记忆的。Spaces.live.com,blog.163.com等都给用户提供了个性网址,虽然现在可能不能作为OpenID,但是这无疑是一个巨大的潜在用户群,况且Microsoft、Digg等等都宣布将支持OpenID。
如果Email作为OpenID
技术上我没有仔细考虑过,但是我想既然URI都可以Open起来,Email也应该可以,搞不好原理都可以是一样的。如果不可以,应该不是技术的问题,而是商业策略的问题,就像QQ不愿意互联互通一样。所以我还是认为Email才是OpenID的最好选择:
Email有强大的用户群,也更容易让人接受,一旦可以变成OpenID,那么就相当于我们现在已经有了很多大型的像Google,Yahoo,Microsoft、163这样的分散的值得信任的ID服务站点,这是用网址作为OpenID所不能比拟的。拥有个人域名和个人网站的毕竟是少数,即使博客盛行且继续发展都暂时不能改变这个现实,所以OpenID那种密码永不丢失的优点只能服务少数人。所以类似邮件服务网站那样的值得信任的OpenID服务网站是大量需要的。只有普及性的使用,OpenID的理念才会真正的深入人心,并且改善我们的网络生活。
参考和延伸阅读
- [1]OpenID简介
- [2]关于OPENID的单点登陆协议
- [3]Passport与openID

openID,是很不错。以后都加上openId的支持。呵呵。
RE一直在搞她…..搞得可爽了….呵呵
其实用URI和EMAIL还有一个很大的差别就是
用户公开URI是利于自己的传播.
而EMAIL的公开,则上恶梦的开始…..
上面那个是我说的……. -_-|||
每人一个Email可以在长尾市场实现,但是每人一个URI目前看来很难。Email对于URI有先天优势。
一个普通人的Email公开没有想象中那么大的恶劣影响,毕竟现在主流的邮件服务商对spam做的还是不错的,另外可以进行一些手动设置拒绝、投诉啥的。
另外就是Email仅仅是ID而已,应用网站可以仅显示的是用户的昵称和以及URI等等信息,一样可以传播URI,减少Email被公开的机会,甚至可以通过一些协议要求支持OpenID的应用站点不能记录用户的Email。
Email address is also a URL.
In OpenID spec 2.0, it will be supported too.
哈哈,好消息,一旦普及,将改变我们的生活。
openid怎么获取用户的个人信息,比如email,nickname等,这个是做为扩展功能,是不是各个openid提供商的实现不一样?
http://code.google.com/p/openid4java/wiki/AttributeExchangeHowTo
这里有一篇讲属性交换的,我用openid4java去取myopenid.com上面的email没有回应,难道这个只是openid4java自己定的规范?
AttributeExchange不是OpenID4Java独有的,而是OpenID spec定义的。
我知道不是openid4java独有的,其实我想问的是
http://schema.openid.net/contact/email
schema是不是规范
[...] 介绍Openid的,比较详细,有联想。 [...]
这里有一篇讲属性交换的,我用openid4java去取myopenid.com上面的email没有回应,难道这个只是openid4java自己定的规范?
你可以用SRegHowTo,
来替代其中的属性交换,至于为什么我也不知道该怎么解释,我只知道你用 SRegHowTo 所提及的方法就能得到 myopenid.com 上的 emial 等属性。
查看它的示例 samples/consumer-servlet (这里有部署了它的演示: http://openid.net.cn/consumer-servlet/ )。