6. 隐私考量 (Privacy Considerations)
由于 JWT 访问令牌以值的形式携带信息, 客户端甚至潜在的最终用户现在可以直接查看未加密令牌中的 claim 集合.
客户端禁止 (MUST NOT) 检查访问令牌的内容: 授权服务器和资源服务器可能随时决定更改令牌格式 (例如, 从本 profile 切换为不透明令牌); 因此, 客户端中任何依赖读取访问令牌内容能力的逻辑都会在没有补救方式的情况下失效. OAuth 2.0 框架假定客户端将访问令牌视为不透明值. 授权服务器管理员还应考虑到访问令牌内容对客户端可见. 每当客户端访问访问令牌内容会在给定场景中带来隐私问题时, 授权服务器都需要采取明确措施加以防止.
在 JWT 访问令牌可供最终用户访问的场景中, 应评估访问这些信息是否不会造成隐私侵犯 (例如, 最终用户只是访问自己的个人信息), 或者是否必须采取措施来强制保证机密性.
防止信息泄露给客户端和最终用户的可能措施包括: 加密访问令牌、加密敏感 claim、省略敏感 claim 或不使用本 profile, 以及回退到不透明访问令牌.
在每种场景中, JWT 访问令牌的内容最终都会被资源服务器访问. 因此, 重要的是评估资源服务器是否获得了适当授权, 可以访问以 claim 形式收到的任何内容, 例如通过某种形式的用户同意、与运行授权服务器的组织之间的策略和协议等. 例如, 用户可能不希望同意向某个资源服务器授予 Section 2 (及其子节) 中列举的任何非强制 claim 的信息.
本 profile 要求每个 JWT 访问令牌中都存在 "sub" claim, 使资源服务器可以依赖该信息, 将传入请求与本地存储的已认证主体数据相关联. 虽然在许多场景中, 关联请求的能力可能是设计所要求的, 但也存在授权服务器希望防止关联的场景. 授权服务器应根据隐私影响评估来填充 "sub" claim. 例如, 如果某个方案要求防止跨多个资源服务器跟踪主体活动, 授权服务器应确保面向不同资源服务器的 JWT 访问令牌具有不同的 "sub" 值, 即使资源服务器串通也无法关联这些值. 类似地, 如果某个方案要求防止资源服务器在资源自身范围内关联主体活动, 授权服务器应为签发的每个 JWT 访问令牌分配不同的 "sub" 值. 相应地, 客户端应为每次调用资源服务器获取新的 JWT 访问令牌, 以确保资源服务器在每次调用中收到不同的 "sub" 和 "jti" 值, 从而防止不同请求之间的关联.