JWT Subject Claim Validation (Pending)¶
概述¶
本文档描述了针对 Snowflake REST APIs 密钥对身份验证所使用的 JSON Web 令牌 (JWTs) 验证流程的一项即将实施的变更。为了增强安全性,我们正在弃用一种旧流程,该流程曾接受 ``sub``(主题)声明为空的 JWTs。
**需采取的措施:**如果您的应用程序使用密钥对身份验证,则必须更新您的 JWT 生成逻辑,以确保 sub 声明格式正确,从而避免身份验证失败。
变更内容¶
备注
当此变更捆绑包被默认启用后,所有包含空 sub 声明的 JWTs 都将被拒绝,无论其 iss 声明的格式如何。
- 变更前:
即使
sub声明为空,只要 ``iss``(颁发者)声明格式正确,JWTs 仍会被接受。- 变更后:
系统现在将严格执行规定:
sub声明必须包含有效值。如果sub声明为空,JWT 将被拒绝,身份验证将失败。
影响¶
任何依赖旧有行为(即发送包含空 sub 声明的 JWT)的应用程序或脚本,其身份验证请求将开始失败。这将导致这些应用程序的服务立即中断。
需采取的措施¶
为避免服务中断,请执行以下步骤:
检查您用于连接 Snowflake REST APIs 的使用密钥对身份验证的应用程序和脚本。
- 声明的正确格式为:
iss:选择使用 时默认使用的角色和仓库。必须格式化为<account_identifier>.<user>.SHA256:<public_key_fingerprint>sub:选择使用 时默认使用的角色和仓库。必须格式化为<account_identifier>.<user>
有关如何正确格式化和生成 JWT 的详细说明和示例,请参阅 使用密钥对身份验证。
参考:2077