持有值即可代表相同的使用能力
RFC 6750用是否需要额外密钥持有证明来定义Bearer性质,而不是以令牌外观定义。一个令牌可以是不透明字符串,也可包含可验证资料;看起来像JWT、具有签名或无法直接读懂,都不自动改变其持有者可使用的性质。
这种使用方式把令牌本身变成敏感凭据。若别人复制了仍有效的令牌,而系统没有额外发送者约束,原有签名不会阻止对方照样提交;签名防止擅改内容,与防止复制后使用解决的是不同问题。
凭据的传送位置影响暴露范围
Bearer资源请求通常通过Authorization头携带令牌,并使用适当的受保护连接。连接加密保护传输,却不会自动防止端点把凭据写进日志、持久保存到不受控位置或交给错误接收方;应用仍须管理它经过的边界。
旧规范曾记录URL查询参数用法并劝阻使用,RFC 9700进一步明确不得如此传递访问令牌。包含令牌的URL可能进入浏览历史或日志,因此不能因为地址采用HTTPS,就认为查询参数里的凭据不会在这些位置留下。
限制用途与证明发送者不同
资源服务器还要检查令牌是否有效、是否面向自己,以及是否覆盖当前资源与操作。短有效期和更窄范围可以减少一次泄露的影响,但不把仍可复制使用的令牌自动变成发送者绑定凭据。
当前OAuth最佳实践建议采用适当发送者约束,例如以双向TLS或DPoP让调用方证明控制与令牌绑定的密钥。这是在持有令牌值之外再增加条件,不能只给令牌添一个未验证的设备名称,就声称已获得同样的保证。
参考:[3]