初识OAuth2

解决第三方授权问题

主要涉及到

资源拥有者(RO):用户

客户端(应用)(C):用户正在操作使用的业务网站

授权服务器(AS):给用户授予数据访问权限的服务

资源服务器(RS):目的资源服务

实例

小明要使用GitHub账号授权登录chrome浏览器

其中小明为资源所有者,chrome浏览器为客户端,授权服务器为github授权服务器,资源服务器为GitHub资源服务器(用来返回小明在github中的头像、名称等)。

大致交互流程如下

客户端要访问某资源,需要用户授权允许访问,

用户允许访问后,

客户端到授权服务器请求相关资源访问通行证(access_token),

请求到后再到资源服务器请求所需资源。

具体实现业务场景逻辑是在上述流程中做详细细化或删减,分为如下4种

1.授权码

RO授权C访问相关权限后,C拼接自己的相关数据信息和鉴权方式(response_type=code)信息访问AS,AS验证并返回相关code等信息,客户端通过code进一步访问AS,AS返回通信证access_token.

2.隐式许可

相比方式1,省去了code的请求验证流程

RO授权C访问相关权限后,C拼接自己的相关数据信息和鉴权方式(response_type=token)信息访问AS,AS返回通信证access_token.

3.资源所有者密码定凭据

C将RO的用户名密码直接访问AS获取access_token

4.客户端凭据

C通过自己的特殊身份直接请求AS获取access_token

好文链接http://www.cnblogs.com/linianhui/p/oauth2-authorization.html

发布了19 篇原创文章 · 获赞 16 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/u010884123/article/details/89791917