RFC 8628 - OAuth 2.0 设备授权授予
- 状态: Proposed Standard
- 发布日期: August 2019
- Stream: IETF
- 勘误: 无勘误
摘要
本文档定义了 OAuth 2.0 设备授权授予流程, 允许输入受限设备 (如智能电视) 获取 OAuth 令牌.
相关资源
- 官方文本:
https://www.rfc-editor.org/rfc/rfc8628.txt - 官方页面:
https://datatracker.ietf.org/doc/html/rfc8628
3. 协议 (Protocol)
子章节 (Subsections)
- 3.1. Device Authorization Request (设备授权请求)
- 3.2. Device Authorization Response (设备授权响应)
- 3.3. User Interaction (用户交互)
- 3.4. Device Access Token Request (设备访问令牌请求)
- 3.5. Device Access Token Response (设备访问令牌响应)
本章定义 OAuth 2.0 device authorization grant 的完整 protocol flow, 包括 device authorization request, authorization response, user interaction, access token request 和 access token response 等关键步骤.
5. Security Considerations (安全考量)
子章节
- 5.1. User Code Brute Forcing (用户代码暴力破解)
- 5.2. Device Code Brute Forcing (设备代码暴力破解)
- 5.3. Device Trustworthiness (设备可信度)
- 5.4. Remote Phishing (远程钓鱼)
- 5.5. Session Spying (会话窥探)
- 5.6. Non-Confidential Clients (非机密客户端)
- 5.7. Non-Visual Code Transmission (非可视代码传输)
本章节讨论 OAuth 2.0 device authorization grant protocol 的安全考量, 包括 user code 和 device code 暴力破解, 设备可信度, 远程钓鱼, 会话窥探, 非机密客户端, 以及非可视代码传输等问题.
7. IANA Considerations (IANA 考量)
本规范在 OAuth 2.0 建立的 IANA 注册表中注册以下值.
7.1. OAuth 参数注册
本规范在由 [RFC6749] 建立的 IANA "OAuth Parameters" 注册表 [IANA.OAuth.Parameters] 中注册以下值.
注册参数:
-
device_code
- 参数使用位置: token request
- 变更控制者: IESG
- 参考: RFC 8628 第 3.4 节
-
user_code
- 参数使用位置: device authorization response
- 变更控制者: IESG
- 参考: RFC 8628 第 3.2 节
-
verification_uri
- 参数使用位置: device authorization response
- 变更控制者: IESG
- 参考: RFC 8628 第 3.2 节
-
verification_uri_complete
- 参数使用位置: device authorization response
- 变更控制者: IESG
- 参考: RFC 8628 第 3.2 节
7.2. OAuth URI 注册
本规范在由 [RFC6755] 建立的 IANA "OAuth URI" 注册表 [IANA.OAuth.Parameters] 中注册以下值.
- URN:
urn:ietf:params:oauth:grant-type:device_code - 通用名称: OAuth 2.0 的 Device Authorization Grant Type
- 变更控制者: IESG
- 规范文档: RFC 8628 第 3.4 节
7.3. OAuth 扩展错误注册
本规范在由 [RFC6749] 建立的 IANA "OAuth Extensions Error Registry" [IANA.OAuth.Parameters] 中注册以下值.
注册错误代码:
-
authorization_pending
- 使用位置: Token endpoint response
- 协议扩展: RFC 8628
- 变更控制者: IETF
- 参考: RFC 8628 第 3.5 节
-
slow_down
- 使用位置: Token endpoint response
- 协议扩展: RFC 8628
- 变更控制者: IETF
- 参考: RFC 8628 第 3.5 节
-
expired_token
- 使用位置: Token endpoint response
- 协议扩展: RFC 8628
- 变更控制者: IETF
- 参考: RFC 8628 第 3.5 节
7.4. OAuth 授权服务器元数据
本规范在由 [RFC8414] 建立的 IANA "OAuth Authorization Server Metadata" 注册表 [IANA.OAuth.Parameters] 中注册以下值.
- 元数据名称:
device_authorization_endpoint - 元数据描述: authorization server 的 device authorization endpoint URL
- 变更控制者: IESG
- 参考: RFC 8628 第 4 节
RFC 8628 - 第 5-8 节摘要
本文档是 zh-Hans 本地化清理后的辅助摘要页. RFC 正文章节已经拆分到对应页面中, 本页只保留导航性概览.
Section 5: Security Considerations (安全考量)
第 5 节讨论 device flow 的主要安全风险, 包括 user code 暴力破解, device code 暴力破解, 设备可信度, 远程钓鱼, 会话窥探, 非机密客户端, 以及非可视代码传输. 重点防护措施包括速率限制, 足够的代码熵, 设备所有权确认, 短生命周期 user code, 以及对物理运行环境的考虑.
Section 6: Usability Considerations (可用性考量)
第 6 节给出非规范性的可用性建议. user code 字符集应兼顾移动设备输入便利性和足够熵. 推荐示例包括 base 20 字符集 BCDFGHJKLMNPQRSTVWXZ, 示例代码 WDJB-MJHT, 以及纯数字示例 019-450-730.
Section 7: IANA Considerations (IANA 考量)
第 7 节注册 OAuth 参数 device_code, user_code, verification_uri, verification_uri_complete, 注册 grant type URI urn:ietf:params:oauth:grant-type:device_code, 注册扩展错误代码 authorization_pending, slow_down, expired_token, 并注册 authorization server metadata 字段 device_authorization_endpoint.
Section 8: Normative References (规范性引用)
第 8 节列出规范性引用, 包括 [RFC2119], [RFC6749], [RFC6755], [RFC6819], [RFC7525], [RFC8174], [RFC8252], [RFC8259], [RFC8414], [RFC8446], 以及 IANA OAuth Parameters 注册表.