繁體中文(香港)
事後分析:意外的 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 驗證來匹配請求的域名。
對於發行者字段的更改是一個必要的修正,並且一些用戶可能已經適應了新行為。回滾會導致混亂和不一致。