OpenID 是一个以用户为中心的数字身份识别框架,它具有开放、分散性。OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫
URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的
身份认证。
定义
OpenID是一个
去中心化的网上
身份认证系统。对于支持OpenID的网站,用户不需要记住像用户名和密码这样的传统验证标记。取而代之的是,他们只需要预先在一个作为OpenID身份提供者(identity provider, IdP)的网站上注册。OpenID是去中心化的,任何网站都可以使用OpenID来作为用户登录的一种方式,任何网站也都可以作为OpenID身份提供者。OpenID既解决了问题而又不需要依赖于中心性的网站来确认
数字身份。
OpenID正在被越来越多的大网站采用,比如作为身份提供者的
AOL和Orange。OpenID可以和
.NET Framework的
Windows CardSpace一起使用。
由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。
OpenID 系统的第一部分是
身份验证,即如何通过 URI 来认证用户身份。目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码,即便你使用的是同样的密码。如果使用 OpenID ,你的网站地址(URI)就是你的用户名,而你的密码安全的存储在一个 OpenID 服务网站上(你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。
与OpenID同属性的身份识别服务商还有
ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID
通用账户的应用最为广泛。
历史
OpenID最初由
LiveJournal的Brad Fitzpatrick开发,后来加入了Light-Weight Identity,Yadis,Sxip DIX protocol和XRI/i-names。未来的OpenID规范正在由OpenID.net开发,很多技术公司、服务公司和开源开发者都参与其中。
为了推动OpenID的应用,2006年8月,一些公司赞助设立了OpenID奖励计划,对前10位满足要求的软件项目各奖励5000美元。
2007年12月5日,OpenID验证规范2.0和属性交换规范1.0发布。
优势
登录一个支持 OpenID 的网站非常简单(即便你是第一次访问这个网站也是一样)。只需要输入你注册好的 OpenID 用户名,然后你登录的网站会跳转到你的 OpenID 服务网站,在你的 OpenID 服务网站输入密码(或者其它需要填写的信息)验证通过后,你会回到登录的网站并且已经成功登录。OpenID 系统可以应用于所有需要
身份验证的地方,既可以应用于单点登录系统,也可以用于共享敏感数据时的
身份认证。
除了一处注册,到处通行以外,OpenID 给所有支持 OpenID 的网站带来了价值—共享用户资源。用户可以清楚的控制哪些信息可以被共享,例如姓名、地址、电话号码等。
今天,OpenID 作为以用户为中心的身份验证系统已经为数百万的用户提供了服务。在“I Want My OpenID Bounty” 项目的推动下,许多开源项目都迅速的加入了对 OpenID 的支持。
拥有者
没有人拥有它。从字面上就可以看出因为其是“开放的地址”。OpenID 按照最大自由方式授权,使用它不需要任何费用任何注册或者许可证。
参与方式
通过订阅
邮件列表,你能最快最方便的了解 OpenID 的最新进展。
协议扩展
OpenID协议提供了一个基本的认证机制。目前还有基于OpenID的其它可用协议:
Attribute Exchange:OpenID属性交换是一种用于在端点之间交换标识信息OpenID服务扩展。其提供了对标识信息的接收和存储。
Simple Registration:这是OpenID认证协议的扩展,它允许非常轻量级的配置交换。主要用于在终端用户使用web服务注册新账号时传送八种常用的请求信息。
使用OpenID4Java实现OpenID协议:OpenID4Java是对OpenID1.1和2.0规范的实现,目前它通过code.google.com系统进行维护。此项目初始代码是由Sxip捐献出来的,而后Atlassian等公司参与进来,并为实现支持2.0规范(属性交换规范)的API贡献了大量的工作。
安全
2014年5月,
新加坡南洋理工大学一位名叫王晶(Wang Jing)的物理和数学科学学院博士生,发现了
OAuth和OpenID
隐蔽重定向漏洞其实漏洞不是出现在OpenID这个协议本身,这个协议本身是没有问题的,之所以存在问题是因为各个厂商没有严格引用官方文档,只是实现了简版。问题的原因在于OpenID的提供方提供OpenID授权过程中没有对回调的URL进行校验,从而导致可以被赋值为非原定的回调URL。
推广
Google与
Yahoo已经支持OpenID。所有有Google或Yahoo账户的用户可以通过OpenID directed identity方式登录支持OpenID信赖方网站。
不过,自 2015 年 4 月 20 日起,Google 账户将不再使用 OpenID 2.0。
AOL与
Yahoo!都已经支持OpenID。AOL提供每个AOL或AIM的用户一组OpenID Identity,目前还在测试阶段,为openid.aol.com/username。
目前使用OpenID代替一般账号密码的网站包括了 著名的开源社区
SourceForge、
LiveJournal、Zooomr、Wikitravel、ma.gnolia.com、claimid.com以及Jyte。