跳转至

发送方约束

发送方约束是一种安全机制,可以在访问令牌和刷新令牌泄露或被盗时,降低其被滥用的风险。Authany 通过 OAuth 2.0 规范中定义的 DPoP(Demonstration of Proof of Possession,占有权证明) 为刷新令牌提供发送方约束支持,为受支持的客户端提供更强的保护。

什么是发送方约束?

默认情况下,OAuth 令牌是 持有者令牌(bearer token):任何持有有效令牌的人都可以使用它。如果令牌通过日志记录、设备被入侵或网络拦截等方式泄露,攻击者就可以在令牌过期或被吊销之前反复使用它。

发送方约束通过 将令牌绑定到特定客户端 来降低这种风险。经过发送方约束的令牌不再是任何一方都可以使用,客户端在使用该令牌时必须以密码学方式证明自己的身份。

DPoP 是一种发送方约束机制,客户端会在请求中附加一个签名证明,以证明自己持有与该令牌关联的私钥。

Authany 如何使用 DPoP

Authany 支持基于 DPoP 的发送方约束,适用于刷新令牌。

使用 DPoP 时:

  • 刷新令牌会绑定到客户端生成的加密密钥
  • 刷新令牌请求必须包含有效的 DPoP 证明
  • 该证明用于表明请求方持有与令牌关联的私钥

这样即使令牌值被盗,也可以防止攻击者重复使用刷新令牌。

支持的客户端

较新版本的 Authany Mobile SDK 支持 DPoP,并会自动管理 DPoP 密钥的生成和存储。

由于 Web 环境无法可靠地提供安全的私钥存储,因此 Authany Web SDK 不支持 DPoP。

如何启用 DPoP 验证

您可以在 Authany 管理台中按 应用级别 启用 DPoP 验证。此选项仅在应用类型为 原生应用(Native App) 时可用。

  1. 登录 Authany 管理台
  2. 进入 应用
  3. 选择要配置的应用
  4. 启用 DPoP 验证 选项
  5. 保存更改

启用后,Authany 会针对与该应用关联的受支持客户端发来的请求,验证其 DPoP 请求头。

向后兼容性

DPoP 验证仅适用于以 DPoP 绑定方式签发的刷新令牌。

未使用 DPoP 绑定签发的刷新令牌不受影响,将继续正常工作。

此选项:

  • 不会 要求所有客户端都发送 DPoP 证明
  • 不会 阻止或禁用非 DPoP 客户端
  • 不会 追溯使已签发的令牌失效