OpenID倡议:别再创建新的用户名和密码

原文作者:Jeff Atwood

随着Stack Overflow开发工作的逐步深入,我们不可回避地碰到了这个问题:我们需要让用户登录,即使网络上用户名/密码已经泛滥成灾,我们也只能随波逐流。我已经有50对用户名/密码了。我根本记不住它们。但是,为StackOverflow.com再增加一对又何妨呢?

在我的朋友Jon Galloway的力劝之下,我打算看一看OpenID。OpenID的目标就是要解决这个“登录爆炸”的问题:

有了OpenID,你就不必在不同的网站上分别创建用户名了——它能让你的上网体验变得更加简易。

你需要选择一个最符合你要求的OpenID供应商,最重要的是,你要信任它。并且,不管你选择哪个供应商,你都可以一直保留你的OpenID。最最美妙的是,OpenID技术并不是私有的,而且它完全免费。

秉着“少说、多做”的精神,接下来,我将解释OpenID的工作原理。

让我们假设你第一次访问某个新的网站。在随意浏览之后,你最终想做一些匿名访客没有权限做的事情。于是,你会被带到一个“创建新账号”之类的页面。我相信,每个人都碰到过这种情况。但是,如果这个网站支持OpenID,你就可以跳过创建新账号所需的那些繁琐步骤。在这种情况下,你只须输入你的OpenID:

OpenID倡议:别再创建新的用户名和密码

 

为了简单起见,假设你已经有了一个OpenID账号。坦率地说,这种假设并不过分。事实上,所有美国在线和雅虎的用户都已经有了一个OpenID账号(即使他们自己还没意识到这一点)。

从技术上来说,OpenID其实就是URL。下面是几个例子:

  • http://claimid.com/yourname
  • http://yourname.signon.com
  • https://me.yahoo.com/yourname

这里有一个可用性问题:与记住Email地址比起来,你必须记住相对完整的OpenID URL,而且各个OpenID供应商定义的格式还各不相同。面对这个问题,尽管也有巧妙的方法(我会在后面提到),但眼下的ID选择控件也不赖,它提供了相当友好的界面来协助用户完成OpenID URL的构建。

OpenID倡议:别再创建新的用户名和密码

 

如果你输入的URL是正确的,你会被重定向到OpenID供应商的网站,然后你在那儿输入你唯一的一对用户名/密码。

OpenID倡议:别再创建新的用户名和密码

 

你会看到提示,要求将你当前访问的这个网站加入到供应商的“可信网站”列表里,并与你的账号绑定。一旦你做了这一步,下次再访问这个网站的时候你就可以省去所有这些步骤了。

OpenID倡议:别再创建新的用户名和密码

 

最后,你总算完成了首次登录!

OpenID倡议:别再创建新的用户名和密码

 

如果整个过程看起来挺费周折的——注意,我还没算上创建最初的ClaimID账号的时间呢——没错,我不想骗你,你需做的事情确实更多了。但是,值得注意的是:

  • 在OpenID供应商网站上创建账号的成本最终可以分摊到几十个能接受OpenID的网站上,因为你将使用同一对用户名/密码在这些网站上登录。
  • 对于一个特定的网站,在第一次使用OpenID登录时稍显麻烦,但后续的登录只需一次点击就可完成(假设你在第一次登录时已将这个网站加入了“可信网站”列表)。

OpenID并不完美,但跟必须为50个不同的网站记住50个不同的用户名和密码比起来,它已经是一个很大的进步了。你难道不这么认为吗?我认为它可以与“无阻力沟通”方面的冠军(匿名评论框)一比高下。匿名评论框通常要求填写3块内容:用户名、URL和Email。而OpenID只要求一个。如果你选择的供应商巧妙地支持了“属性交换”,你的URL和Email会被代理、自动从供应商的配置中转回到你所访问的网站。

这就引出了OpenID的另一个问题。你使用OpenID的体验如何,很大程度上取决于你所选择的供应商。比如,雅虎就很聪明,即使你只输入了“yahoo.com”作为OpenID URL,它照样能工作。(假设你已经为你的雅虎账号设置了OpenID的支持。)供应商还可以提供一些独特的功能,使自己有别于其他供应商。例如,SignOn.com允许使用Windows上的信息卡,这样的话,你甚至不用输入任何密码就可以登录一个网站。当然,你需要做一些准备工作,也就是要预先把你的供应商账号与信息卡关联起来。我试过了,正如广告上所说的那样,这种方法行得通。

