标签:oauth invalid prot 无效 传递 使用 ssi 资源 无线
OAuth2是一个关于授权(anthorization)的开放网络标准,是授权而不是认证,本身不能告诉你任何用户信息。OAuth2基于令牌Token的授权,在无需暴露用户密码的情况下,使应用能获取对用户数据有限的权限访问,让应用能够代表用户去访问用户的数据。
OAuth2主要包含4个角色,资源拥有者,客户端,授权服务器和资源服务器。
OAuth2 主要包含以下4种授权方式。
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI ---->| |
| User- | | Authorization |
| Agent -+----(B)-- User authenticates --->| Server |
| | | |
| -+----(C)-- Authorization Code ---<| |
+-|----|---+ +---------------+
| | ^ v
(A) (C) | |
| | | |
^ v | |
+---------+ | |
| |>---(D)-- Authorization Code ---------‘ |
| Client | & Redirection URI |
| | |
| |<---(E)----- Access Token -------------------‘
+---------+ (w/ Optional Refresh Token)
A) 用户代理(浏览器)将包含客户端标识符、请求的范围、本地状态和重定向URI定向到授权端点。
B) 资源拥有者通过用户代理对客户端的访问请求进行授权,授权服务器对通过用户代理(浏览器)对资源拥有者进行身份验证。
C) 假设资源拥有者授予访问权,授权服务器使用先前提供的重定向URI将用户代理(浏览器)重定向回客户端,同时附上一个授权码。
D) 客户端将授权码和重定向URI向授权服务器的令牌端点发送请求访问令牌。
E) 授权服务器对客户端进行身份验证,验证授权代码,并确保接收到的重定向URI与步骤C中用于重定向客户端的URI匹配。如果有效,授权服务器将访问令牌和(可选)刷新令牌进行响应。
+----------+
| Resource |
| Owner |
| |
+----------+
^
|
(B)
+----|-----+ Client Identifier +---------------+
| -+----(A)-- & Redirection URI --->| |
| User- | | Authorization |
| Agent -|----(B)-- User authenticates -->| Server |
| | | |
| |<---(C)--- Redirection URI ----<| |
| | with Access Token +---------------+
| | in Fragment
| | +---------------+
| |----(D)--- Redirection URI ---->| Web-Hosted |
| | without Fragment | Client |
| | | Resource |
| (F) |<---(E)------- Script ---------<| |
| | +---------------+
+-|--------+
| |
(A) (G) Access Token
| |
^ v
+---------+
| |
| Client |
| |
+---------+
A) 用户代理(浏览器)将包含客户端标识符、请求的范围、本地状态和重定向URI定向到授权端点。
B) 资源拥有者通过用户代理对客户端的访问请求进行授权,授权服务器对通过用户代理(浏览器)对资源拥有者进行身份验证。
C) 假设资源所有者授予访问权,则授权服务器使用前面提供的重定向URI将用户代理重定向回客户端。重定向URI包括URI片段中的访问令牌。
D) 用户代理遵循重定向指令,向Web托管的客户端资源发出请求。用户代理在本地保留片段信息。
E) Web托管的客户端资源返回能够访问完整重定向URI(包括用户代理保留的片段)的网页(通常是带有嵌入式脚本的HTML文档),并提取片段中包含的访问令牌(和其他参数)。
F) 用户代理在本地执行Web托管客户端资源提供的脚本,后者提取访问令牌。
G) 用户代理将访问令牌传递给客户端.
+----------+
| Resource |
| Owner |
| |
+----------+
v
| Resource Owner
(A) Password Credentials
|
v
+---------+ +---------------+
| |>--(B)---- Resource Owner ------->| |
| | Password Credentials | Authorization |
| Client | | Server |
| |<--(C)---- Access Token ---------<| |
| | (w/ Optional Refresh Token) | |
+---------+ +---------------+
A) 资源拥有者向客户端输入密码
B) 客户端携带密码向授权服务器发送请求
C) 授权服务器验证通过后返回返回访问令牌,可同时选择性的返回刷新令牌
+---------+ +---------------+
| | | |
| |>--(A)- Client Authentication --->| Authorization |
| Client | | Server |
| |<--(B)---- Access Token ---------<| |
| | | |
+---------+ +---------------+
A) 客户端携带客户端身份凭证向授权服务器发送请求
B) 授权服务器验证通过后返回访问令牌。
+--------+ +---------------+
| |--(A)------- Authorization Grant --------->| |
| | | |
| |<-(B)----------- Access Token -------------| |
| | & Refresh Token | |
| | | |
| | +----------+ | |
| |--(C)---- Access Token ---->| | | |
| | | | | |
| |<-(D)- Protected Resource --| Resource | | Authorization |
| Client | | Server | | Server |
| |--(E)---- Access Token ---->| | | |
| | | | | |
| |<-(F)- Invalid Token Error -| | | |
| | +----------+ | |
| | | |
| |--(G)----------- Refresh Token ----------->| |
| | | |
| |<-(H)----------- Access Token -------------| |
+--------+ & Optional Refresh Token +---------------+
A) 客户端通过与授权服务器进行身份验证并提供授权码方式来请求访问令牌。
B) 授权服务器对客户端进行身份验证并验证授权授予,如果有效,则发出访问令牌和刷新令牌。
C) 客户端通过提供访问令牌向资源服务器发出受保护的资源请求。
D) 资源服务器验证访问令牌,如果有效,则为请求返回受保护的资源。
E) 客户端会使用访问令牌重复的向资源服务器发送请求。
F) 由于访问令牌无效,所以资源服务器返回无效的令牌错误。
G) 客户端通过与授权服务器进行身份验证并显示刷新令牌来请求新的访问令牌。客户端身份验证要求基于客户端类型和授权服务器策略。
H) 授权服务器对客户端进行身份验证并验证刷新令牌,如果有效,则发出一个新的访问令牌(以及可选的新刷新令牌)。
标签:oauth invalid prot 无效 传递 使用 ssi 资源 无线
原文地址:https://www.cnblogs.com/CanDmy/p/13093836.html