浅谈OAuth 2.0基本原理

作者 : 开心源码 本文共2091个字,预计阅读时间需要6分钟 发布时间: 2022-05-13 共259人阅读

    OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。 OAuth 2.0关注用户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表客户,要么允许第三方应用代表客户取得访问的权限。同时为Web应用,桌面应用和手机,和起居室设施提供专门的认证流程。2012年10月,OAuth 2.0协议正式发布为RFC 6749。

    auth2.0的功用:首先说一下为什么需要auth2.0,auth2.0是开放平台互联协议,可以这样了解,A是行业中的小生,两手空空;B是行业大佬,财大气粗,有一大批人(客户群);这个时候A需要借用B的客户群信息来构建自己的项目中的某项功能,但是出于资源的保护和各方面起因,B不相信A,不会让A接入自己的信任体系里面,A是无法直接获取B那边客户群的客户名和密码的,同时A又想借用B拥有的客户群信息来完善自己项目中的某些功能,这个时候就需要auth2.0来做中介,通过少量业务流程来实现A在没有B的客户群的直接信息(账户和密码),可以间接的获取到B那边的客户群的其余信息(除了客户名和密码,如客户昵称等等),至于信息的开发程度,那得看B了。说白了就是如何使得A在没有B的客户群的密码和账号的情况下获取B的客户群的其余的信息,auth2.0就是处理这样的问题。

    其实很多拥有大的资源信息的网站或者者公司都有自己的开发平台的,用来开放自己的少量资源信息,通过比方说auth2.0等少量折中的手段来达到拥有大的资源信息的网站或者者公司和开发者的共赢的局面,由于拥有大的资源信息的网站或者者公司的可以根据开发者开发出来的应用的类型来定向的判断客户类型,这样之后,拥有大的资源信息的网站或者者公司即可以根据客户是什么类型的,定向的推送广告,做大数据分析,与此同时,开发者也能达到开发出自己完整的应用的目的,真正的共赢。

    其实auth2.0工作有几种模式:简化模式,密码模式,用户端模式,受权码模式,其中受权码模式是使用最多的,这里我就分析一下受权码模式,qq开放互联平台就是使用这种模式,如下图:   

    首先明确一下角色,user-gent:客户(或者者可以说是客户浏览器);client:第三方网站或者者应用;authorization server:认证服务器,它不是被第三方网站或者者应用所拥有的,是放在原来的所有者(如腾讯)那里的;resource owner:资源(如腾讯的qq客户群,为腾讯所拥有)存放的地方,它是可以和authorization server互通的;总共有四个对象。

流程是这样运转的:

步骤A:先是user-agent访问client,client需要确定user-agent是谁,但是client没有user-agent的客户和密码,无法验证验证客户,所以将user-agent通过A步骤将重定向(导向)到authorization-server那里(假如是client是通过qq来验证客户,这个时候客户就会发现自己的浏览器跳到qq登录的界面),同时重定向过程中也会附带少量信息,方便后面的操作,这个步骤最重要的信息就是redirect url和client identifier这两个参数

步骤B(user authentication):客户在登录界面就会输入客户名和密码给authorization server,authorization server发现客户名和密码正确,发现的确有这个客户存在,就会要客户能否受权给client给访问他的个人信息

步骤C:得到了客户的允许之后,authorization server就会根据步骤A得到redirect url将客户重定向到client那里,同时携带authorization code和少量其余的信息给client,这之前的步骤对客户来都是可见的,后面的步骤对客户不可见;

步骤D:这个时候客户就来到了client这界面了,这个时候client就会获取authorization code,假如有这个参数,代表客户已经受权了,client就携带authorization code和redirect url访问authentication server,向其索要访问客户信息的access token

步骤E:假如authorization code没有是有效的,authorization server就会将access token发给client,同时access token是有期限的

步骤F:cleint就会携带得到的access token去访问resource owner,因为resource owner和authorization server是互通的,所以resource owner可以验证access token能否有效或者者过期,假如有效和没有过期,那么就会允许client访问之前那个客户的少量信息了。

另附一篇OAuth 2.0详解:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 浅谈OAuth 2.0基本原理

发表回复