当前位置

Authentication War

昨天读到了一条消息,Yahoo 刚刚发布了基于 Web 认证 Yahoo! ID 的服务——BBAuth。现在加上微软的 LiveID,Google 的 Account,三个世界上最大的 Web 服务提供商,或者也可以说三个全球知名度最高的免费邮件提供商,现在开始了一场"Web认证之战"。

当我 2005 年开始设计 eyou.com 的 passport 机制的时候,当时就考虑到可以开放我们的服务,鼓励第三方开发人员来基于 eyou.com 的 passport 创建应用。甚至还提出了把这个 passport 网络扩展到我们部署在 CERNET 内所有的邮件服务器上。不过现在 eyou 已经专注在"占座"上,我也没有机会去实现这个疯狂的念头

拥有用户的认证信息对于有责任心的厂商而言是一个很不轻松的负担——你必须承担起安全存储它们的任务。提供 HTTPS 连接,雇佣可靠的员工来维护数据库,防御黑客的攻击...。另一方面,吸引用户来你的网站注册又是如此困难,甚至认证邮箱现在从技术上因为 SPAM 防御的因素也越来越困难。因此对于创业网站来说,LiveID,Google Account,BBAuth 这种服务就很有吸引力,你无需再关心怎样吸引用户在你这里注册,而专注在自己的核心竞争力上。

当然事情远远不是我上面所宣称的那般美妙。在 BBAuth 之前,我就已经尝试利用 LiveID 或 Google Account 的 API 来写个测试程序,结果发现目前为止还是困难重重。微软 LiveID Web 版本的 API 要到 2007 年才发布(Client 版本则看起来今年能发布,从这件小事可以看出微软在 Web 服务竞争中的尴尬局面),而且迄今还没有一个明确的关于此服务是否收费的政策。要知道如果加入 Passport (LiveID 的前一个版本)的话,每年的年费至少上万美元;虽然在 Google/Yahoo! 的竞争压力下它应该会包括免费的服务,但如果现在就计划把服务依赖于 LiveID 则必须承担风险。Google Account API 倒是非常简单,我很容易找到了一个 PHP 的例子然后修改了一下就通过了测试,但现在可用的服务仅限于 Google Calendar!就是说如果一个 Google Account 没有注册 Google Calendar 服务,那么我的应用可以确认一个人通过了 Google 的口令认证,但我无法获得这个人的邮件地址!

Google Account 服务包括两个步骤(Yahoo BBAuth 同样如此,估计 LiveID 也差不多):认证和授权。校验邮件地址/口令是否匹配属于认证过程,第三方是否可以获得用户的服务信息,比如邮件地址则属于授权过程。对于用户体验来说就是这样:用户在第三方网站上点击登录,重定向到认证服务的地址,通常是一个 https 连接;用户输入邮件地址和口令,校验正确后进入授权页面,提示用户这个第三方网站将获得用户的某些信息;用户确认后返回到第三方网站同时带有一个 token;第三方网站根据这个 token 来确认用户的确已经通过口令校验,并获得用户的相关信息。

就网上讨论的情况来看,Google 目前仅有 Calendar 一种授权服务,还没有人反映 gmail 已经可以被授权。最让人失望的是,google group 上来自 google 的支持非常少,同样 MSDN 上 LiveID 相关的讨论组里面,也罕有微软的人发言,都是开发人员自己在猜测。

所以欢迎加入 Authentication War, Yahoo!。希望能刺激一下微软和 Google,让竞争来得更猛烈些吧。

Topic: