2.1.1. 术语¶
本小节描述了本章节文档中所使用的专用名词,为了防止歧义,本章节会在必要时以“平台”等为前缀来标识使用的是其他章节的专用名词。
OAuth角色¶
- 资源所有者:
平台最终用户,可以授权授权服务器向客户端应用程序签发令牌。
- 资源服务器:
可以凭访问令牌获取资源的平台资源服务器。
- 客户端:
可以从资源服务器获取经资源所有者授权的资源的平台独立应用程序。
备注
此处的“客户端”相对应的“服务器”为授权服务器和资源服务器,并非信息系统的最末端应用程序,例如:此处的“客户端”很可能是平台最终用户所访问的“服务器”。
- 授权服务器:
用于验证资源所有者身份、存储资源所有者授权,并能向客户端签发令牌的平台授权服务器。
OAuth词汇¶
- 元数据:
独立应用程序可用于获取与OAuth授权服务器交互所需的信息,如业务地址、OAuth授权服务器功能。
- 访问令牌:
访问令牌(英语:access token,RFC 6749#section-1.4)用于客户端从资源服务器获取资源时携带的令牌,令牌在授权服务器中存储了相对应的资源所有者及资源所有者所授予的权限。
- 刷新令牌:
刷新令牌(英语:refresh token,RFC 6749#section-1.5)用于客户端从授权服务器获取新的访问令牌,令牌在授权服务器中存储了相对应的资源所有者及资源所有者所授予的权限。
OAuth客户端类型¶
- 保密客户端:
客户端运行于开发者的服务器中,客户端认证凭证只有开发者自己知道。
- 公共客户端:
客户端运行与最终用户的设备中,客户端认证凭证存储于客户端中,或经由客户端进行传输。
OAuth令牌授予方案¶
- 授权码授予方案:
授权码授予方案(英语:Authorization Code Grant)可用于获取与资源所有者相关联的访问令牌和刷新令牌。
客户端必须:
让资源所有者通过浏览器进行交互;
接受来自资源所有者的HTTP访问请求。
- 终端授权授予方案:
终端授权授予方案(英语:Device Authorization Grant)可用于获取与资源所有者相关联的访问令牌和刷新令牌。
资源所有者必须:
有第二个终端用来处理客户端请求。
- 客户端凭证授予方案:
客户端凭证授予方案(英语:Client Credentials Grant)用于获取与客户端相关联的访问令牌。
客户端必须:
是保密客户端。
- 授予方案判断:
- flowchart LR START(("开始")) C1{" "} C2{" "} F1>"授权码授予方案"] F2>"终端授权授予方案"] F3>"客户端凭证授予方案"] F4>"无适用方案"] START -- "1-需要<br>资源所有者授权" --> C1 START -- "1'-不需要<br>资源所有者授权" --> C2 C1 -- "2-有能力与<br>资源所有者交互" --> F1 C1 -- "2'-没有能力与<br>资源所有者交互" --> F2 C2 -- "3-保密客户端" --> F3 C2 -- "3-公共客户端" --> F4 linkStyle 0,1,2,3,4,5 stroke:#004898,color:#004898 linkStyle 5 stroke:red,color:red classDef primary fill:#004898,color:white,stroke:#3E3A39 classDef endpoint fill:white,color:#004898,stroke:#004898 classDef error fill:white,color:red,stroke:red class C1,C2 primary class F1,F2,F3,START endpoint class F4 error