`

(转)OpenID概念、原理和案例介绍

阅读更多

发现一篇OpenID介绍比较好的文章,share一下:

Source:http://www.userkon.com/kidult/openid_intro.html  

 

什么是OpenID?OpenID概念、原理和案例介绍

这几周有关OpenID的新闻不断:Google Profile变身OpenID、WordPress上的Google Friend Connect插件实现OpenID留言、OpenID先驱JanRain获得325万美元风险投资雅虎将全面支持Facebook Connect服务…… 正好前段时间看了一些OpenID的资料,希望下面的内容可以帮助大家了解OpenID(参考资料见附录)。

1.OpenID介绍

1.1概念

OpenID 是一个以用户为中心的数字身份识别框架,是一个以URL为身份标识的分散式身份验证解决方案,它具有开放、分散、自由等特性。

clip_image002

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 PartRP  OpenID支持方,支持End User用OpenID登录自己的网站
  • OpenID ProviderOP  OpenID提供方,提供OpenID注册、存储等服务。

clip_image009 USER —— 使用OpenID

clip_image010 RP —— 支持OpenID登录

clip_image012 OP ——  提供OpenID

使用 OpenID时,URL就是用户名,密码存储在一个 OpenID 服务网站(OP)上。登录RP时需要提交两个重要信息,一个是你的名字,一个是OpenID网站的网址。例如我在OP:open.cn上的账号是:kidult,我的OpenID就是http://kidult.openid.cn/。

打个比方,你到朋友公司,要经过门卫,门卫需要确认你的身份。这时候,你就是用户,门卫就是网站登录框,朋友就是一个OpenID中介。

你要进门,告诉门卫:“我要找某某某。”

门卫打电话问你朋友:“这有个人说是找你的。”

门卫把电话交给你,你给朋友暗号:“地瓜地瓜,我是土豆。”

再把电话交给门卫,朋友告诉门卫:“没错,他是我朋友,让他进来吧。”

事实上, “门卫” 并不需要认识你朋友,只需要通过一种通用的协议与OpenID的网站交换确认信息就行了,“门卫”和OpenID网站之间的信息是建立在tcp/ip基础上的比较可靠的唯一通路上,除非别人知道你的OpenID密码,或者黑客通过某种手段劫持他们之间的通信,或者劫持OpenID网站域名,否则别人不能冒充你的身份。

clip_image014

图 1 OpenID原理

1.3 OpenID优缺点

优点:

对用户

1. 简化注册登录流程:一定程度上避免了重复注册、填写身份资料的繁琐过程,不需要注册邮件确认,登录更快捷。

2. 一处注册,处处通行:免去记忆大量账号的麻烦,一个OpenID就在任何支持OpenID的网站自由登录。

clip_image015

3. 减少密码泄露风险:频繁登录各种网站,容易被垃圾网站暗地里收集密码和资料,或者冒充用户身份发送垃圾信息。

4. 用户拥有账号信息控制权:根据对网站的信任程度,用户可以清楚的控制哪些profile信息可以被共享,例如姓名、地址、电话号码等。

对网站(RP)

1. 共享用户资源:给所有支持 OpenID 的网站带来了价值。

2.已经有相当数量的高端注册用户可以直接使用,不必从零开始;

3.可以不负担自己建立会员系统或登录功能所需要的开发成本、机器、带宽、安全费用;

4.用户数据是安全的,用户数据不统一存储,用户可以任意选择、更换存储的server。没有组织,没有任何一个地方可以做root,没有任何一个机构或者个人能够从这里面获利。

缺点:

1. 任何人都可以建立一个网站提供OpenID验证服务,而网站性能参差不齐,导致OpenID的验证过程不是很稳定。

2. 如果提供OpenID验证服务的网站突然关闭的话,可能会导致大量用户无法使用多个网站的服务。

3. 目前几乎所有支持OpenID的网站都很谨慎地将其做为一种可供选择的辅助登录方法,这会在很大程度上阻碍OpenID的发展。

4. 目前支持OpenID的网站还不多,其独特的使用方法并不被多数用户所熟悉。

More about OpenID…

clip_image017

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管理 反钓鱼 密码保护)

clip_image023

via

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

clip_image025

OpenID技术让你可以用Yahoo!账号登录许多网站。一旦启用您的Yahoo! OpenID的访问帐户,您可以简单地告诉任何支持OpenID的网站,你是Yahoo!用户。

当您访问的网站支持OpenID登录,您只需找到Yahoo!登录按钮。或者你看到一个OpenID图标,只需在文本框输入“yahoo.com”。登录信息将被发送到Yahoo!验证您的Yahoo! ID和密码,然后登录到该网站。

例子:用yahoo账号登录plaxo

clip_image038

安全措施:Yahoo! sign-in seal (安全图章)

clip_image040

一个安全图章是一个只在本机显示的秘密的信息或照片。每次登录都寻找它,以确保您在一个真正的雅虎正在网站。如果消息,照片,或颜色是不同的,你可能在访问一个钓鱼网站。

Google

Google期望用户用Gmail的帐号登录其他网站,比如Facebook,但是,它不允许用户用其它Facebook的帐号来登录Gmail。(例外

Google OpenID解决方案:Federated Login

基于OpenID标准。第三方网站和应用程序现在可以使用google帐户注册和登录。

clip_image051

图 2 Google Federated Login原理

(谷歌作为Relying Part

clip_image058

为什么谷歌音乐支持人人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

关于 00

Hey~我是00 (请读作零零, not 欧欧…) 曾学习四年GIS,混迹两年旅游与规划,但最感兴趣的是互联网,已光荣地成为一名挨踢民工。虽然没有艺术天赋,但对悦目悦耳的事物比较贪婪,所以是一个web wanderlust。 投身互联网后,正在努力向产品研究、用户体验、用户研究方面发展。 Profession Goal:帮助更多人从互联网的无限可能性中汲取力量 Personal Goal:游走至死,猎奇至死

 

0
1
分享到:
评论
3 楼 ivorytower 2010-03-26  
啊,你也不排版一下呀??
2 楼 zerostar88 2010-03-26  
Zend Framework手册 中文版,其中有介绍到OpenID
http://020soso.com/php/zendfram/index.html
1 楼 zerostar88 2010-03-26  
Comparison of Support among OpenID Providers
http://willnorris.com/openid-support

相关推荐

    大型网站技术架构:核心原理与案例分析.pdf

    《大型网站技术架构:核心原理与案例分析》这本书深入探讨了构建和优化大规模网站所需的关键技术和策略。在当今数字化时代,随着互联网用户的爆炸性增长,大型网站必须具备高可用性、高性能、可扩展性和安全性。这...

    密码学和网络安全原理与实践,第七版William Stallings

    1. **基础概念**:介绍密码学的基本概念,如对称加密(如DES、AES)、非对称加密(RSA、ECC)、哈希函数(MD5、SHA-1、SHA-256)以及消息认证码(MAC)等。 2. **公钥基础设施(PKI)**:探讨了数字证书、证书权威...

    Web services案例分析

    Web服务是一种基于互联网的软件接口,它允许不同的...从基础概念到高级应用,理解和掌握Web服务的原理和技术对于任何IT专业人员来说都至关重要。通过案例分析,我们可以更好地理解Web服务在实际工作中的应用及其价值。

    ASP.NET 实用案例教程

    这个“ASP.NET 实用案例教程”旨在帮助初学者和有经验的开发者更好地理解和应用ASP.NET技术,通过实际案例来学习其核心概念和功能。 1. **ASP.NET基础** - **页面生命周期**:ASP.NET页面从请求到响应的过程,包括...

    分布式系统概念与设计 原书第5版

    《分布式系统概念与设计》第5版深入浅出地讲解了这些概念,并结合实际案例,使读者能够理解并应用到自己的项目中。书中的内容涵盖了从基础理论到最新进展,是学习分布式系统不可多得的资源。通过阅读这本书,读者...

    java sso单点登录案例、服务综合治理

    本案例将围绕这些技术,深入讲解如何构建一个简单的SSO系统,并探讨服务综合治理的相关概念。 首先,我们需要理解SSO的核心原理:共享会话和统一认证中心。当用户首次登录SSO系统时,会在认证中心进行身份验证,...

    搜狐单点登录设计原理+设计文档+实现源代码

    标题中的"搜狐单点登录设计原理"涉及到的是SSO的核心概念和技术,通常包括以下方面: 1. **认证中心(Identity Provider,IDP)**:SSO系统的核心部分,负责验证用户的凭证,如用户名和密码。一旦用户通过IDP认证,...

    网络安全技术(13){抱歉这个资源的密码我忘问老师了}

    9. **案例研究**:通过具体的案例,如电子邮件安全、网上银行交易安全等,来展示密码协议的实际应用和重要性。 10. **实验与实践**:可能包含一些实验环节,让学生通过模拟攻击和防御来加深对密码协议的理解。 ...

    Advanced API Security OAuth 2.0 And Beyond-Apress

    1. **OAuth 2.0基础**:首先,书会介绍OAuth 2.0的核心概念,如授权码流程、隐式流程、客户端凭据流程以及授权服务器和资源服务器的角色。理解这些基本概念是构建安全API的基础。 2. **API安全设计原则**:书中会...

    ASP.NET MVC 5高级编程 第五版.pdf 高清版

    1. **基础概念**:介绍MVC模式的基本原理,包括路由配置、模型绑定、视图模型以及依赖注入等核心概念。 2. **控制器与动作**:详细讲解如何创建和使用控制器来处理HTTP请求,定义动作方法,并通过ActionResult返回...

    Spring_Security_权限管理手册_chm中文版

    - OAuth2和OpenID Connect集成,为现代Web应用提供社交登录功能。 3. **授权模型**: - 角色与权限的概念,以及如何在Spring Security中定义和分配。 - Access Control Lists (ACLs) 和细粒度权限控制,用于实现...

    PHP.Web.Services.2nd.Edition

    3. **SOAP(Simple Object Access Protocol)**:讲解SOAP协议的工作原理,包括WSDL(Web Services Description Language)和SOAP消息结构。尽管RESTful API更为流行,但SOAP在某些场景下仍然是重要的选择,尤其是...

    2013-ProSpringSecurity

    根据提供的文件信息,本书《2013-ProSpringSecurity》主要介绍了Spring Security框架的基本概念、设计原理以及在不同场景下的应用。以下是对该书各章节所涉及知识点的详细阐述: ### 第1章:安全性的范围 本章首先...

    DSMP规范sso分册

    1. **SSO概念与原理**:SSO的核心思想是通过统一的身份验证中心来管理用户的登录状态,用户只需要在一个地方验证身份,之后就可以无缝地访问其他系统。这涉及到身份验证、会话管理和授权等关键技术。 2. **DSMP平台...

    eiam-master.zip

    《企业级IAM平台:OAuth2.x、OIDC与SAML2.0的融合与实践》 在数字化转型的大潮中,信息安全与用户身份...通过对这个开源项目的理解和应用,我们可以更好地理解现代身份管理的原理和技术,为企业的数字化安全保驾护航。

    Addison-Wesley - Understanding Windows CardSpace (Jan 2008)

    6. **案例研究与最佳实践**:通过实际案例分析,展示了CardSpace在不同场景下的应用,以及如何优化部署和管理。 7. **未来展望**:探讨了CardSpace的发展趋势,以及它对整个数字身份生态系统可能产生的影响。 通过...

    MMX-[计算机安全和密码学].Computer.Security.And.Cryptography.pdf 英文版

    1. **密码学基础**:书中首先会介绍密码学的基本概念,包括对称加密(如DES、AES)和非对称加密(如RSA、ECC),以及哈希函数(如MD5、SHA系列)的作用和原理。这些基础知识是理解整个领域的重要基石。 2. **公钥...

    资料-認証總介.zip

    \n\n**总结**\n“资料-認証總介.pdf”很可能涵盖了上述各种认证方法和技术的详细介绍,包括它们的工作原理、优缺点以及实际应用案例。学习并理解这些认证机制对于任何从事IT行业的人来说都是至关重要的,无论你是...

    《ASP.NET专业项目实例开发》源代码

    8. 安全性:了解如何实现身份验证和授权,例如使用Forms Authentication、Windows Authentication或者OAuth、OpenID Connect等现代认证机制。 9. AJAX与jQuery:源代码可能包含使用AJAX技术提高用户体验的部分,这...

    计算机密码学作业

    9. **安全协议设计**:例如,OAuth和OpenID Connect用于身份验证,TLS握手协议用于建立安全连接,这些都需要理解其背后的密码学原理。 10. **密码学应用**:在实际应用中,密码学被广泛应用于电子商务、网络安全、...

Global site tag (gtag.js) - Google Analytics