OAuth和OpenID的区别
2015-07-15 23:35
225 查看
OAuth和OpenID的区别
技术 标点符 4年前(2011-08-31) 2315℃ 0评论
前面两篇文章(OAuth学习笔记和OpenID学习笔记)都说了可以用来认证身份,但是他们之间到底有哪些不同,哪些情况应该用OAuth,哪些情况应该用OpenID呢?下面就一起来看下他们之间的区别。
简短的说,OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:
authorization: n. 授权,认可;批准,委任
authentication: n. 证明;鉴定;证实
OAuth关注的是授权,即:“用户能做什么”;而OpenID关注的是证明,即:“用户是谁”。下面就分别来说两者的功能。
OpenID
用户希望访问其在example.com的账户
example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
用户给出了他的OpenID,比如说”http://user.myopenid.com”
example.com 跳转到了用户的OpenID提供商“mypopenid.com”
用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登录
“myopenid.com” (OpenID provider) 问用户是否要登录到example.com
用户同意后,”myopenid.com” (OpenID provider) 跳转回example.com
example.com 允许用户访问其帐号
OAuth
用户在使用example.com时希望从mycontacts.com导入他的联系人
example.com (在OAuth的黑话里面叫“Consumer”)把用户送往mycontacts.com (黑话是“Service Provider”)
用户在mycontacts.com 登录(可能也可能不用了他的OpenID)
mycontacts.com问用户是不是希望授权example.com访问他在mycontact.com的联系人
用户确定
mycontacts.com 把用户送回example.com
example.com 从mycontacts.com拿到联系人
example.com 告诉用户导入成功
OpenID是用来验证的,就是说可以用一个url来唯一表明身份(不用挨个记每个网站的用户密码)。OAuth是用来授权的(俺可以授权一个网站访问俺在另外一个网站的数据,而俺不用把俺的密码给第一个网站。
很多人现在错误的把OAuth当做OpenID使用。但是其实也不会照成什么影响。如水煮鱼开发的WordPress插件:
WordPress的评论只要求身份认证即可,无需权限认证。
相关文章推荐
- python的学习之路linux和windows双修第一步
- linux程序设计——使用FIFO的客户/服务器的应用程序(第十三章)
- openwrt rt5350 SPI I2C驱动简单说明
- Linux终端下命令行颜色的设置,三步解决
- Dropbox 在ubuntu14.04下无法启动等各种问题
- openwrt 脚本文件实现中继(uci命令)
- linux(Centos 6.3)学习笔记
- ubuntu下进行opengl开发--根据wiki book的tutorial下载相应库
- Spark应用如何访问带Kerberos认证的CDH Hadoop集群
- HTML5 Web Workers之网站也能多线程的实现
- linux系统时间同步,硬件时钟和系统时间同步,时区的设置
- apache 服务器不能使用本机IP访问解决办法
- shell脚本传参
- 通过sysrq打印linux内核信息
- linux c中需要记住的东西
- linux c中需要记住的东西
- nginx 1.6.2源码分析2 499问题之upstream
- apache虚拟机配置
- Target runtime Apache Tomcat v6.0 is not defined.错误解决方法
- 初探nginx架构