这几周有关OpenID的新闻不断:Google Profile变身OpenID、WordPress上的Google Friend Connect插件实现OpenID留言、OpenID先驱JanRain获得325万美元风险投资、雅虎将全面支持Facebook Connect服务…… 正好前段时间看了一些OpenID的资料,希望下面的内容可以帮助大家了解OpenID(参考资料见附录)。
1.OpenID介绍
1.1概念
OpenID 是一个以用户为中心的数字身份识别框架,是一个以URL为身份标识的分散式身份验证解决方案,它具有开放、分散、自由等特性。
OpenID 的创建基于这样一个概念:可以通过URL来认证一个网站的唯一身份,同理,也可以让每人通过一个URL(一个OpenID身份就是一个URL),在多个网站上进行登录,作为用户的身份认证。
形象一点来说:URL是护照,OpenID服务器就是户口所在地。首先在一个OpenID服务器网站注册,获得一个URL,等于申请一个了“出入许可证”。然后可以直接使用这个URL来登录别的网站,也可以把这个URL加到自己的主页,让个人主页的URL具备OpenID URL的功能,就像是一个复印件。然后就可以拿这个URL到支持OpenID的网站去登录了。不需要每个网站都注册一遍,因为你的信息已经保存在OpenID服务器上,并获得那些网站的认可。好比是银行卡可以在银联内的多家银行取钱一样。不用担心自己的用户名被别人抢注,也不用怕忘记那许多用户名和密码。
谁将拥有或控制的OpenID ?
OpenID的出现缘于开源社区,其目的是为了解决现有技术所不能轻易解决的问题。OpenID不属于任何人,也不应该属于任何人。任何人都可以选择成为一个OpenID用户或成为一个OpenID的免费提供方,而不需要注册或者被任何组织批准允许。OpenID基金会的成立,目的是为了协助开源社区的管理和发展,以促进和支持OpenID的扩展和应用 。
1.2基本原理简述
OpenID系统由三部分角色组成:
- End User — 终端用户,使用OpenID作为网络通行证的互联网用户;
- Relying Part(RP) — OpenID支持方,支持End User用OpenID登录自己的网站;
- OpenID Provider(OP) — OpenID提供方,提供OpenID注册、存储等服务。
OP —— 提供OpenID
使用 OpenID时,URL就是用户名,密码存储在一个 OpenID 服务网站(OP)上。登录RP时需要提交两个重要信息,一个是你的名字,一个是OpenID网站的网址。例如我在OP:open.cn上的账号是:kidult,我的OpenID就是http://kidult.openid.cn/。
打个比方,你到朋友公司,要经过门卫,门卫需要确认你的身份。这时候,你就是用户,门卫就是网站登录框,朋友就是一个OpenID中介。
你要进门,告诉门卫:“我要找某某某。”
门卫打电话问你朋友:“这有个人说是找你的。”
门卫把电话交给你,你给朋友暗号:“地瓜地瓜,我是土豆。”
再把电话交给门卫,朋友告诉门卫:“没错,他是我朋友,让他进来吧。”
事实上, “门卫” 并不需要认识你朋友,只需要通过一种通用的协议与OpenID的网站交换确认信息就行了,“门卫”和OpenID网站之间的信息是建立在tcp/ip基础上的比较可靠的唯一通路上,除非别人知道你的OpenID密码,或者黑客通过某种手段劫持他们之间的通信,或者劫持OpenID网站域名,否则别人不能冒充你的身份。
图 1 OpenID原理
1.3 OpenID优缺点
优点:
对用户
1. 简化注册登录流程:一定程度上避免了重复注册、填写身份资料的繁琐过程,不需要注册邮件确认,登录更快捷。
2. 一处注册,处处通行:免去记忆大量账号的麻烦,一个OpenID就在任何支持OpenID的网站自由登录。
3. 减少密码泄露风险:频繁登录各种网站,容易被垃圾网站暗地里收集密码和资料,或者冒充用户身份发送垃圾信息。
4. 用户拥有账号信息控制权:根据对网站的信任程度,用户可以清楚的控制哪些profile信息可以被共享,例如姓名、地址、电话号码等。
对网站(RP)
1. 共享用户资源:给所有支持 OpenID 的网站带来了价值。
2.已经有相当数量的高端注册用户可以直接使用,不必从零开始;
3.可以不负担自己建立会员系统或登录功能所需要的开发成本、机器、带宽、安全费用;
4.用户数据是安全的,用户数据不统一存储,用户可以任意选择、更换存储的server。没有组织,没有任何一个地方可以做root,没有任何一个机构或者个人能够从这里面获利。
缺点:
1. 任何人都可以建立一个网站提供OpenID验证服务,而网站性能参差不齐,导致OpenID的验证过程不是很稳定。
2. 如果提供OpenID验证服务的网站突然关闭的话,可能会导致大量用户无法使用多个网站的服务。
3. 目前几乎所有支持OpenID的网站都很谨慎地将其做为一种可供选择的辅助登录方法,这会在很大程度上阻碍OpenID的发展。
4. 目前支持OpenID的网站还不多,其独特的使用方法并不被多数用户所熟悉。
More about OpenID…
1.4 OpenID跟Passport的比较
网络通行证进化历程:
l 最原始的注册方式,自选字母或是数字等组合作为ID;
l 到了传说中的web2.0时代,用邮箱作为ID来注册,但是隐患是“不请自来”的邮件;
l 现在,用OpenID登录,即,不用担心垃圾邮件,省去填定个人资料的过程,节省了注册时间。
目前互联网上的主流帐号管理方式有两种:
1、单一帐号系统。只提供单一服务的网站采用的用户帐号管理模式。用户注册后使用此帐号可以在其网上上实现所有功能操作。
2、通行证。例如google、163、微软等提供多套服务的网站采用的帐号管理程序。用户在注册一次之后,使用该帐号可以在这些网站所属群里面自由使用。
与目前流行的网站帐号系统(Passport)相比,OpenID具有开放性以及分散式的特点。它不基于某一应用网站的注册程序,而且不限制于单一网站的登录使用。
2.相关案例
目前,OpenID联盟包括的知名网站有:Google,IBM,雅虎,微软,Myspace,Facebook等。
2.1 国外OpenID
其实很多网站的账号本身就是一个OpenID:
AOL – OpenID.aol.com/screenname
Blogger – username.blogger.com
Bloglines – d.bloglines.com/username
Flickr – www.flickr.com/photos/username
LiveDoor – profile.livedoor.com/username
LiveJournal – username.livejournal.com
SmugMug – username.smugmug.com
Technorati – technorati.com/people/technorati/username
Vox – member.vox.com
Yahoo – http://OpenID.yahoo.com
WordPress.com – username.wordpress.com
Ziki.com
表 2 一些OpenID提供方比较
(易用性 安全性 用户信息 多ID管理 反钓鱼 密码保护)
Facebook 作为RP支持OpenID
2009年5月19日,facebook宣布正式启用OpenID登录系统,允许用户使用Gmail或其它支持OpenID的网站帐号登录Facebook。可以用Gmail帐号登录Facebook,也就是说,当你在Gmail里浏览邮件时,点击了一个Facebook的链接,你不需要再输入密码,就能到达你自己的Facebook页面里。
OpenID是一个非盈利性质的联盟,期望推动用一个帐号/密码来登录所有网站。这可以省掉大量的用户不停注册的时间,以及一堆帐号/密码的麻烦。
但是很多OpenID的参与者都不像Facebook这么彻底,例如不能用Facebook帐号登录Gmail。为什么Facebook这么做?Facebook说:”我们认为,开放有助于培育出一个强大的开发人员社区。”Facebook在测试中发现,利用OpenID注册Facebook的新用户”更可能”成为Facebook的活跃用户。
当然,最真实的原因来自:Facebook从一开始就是一个彻底的”开放”态度,它让用户用自己的Email地址作为Facebook的帐号,而从来没有生成Facebook自己的帐号。所以,它采纳OpenID跟自己的历史逻辑一致,没有任何损失。
2.2 Yahoo ID和Google ID
Yahoo
OpenID技术让你可以用Yahoo!账号登录许多网站。一旦启用您的Yahoo! OpenID的访问帐户,您可以简单地告诉任何支持OpenID的网站,你是Yahoo!用户。
当您访问的网站支持OpenID登录,您只需找到Yahoo!登录按钮。或者你看到一个OpenID图标,只需在文本框输入“yahoo.com”。登录信息将被发送到Yahoo!验证您的Yahoo! ID和密码,然后登录到该网站。
例子:用yahoo账号登录plaxo
安全措施:Yahoo! sign-in seal (安全图章)
一个安全图章是一个只在本机显示的秘密的信息或照片。每次登录都寻找它,以确保您在一个真正的雅虎正在网站。如果消息,照片,或颜色是不同的,你可能在访问一个钓鱼网站。
Google期望用户用Gmail的帐号登录其他网站,比如Facebook,但是,它不允许用户用其它Facebook的帐号来登录Gmail。(例外)
Google OpenID解决方案:Federated Login
基于OpenID标准。第三方网站和应用程序现在可以使用google帐户注册和登录。
图 2 Google Federated Login原理
为什么谷歌音乐支持人人ID、live ID、Yahoo! ID登录?有兴趣的同学可以看这里。
2.3 国内类OpenID
国内支持OpenID的Relying Part:Yupoo又拍,乐铺,……
国内OpenID Provider:OpenID.cn,豌豆,……
更多的是类OpenID 提供方和类OpenID Relying Part
类OpenID Relying Part:京东商城、土豆、D1、99网上书城、365商城、钻石小鸟,等等。
类OpenID Provider:支付宝、人人网、QQ等。
封闭性质的OpenID——形似而非神似
OpenID:双向开放
类OpenID:单向有选择性的开放,提供接口,通过合作或开放给用户自行添加
l 真正的OpenID支持网站(OI):影响力太弱
l 类OpenID Provider(OP):重量级公司,用户量庞大且较为优质,活跃度高。都不是真正的开放,自身产品不支持OpenID登录。
l 类OpenID Relying Part(OR):实力较强,多是服务型网站,以电子商务网站为多,跟几大OP有深入的良好合作关系(互补的性质 > 竞争性质),看重的是强强联合,打通用户资源。
[1]. OpenID Wikipedia, http://en.wikipedia.org/wiki/OpenID
[2]. Six Apart – Labs: OpenID, http://www.sixapart.com/labs/OpenID/
[3]. OpenID Explained , http://OpenIDexplained.com/
[4]. OpenID百度百科, http://baike.baidu.com/view/832917.html?wtp=tt
[5]. OpenID使用手册, http://www.matrix.org.cn/resource/article/2007-09-20/187c9604-671e-11dc-91f8-0da64dffe568.html
[6]. Towards an OpenID-based solution to the Social Network Interoperability problem,Position paper for the W3C Workshop on the Futureof Social Networking
[7]. Slideshare.net Results 1-12 of 1160 for ” OpenID” http://www.slideshare.net/search/slideshow?q=+OpenID&submit=post&searchfrom=header
[8]. 什么是OpenID , David, March 23, 2008,http://blog.iyi.cn/start/2008/03/OpenID.html
[9]. 什么是OpenID , OpenID的工作原理简述, OpenID的两种模式,http://vovo.net.cn/go/OpenID
[10]. OpenID初体验, 2008-09-10, http://www.tiray.net/post/OpenID-experience.aspx
[11]. OpenID,新的用户登录体验, http://www.adxonist.com/archives/32
[12]. OpenID的用户体验 (一), http://www.adxonist.com/archives/34
[13]. OpenID的用户体验 (二), http://www.adxonist.com/archives/39
[14]. OpenID的用户体验 (三), http://www.adxonist.com/archives/54
[15]. OpenID系列(一):注册篇, http://www.kuqin.com/shuoit/20080411/6538.html
[16]. OpenID系列(二):使用自己的URL,http://www.kuqin.com/shuoit/20080411/6539.html
[17]. 国外各大OI、OP、RP网站
[18]. 国内各大OP、RP网站
EOF
by 00
相关推荐
《大型网站技术架构:核心原理与案例分析》这本书深入探讨了构建和优化大规模网站所需的关键技术和策略。在当今数字化时代,随着互联网用户的爆炸性增长,大型网站必须具备高可用性、高性能、可扩展性和安全性。这...
1. **基础概念**:介绍密码学的基本概念,如对称加密(如DES、AES)、非对称加密(RSA、ECC)、哈希函数(MD5、SHA-1、SHA-256)以及消息认证码(MAC)等。 2. **公钥基础设施(PKI)**:探讨了数字证书、证书权威...
Web服务是一种基于互联网的软件接口,它允许不同的...从基础概念到高级应用,理解和掌握Web服务的原理和技术对于任何IT专业人员来说都至关重要。通过案例分析,我们可以更好地理解Web服务在实际工作中的应用及其价值。
这个“ASP.NET 实用案例教程”旨在帮助初学者和有经验的开发者更好地理解和应用ASP.NET技术,通过实际案例来学习其核心概念和功能。 1. **ASP.NET基础** - **页面生命周期**:ASP.NET页面从请求到响应的过程,包括...
《分布式系统概念与设计》第5版深入浅出地讲解了这些概念,并结合实际案例,使读者能够理解并应用到自己的项目中。书中的内容涵盖了从基础理论到最新进展,是学习分布式系统不可多得的资源。通过阅读这本书,读者...
本案例将围绕这些技术,深入讲解如何构建一个简单的SSO系统,并探讨服务综合治理的相关概念。 首先,我们需要理解SSO的核心原理:共享会话和统一认证中心。当用户首次登录SSO系统时,会在认证中心进行身份验证,...
标题中的"搜狐单点登录设计原理"涉及到的是SSO的核心概念和技术,通常包括以下方面: 1. **认证中心(Identity Provider,IDP)**:SSO系统的核心部分,负责验证用户的凭证,如用户名和密码。一旦用户通过IDP认证,...
9. **案例研究**:通过具体的案例,如电子邮件安全、网上银行交易安全等,来展示密码协议的实际应用和重要性。 10. **实验与实践**:可能包含一些实验环节,让学生通过模拟攻击和防御来加深对密码协议的理解。 ...
1. **OAuth 2.0基础**:首先,书会介绍OAuth 2.0的核心概念,如授权码流程、隐式流程、客户端凭据流程以及授权服务器和资源服务器的角色。理解这些基本概念是构建安全API的基础。 2. **API安全设计原则**:书中会...
1. **基础概念**:介绍MVC模式的基本原理,包括路由配置、模型绑定、视图模型以及依赖注入等核心概念。 2. **控制器与动作**:详细讲解如何创建和使用控制器来处理HTTP请求,定义动作方法,并通过ActionResult返回...
- OAuth2和OpenID Connect集成,为现代Web应用提供社交登录功能。 3. **授权模型**: - 角色与权限的概念,以及如何在Spring Security中定义和分配。 - Access Control Lists (ACLs) 和细粒度权限控制,用于实现...
3. **SOAP(Simple Object Access Protocol)**:讲解SOAP协议的工作原理,包括WSDL(Web Services Description Language)和SOAP消息结构。尽管RESTful API更为流行,但SOAP在某些场景下仍然是重要的选择,尤其是...
根据提供的文件信息,本书《2013-ProSpringSecurity》主要介绍了Spring Security框架的基本概念、设计原理以及在不同场景下的应用。以下是对该书各章节所涉及知识点的详细阐述: ### 第1章:安全性的范围 本章首先...
1. **SSO概念与原理**:SSO的核心思想是通过统一的身份验证中心来管理用户的登录状态,用户只需要在一个地方验证身份,之后就可以无缝地访问其他系统。这涉及到身份验证、会话管理和授权等关键技术。 2. **DSMP平台...
《企业级IAM平台:OAuth2.x、OIDC与SAML2.0的融合与实践》 在数字化转型的大潮中,信息安全与用户身份...通过对这个开源项目的理解和应用,我们可以更好地理解现代身份管理的原理和技术,为企业的数字化安全保驾护航。
6. **案例研究与最佳实践**:通过实际案例分析,展示了CardSpace在不同场景下的应用,以及如何优化部署和管理。 7. **未来展望**:探讨了CardSpace的发展趋势,以及它对整个数字身份生态系统可能产生的影响。 通过...
1. **密码学基础**:书中首先会介绍密码学的基本概念,包括对称加密(如DES、AES)和非对称加密(如RSA、ECC),以及哈希函数(如MD5、SHA系列)的作用和原理。这些基础知识是理解整个领域的重要基石。 2. **公钥...
\n\n**总结**\n“资料-認証總介.pdf”很可能涵盖了上述各种认证方法和技术的详细介绍,包括它们的工作原理、优缺点以及实际应用案例。学习并理解这些认证机制对于任何从事IT行业的人来说都是至关重要的,无论你是...
8. 安全性:了解如何实现身份验证和授权,例如使用Forms Authentication、Windows Authentication或者OAuth、OpenID Connect等现代认证机制。 9. AJAX与jQuery:源代码可能包含使用AJAX技术提高用户体验的部分,这...
9. **安全协议设计**:例如,OAuth和OpenID Connect用于身份验证,TLS握手协议用于建立安全连接,这些都需要理解其背后的密码学原理。 10. **密码学应用**:在实际应用中,密码学被广泛应用于电子商务、网络安全、...