简体中文
事后分析:意外的 JWT `iss` 变更
2024-03-18 JWT `iss` 更改的事故报告。
2024-03-18 JWT `iss` 更改的事故报告。
在 2024-03-18,Logto Cloud 中的一次更新改变了 JWT 签发者行为,导致具有自定义域和 iss 验证的用户的认证流程中断。解决该问题需要这些用户更新其验证逻辑。
iss 验证的用户。iss 验证。本次更新将 iss 字段更改为匹配请求的域,破坏了原来期望默认签发者的现有验证。
iss 行为。Logto Cloud 支持自定义域进行认证,启用自定义域的租户开发者可以在 SDK 中将终端设置为自定义域,然后最终用户将使用这个终端来初始化认证过程并获取令牌。一些令牌是以 JWT 形式存在的,其中包括一个 iss 字段来指示这个令牌的签发者。之前,即使使用自定义域终端请求访问令牌,签发者仍默认是我们的标准域([tenant-id].logto.app)。
然而,签发者的域应该与请求终端相同。因此,我们发布了一次更新来修复这个问题,现在 iss 字段将自动反映请求中使用的域。
对于那些已经在使用自定义域授予令牌并在资源服务器中实现了 iss 字段验证的用户而言,这可能是一个重大变更。由于签发者的更改,现有的认证检查将失败。为了解决这个问题,开发者需要更改验证代码,用自定义域替换预期的签发者。
我们未能充分考虑对现有 iss 验证的影响,结果是这次发布在没有提前通知的情况下成为一个重大变更。
通过电子邮件通知受影响的用户,建议他们更新 iss 验证以匹配请求的域。
该变更是签发者字段的必要修复,一些用户可能已经适应了新的行为。回滚会导致混乱和不一致。