OpenID 和 OAuth 有什么区别?
2017-07-05 17:44
344 查看
OpenID是Authentication
OAuth是Authorization
前者是网站对用户进行认证,让网站知道“你是你所声称的URL的属主”
后者其实并不包括认证,只不过“只有认证成功的人才能进行授权”,结果类似于“认证+授权”了。OAuth相当于:A网站给B网站一个令牌,然后告诉B网站说根据这个令牌你可以获取到某用户在A网站上允许你访问的所有信息
如果A网站需要用B网站的用户系统进行登录(学名好像叫federated login),它可以
选择OpenID认证,然后通过attribute exchange获取用户的昵称或其他通过OpenID暴露出来的用户属性,或者
选择OAuth认证,获取到token后再用token获取用户昵称或其他允许被访问的信息
关于OAuth的授权,不能说是滥用,是OAuth Service Provider对OAuth的权限没有细分。好比我只需要用户的昵称性别,你却把修改昵称性别的权限也授权给我了(虽然我不一定会去用)。这个错在OAuth Service Provider
作者:yegle
链接:https://www.zhihu.com/question/19628327/answer/12591409
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:知乎用户
链接:https://www.zhihu.com/question/19628327/answer/23291315
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
OAuth学习笔记和OpenID学习笔记都说了可以用来认证身份,但是他们之间到底有哪些不同,哪些情况应该用OAuth,哪些情况应该用OpenID呢?下面就一起来看下他们之间的区别。
简短的说,OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:
authorization: n. 授权,认可;批准,委任
authentication: n. 证明;鉴定;证实
OAuth关注的是授权,即:“用户能做什么”;而OpenID关注的是证明,即:“用户是谁”。下面就分别来说两者的功能。
OpenID
用户希望访问其在http://example.com的账户 http://example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
用户给出了他的OpenID,比如说”http://user.myopenid.com” http://example.com 跳转到了用户的OpenID提供商“mypopenid.com”
用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登录
“myopenid.com” (OpenID provider) 问用户是否要登录到http://example.com
用户同意后,”myopenid.com” (OpenID provider) 跳转回http://example.com http://example.com 允许用户访问其帐号
OAuth
用户在使用http://example.com时希望从http://mycontacts.com导入他的联系人 http://example.com (在OAuth的黑话里面叫“Consumer”)把用户送往http://mycontacts.com
(黑话是“Service Provider”)
用户在http://mycontacts.com
登录(可能也可能不用了他的OpenID)
http://mycontacts.com问用户是不是希望授权http://example.com访问他在http://mycontact.com的联系人
用户确定
http://mycontacts.com
把用户送回http://example.com http://example.com 从http://mycontacts.com拿到联系人 http://example.com 告诉用户导入成功
OpenID是用来验证的,就是说可以用一个url来唯一表明身份(不用挨个记每个网站的用户密码)。OAuth是用来授权的(俺可以授权一个网站访问俺在另外一个网站的数据,而俺不用把俺的密码给第一个网站。
很多人现在错误的把OAuth当做OpenID使用。但是其实也不会照成什么影响。
OAuth是Authorization
前者是网站对用户进行认证,让网站知道“你是你所声称的URL的属主”
后者其实并不包括认证,只不过“只有认证成功的人才能进行授权”,结果类似于“认证+授权”了。OAuth相当于:A网站给B网站一个令牌,然后告诉B网站说根据这个令牌你可以获取到某用户在A网站上允许你访问的所有信息
如果A网站需要用B网站的用户系统进行登录(学名好像叫federated login),它可以
选择OpenID认证,然后通过attribute exchange获取用户的昵称或其他通过OpenID暴露出来的用户属性,或者
选择OAuth认证,获取到token后再用token获取用户昵称或其他允许被访问的信息
关于OAuth的授权,不能说是滥用,是OAuth Service Provider对OAuth的权限没有细分。好比我只需要用户的昵称性别,你却把修改昵称性别的权限也授权给我了(虽然我不一定会去用)。这个错在OAuth Service Provider
作者:yegle
链接:https://www.zhihu.com/question/19628327/answer/12591409
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者:知乎用户
链接:https://www.zhihu.com/question/19628327/answer/23291315
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
OAuth学习笔记和OpenID学习笔记都说了可以用来认证身份,但是他们之间到底有哪些不同,哪些情况应该用OAuth,哪些情况应该用OpenID呢?下面就一起来看下他们之间的区别。
简短的说,OAuth关注的是authorization;而OpenID侧重的是authentication。从表面上看,这两个英文单词很容易混淆,但实际上,它们的含义有本质的区别:
authorization: n. 授权,认可;批准,委任
authentication: n. 证明;鉴定;证实
OAuth关注的是授权,即:“用户能做什么”;而OpenID关注的是证明,即:“用户是谁”。下面就分别来说两者的功能。
OpenID
用户希望访问其在http://example.com的账户 http://example.com (在OpenID的黑话里面被称为“Relying Party”) 提示用户输入他/她/它的OpenID
用户给出了他的OpenID,比如说”http://user.myopenid.com” http://example.com 跳转到了用户的OpenID提供商“mypopenid.com”
用户在”myopenid.com”(OpenID provider)提示的界面上输入用户名密码登录
“myopenid.com” (OpenID provider) 问用户是否要登录到http://example.com
用户同意后,”myopenid.com” (OpenID provider) 跳转回http://example.com http://example.com 允许用户访问其帐号
OAuth
用户在使用http://example.com时希望从http://mycontacts.com导入他的联系人 http://example.com (在OAuth的黑话里面叫“Consumer”)把用户送往http://mycontacts.com
(黑话是“Service Provider”)
用户在http://mycontacts.com
登录(可能也可能不用了他的OpenID)
http://mycontacts.com问用户是不是希望授权http://example.com访问他在http://mycontact.com的联系人
用户确定
http://mycontacts.com
把用户送回http://example.com http://example.com 从http://mycontacts.com拿到联系人 http://example.com 告诉用户导入成功
OpenID是用来验证的,就是说可以用一个url来唯一表明身份(不用挨个记每个网站的用户密码)。OAuth是用来授权的(俺可以授权一个网站访问俺在另外一个网站的数据,而俺不用把俺的密码给第一个网站。
很多人现在错误的把OAuth当做OpenID使用。但是其实也不会照成什么影响。
相关文章推荐
- OpenID和OAuth的区别
- 转OAuth与OpenID的区别和联系
- cas sso oauth openid saml的联系与区别
- OpenID流程概述及其与OAuth的区别
- 理解OpenID和OAuth的区别
- [转]cas sso oauth openid saml的联系与区别
- OAuth和OpenID的区别
- OAuth和OpenID的区别
- 用通俗的例子解释OAuth和OpenID的区别【原】
- [转]OAuth、OAuth2与OpenID区别和联系
- OAuth与OpenID区别
- OAuth和OpenID的区别
- OpenID流程概述及其与OAuth的区别
- OpenID和OAuth的区别及第三方登录的安全隐患分析
- OAUTH、OPENID、SAML、CAS做统一认证与授权的联系与区别
- OpenID及其原理介绍,OAuth和OpenID的区别
- OAuth和OpenID区别
- OAuth和OpenID的区别
- OAuth和OpenID的区别(转)
- OpenID流程概述及其与OAuth的区别