Skip to main content
最终版标准轨道
字段
SEP1046
标题在授权中支持 OAuth 客户端凭证流程
状态最终版
类型标准轨道
创建日期2025-07-23
作者Darin McAdams (@D-McAdams )
赞助人
PR#1046

摘要

建议在授权规范中添加 OAuth 客户端凭证流程,以启用机器对机器场景。

动机

原始授权规范提到了客户端凭证流程,但在后续修订中被删除了。因此,目前规范对于如何解决终端用户无法进行交互式授权的机器对机器场景保持沉默。

规范

授权规范将被修订,将 OAuth 客户端凭证流程列为允许项。遵循 OAuth 2.1 建立的模式,规范将推荐使用 RFC 753(JWT 断言)中定义的非对称方法,但也允许使用客户端密钥。 作为对实现者的指导,规范概述也将更新,以描述不同的流程及其适用时机。此外,为解决一个常见问题,规范将更新以表明实现者可以实现超出定义范围的其他授权场景;强调规范定义的是基线要求。

理由

为了最大化互操作性(并最小化 SDK 复杂性),此更改将故意将客户端凭证流程限制为两个选项:
  1. 根据 RFC 7523 的 JWT 断言(推荐)
  2. 通过 HTTP 基本认证的客户端密钥(允许以最大程度兼容现有系统)
其他选项(如 mTLS)不包含在内。 虽然规范鼓励使用 RFC 7523(JWT 断言),但尚未指定如何填充 JWT 内容,也未指定如何发现客户端的 JWKS URI 以验证 JWT。在规范的未来迭代中,这样做将是有益的。然而,目前尚未指定这一点,有待其他可以定义这些配置文件的 RFC 成熟。其他 RFC 包括 WIMSE 无头 JWT 认证(用于指定 JWT 内容)和 客户端 ID 元数据(用于指定 JWKS URI)。此修订版故意保留了对这些未来配置文件的扩展性。实际上,这意味着需要尽快发布解决方案的实现者很可能会使用当今广泛支持的客户端密钥,而 JWT 断言模式代表了长期方向。

向后兼容性

此更改完全向后兼容。它引入了一种新的授权流程,但不改变现有流程。

安全影响

规范参考了现有的 OAuth 安全指南。