身份验证或许应该以人为中心?

当假定标示符通常代表的是单一的,独一无二的人类个体时,OpenID社区是否是犯了一个致命的错误?这个疑问最近在OpenID公共讨论区引起了争议,至少对于笔者来说是件令人头疼的事。

对OpenID的规范是模棱两可的,因为它没有对将标示符限定为某个人类个体表示出明确的赞成或者反对。或许"以用户为中心的身份验证"这个概念产生的原因。

可验证实体的唯一性是一种身份,是以标示符的形式体现的。它不仅可以是一个人,当然也可以是网络硬件的一部分,是应用软件(甚至是应用程序特殊的实例),是一种服务,一个群体(由人或者其他事物组成),甚至是带着某种独特标识的一个时刻。

OpenID使用手册版本2中"最终用户"和"用户"的概念指的是有OpenID标示符的实体。这里不太可能说应用软件或者设备像人类最终用户那样容易成为一项服务的最终用户。

在实践中将独一无二的URI作为标示符可能对人类用户没有限制–网络上的每个设备也有独一无二的URI,在这里URI就是Uniform Resource Identifier(通用资源标示符)。资源可以是打印机,服务器,行政助理,切割和抛光的钻石,RSS等等。

我们假设的基础是OpenID代表的单个用户。LiveJournal的创始人Brad Fitzpatrick表示就是这个原因促使他在4年前创建了OpenID。OpenID是一种对希望在博客上进行评论的用户进行授权的方法。OpenID有两个用途:确保是一个人,而不是其他什么东西在网络上发表评论;确保使用同一个标示符的所有评论都来自同一个人。它明确的说明是以人为中心的系统。

但是当其他力量加入其中–诸如Netmesh的Lightweight验证系统(LID),XRI/i-names group, Sxip和JanRain等。这样不同类型的标示符(I-names和URI)已经超出最初博客验证的范畴,开始被用于大范围的身份验证(比如RP,网站和接受OpenID验证的服务)。

云计算的出现要求硬件资源和服务的验证也像人类个体身份验证一样安全和简单。涉及隐私的需求也在云上通过匿名授权的应用来得到满足。如果云上的服务不不需要知道是否是某个特殊的个体在进行访问的话,那么一组标示符就足够了。

如果OpenID系统把自己限制在只验证单个人类个体,那么他就比用户名/密码系统还要糟糕。至少用户名/密码系统可以被用在非人类或者一组人或非人类。