在试验过OpenID之后,我的感觉还是相当正面的。不过,摆在OpenID面前的也不尽是美酒与鲜花。Stefan Brands经过详尽的论证,他在“The Problem(s) with OpenID”一文中指出了OpenID的一些潜在的大问题:

  • 钓鱼。一个恶意网站可能访问你提供的OpenID URL,监视登录表单,然后窃取你的用户名和密码。然而,如果你选择的是一个优质的OpenID供应商,他们会使用SSL和高级证书,于是你有理由相信你不会被愚弄。雅虎还为OpenID登录提供了图片水印,以此作为反钓鱼的一种手段。
  • 隐私。你选择的OpenID供应商知道你通过它的账号访问的所有网站。这是理所当然的。但愿你选择的供应商是信得过的。
  • 风险高度集中。如果你的OpenID账号被人盗用了,你用它登录过的所有网站全都会遭殃。跟Email账号被盗用比起来——很多(大部分?)网站允许你使用Email来重置密码——我不确定OpenID账号被盗用的危险是不是更大。
  • 信任缺失。OpenID供应商不做任何身份认证。它有点像那些你可以在网上轻易获取的“标识卡”,跟你的驾驶证比起来(它可是由权威的当地政府部门颁发的),OpenID在标示身份方面毫无用处。假如有人创建了一个假的OpenID账号来冒充史蒂夫•乔布斯,或者OpenID供应商本身就是个冒牌货,结果会怎么样呢?
  • 额外的复杂。现在,登录过程会牵涉两个完全不同的实体:一个是你试图访问的网站,另一个是OpenID供应商的网站。你必须理解两者之间的这种关系,才能排解你在登录过程中碰到的任何问题。另外,OpenID供应商的服务必须保持稳定运转,否则你根本无法完成登录。
  • 接受度不一。对于美国在线、雅虎、Six Apart和Technorati这些公司来说,他们很容易就成为了OpenID的供应商,但如果很少人去用OpenID,这又有什么意义呢?正如Dare Obasanjo在“A Proposal for Social Network Interoperability via OpenID”(通过OpenID实现社交网络交互性的一个提议)一文中指出的那样,接受竞争对手的账号缺乏经济方面的动机,而推动用户在自己的网站上创建账号却有大量的“油水”。从目前来看,OpenID主要是由一些小型应用和网站来推动的,因为它们的业务没有几百万美元这么大的诱惑。

正如我前面所说的,我觉得这些诟病中的大部分都可以通过选择一个值得信赖的优质OpenID供应商来避免。特别是,你选择的供应商须使用SSL。既然这是一个开放的生态系统,我希望更多有良好信誉、可靠的OpenID供应商能够挺身而出。考虑一下它的优点吧:作为应用程序的开发者,你不再需要顾及如何存储密码了!这是一个巨大的好处,因为你要尽可能避免存储用户的密码。你一定要听我这句话!

我还发现了Jan Miksovsky在2007年8月发表的一篇文章,题为“OpenID:Great idea, bewildering consumer experience”(OpenID的想法不错,但用户体验让人很困惑)。他在文中痛快淋漓地批判了OpenID的用户体验:

这究竟是为啥?就为了让我不必选择一对用户名和密码吗?尽管那很无聊,但也不算太难吧!记住一个随意的用户名确实挺麻烦的,但只要允许Email地址用作ID几乎就可以解决所有的问题。随着越来越多的网站允许Email地址作为ID来登录,用户对OpenID的需求就没那么迫切了。

为了共享ID的一点边际效益,一个理智的运营商会愿意折磨他们的用户吗?至少在眼下,那是无法想象的。我看到很多人宣称,只要像谷歌这样的大佬支持一下OpenID,问题便会迎刃而解。遗憾的是,不管公司规模是大是小,他们都承受不起用户的流失。

大多数服务运营商会尽量把选择权留给用户——既支持私有ID,又支持OpenID——但对用户来说,这却是一个讨厌的经济命题:要么在令人费解的流程里一次性折腾30分钟,要么在每一个网站上都花两分钟快速过一遍熟悉的流程(他们以前已经做过无数次了)——人们都很忙,一般总是会选择自己熟悉的方法。我敢打赌,大部分人会继续使用私有ID——赌什么都行!这将进一步延迟采纳OpenID可能带来的网络效应。

在Jan Miksovsky抛出的观点中,最引人注目的也许是这个:让用户把自己与一个随意的URL(而不是Email地址)关联在一起,这是有点古怪的!在今天的试验中,我也确实看到了一些网站不修边幅的情况。但我想说的是,自从Jan当初研究了OpenID以来,OpenID的用户体验已经有了提升。这让人很受鼓舞!

我知道,OpenID远不是一个理想的解决方案。但是在眼下,“每个网站都有单独的登录账号”的问题已经非常严重,以致于我愿意接受一些折中方案,以免情况继续恶化下去。我绝不可能把我的银行账号与OpenID绑定。但是,还有很多其他的网站,我不需要它们达到银行那样的安全级别,而我使用它们的频率远远高于我的银行账号。要记住所有这些网站上的登录账号——一旦密码忘记了,我的Email收件箱就成了事实上的集合点和安全通道——所有这些痛苦累加起来,是巨大的、实实在在的!

如果你是一位软件开发者、你在做一个需要用户登录的应用程序,请考虑采用OpenID,而不是让用户创建新的用户名/密码来继续玷污这个世界。我也鼓励你以用户的身份去试验一下OpenID:创建一个OpenID账号,然后用它去登录某个支持OpenID的网站(比如StackOverflow.com)。如果你不喜欢这种体验,或者如果你在我前面列出的批判中同意其中的一点(或者更多),请想一想:我们怎么一起来解决呢?对于“登录爆炸”问题,我们急切地需要一个解决方案。但是在眼下,我看到的唯一有希望的只有OpenID(尽管它饱受非议)。

如果我们不能让OpenID至少应用到一些低价值的一般性网站上,我们对解决“登录爆炸”问题还能抱有什么希望呢?

 

推荐阅读关于网络密码的可怕真相

 

你可能感兴趣的:(open)