Oauth2协议简介

OAuth是一个关于授权的开放网络标准,目前的版本是2.0。通过这个网络标准,一个第三方应用(客户端)可以获取资源所有者(用户)服务提供商(为用户提供服务的服务商)保存的特定资源。在这个标准中,第三方应用不能直接登录服务提供商资源所有者只负责做是否授权以及授权哪些资源的决策,根据决策结果,第三方应用可以获得有时效、有授权范围的令牌,并通过令牌从服务供应商那里获得特定的资源。

整片文章分为两部分,这一部分介绍OAuth2的原理。下一篇会介绍一种基于SpringSecurity5的实现方式。

主要参考材料为:RFC_6749

1 OAuth2介绍

1.1 角色(Roles)

1、resource owner---资源所有者,也可以被称为“用户”

2、resource server---资源服务器,即服务提供商存放用户生成的资源的服务器。它与认证服务器,可以是同一台服务器,也可以是不同的服务器。

3、client | relying party---第三方应用,希望获得资源所有者数据的服务方,也会被称为“客户端”

4、authorization server | open id provider---认证服务器,负责认证用户的身份,在用户授权之后,会将令牌发送给客户端

1.2 流程(Protocol Flow)

Protocol Flow

(A)用户在使用客户端,客户端向用户提出要用户授权客户端的请求。

(B)用户首先通过认证服务器的身份认证,然后在认证服务器完成对客户端的授权。

(C)客户端使用上一步获得的授权,向认证服务器申请令牌。

(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

(E)客户端使用令牌,向资源服务器申请获取资源。

(F)资源服务器确认令牌无误,同意向客户端开放资源。

1.3 被授权的授权(Authorization Grant)

这里grant是名词的含义,指的是通过用户的授权行为,客户端获得的"能够用来从认证服务器获取令牌(Accees token)"的凭证(Authorization Grant)。有四种方式,在看这四种方式的具体流程之前,最好先看下1.4章,理解token。

1.3.1 授权码模式(Authorization Code)

授权码模式用于获取访问令牌和刷新令牌,并针对机密客户端进行了优化。由于这是基于重定向的流程,客户端必须能够与资源所有者的用户代理(通常是Web浏览器)进行交互,并能够从授权服务器接收传入的请求(通过重定向)。

User-Agent一般指浏览器

Authorization Code Flow

(A)用户访问客户端,客户端重定向到认证服务器。

(B)用户通过身份认证,然后决策授权的范围以及时限。

(C)认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。

(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。

下面三种方式不太常用,这里就不做详细介绍了。

1.3.2 简化模式(Implicit)

1.3.3 密码模式(Resource Owner Password Credentials)

1.3.4 客户端模式(Client Credentials)

1.4 访问令牌(Access Token) & 更新令牌(Refresh Token)

1.4.1 访问令牌

访问令牌是用于访问受保护资源的凭据。访问令牌是发布给客户端的授权的字符串,表示资源所有者对特定范围和持续时间进行的授权,并由资源服务器和授权服务器来保证授权的正确实施。

1.4.2 更新令牌

刷新令牌是用于获取访问令牌的凭据。刷新令牌由授权服务器颁发给客户端,并用于在当前访问令牌变得无效或过期时获取新的访问令牌,或者获得具有相同或更窄范围的附加访问令牌(访问令牌可能具有较短的生命周期和比资源所有者授权的权限更少)。颁发刷新令牌是可选的,由授权服务器自行决定。如果授权服务器发出刷新令牌,则在发出访问令牌时被包括。刷新令牌是表示资源所有者授予客户端的授权的字符串。
授权信息。与访问令牌不同,刷新令牌仅用于授权服务器,并且不会发送到资源服务器。


Refreshing an Expired Access Token

(A)用户在使用客户端,客户端向用户提出要用户授权客户端的请求。

(B)用户首先通过认证服务器的身份认证,然后在认证服务器完成对客户端的授权。

(C)客户端使用访问令牌,向资源服务器发起请求。

(D)资源服务器返回,被请求的资源。

(E)客户端使用访问令牌,向资源服务器发起请求。

(F)资源服务器发现令牌有问题,返回错误。

(G)客户端使用更新令牌,向授权服务器发起请求,希望获取新的访问令牌。

(H)授权服务器返回新的访问令牌。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,563评论 18 139
  • 1. 微服务架构介绍 1.1 什么是微服务架构? 形像一点来说,微服务架构就像搭积木,每个微服务都是一个零件,并使...
    静修佛缘阅读 6,619评论 0 39
  • OAuth 是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版...
    badcyc阅读 260评论 0 0
  • 简介&目录 下一章44)举刀相向(日记) 43)妹家遭遇(日记) 2008年4月15日 阴 在二姐家,住得十分不安...
    上林叶阅读 281评论 2 3
  • (1) 女孩安静地靠着车窗坐下,旁边用书包留着一个座位。在这之前,她都是选择一个人待着。时节已入深秋,可是A市丝毫...
    一斋札记阅读 366评论 0 1