事後分析:予期しない JWT `iss` の変更
2024年3月18日の予期しない JWT `iss` 変更に関するインシデントレポート。
2024年3月18日の予期しない JWT `iss` 変更に関するインシデントレポート。
2024年3月18日、Logto Cloud の JWT 発行者の動作が変更され、カスタムドメインを持つユーザーと iss 検証を行っているユーザーの認証フローが破損しました。この修正には、ユーザーが検証ロジックを更新する必要がありました。
iss 検証を行っているユーザー。iss 検証が破損。アップデートにより、iss フィールドが要求されたドメインと一致するようになり、以前のデフォルト発行者を期待する既存の検証が破損しました。
iss の動作が変更。Logto Cloud は認証にカスタムドメインをサポートしています。カスタムドメインが有効なテナントを持つ開発者は、SDKでエンドポイントをカスタムドメインに設定でき、最終ユーザーはこのエンドポイントを使用して認証プロセスを開始し、トークンを取得します。一部のトークンは JWT 形式で、トークンの発行者を示す iss フィールドが含まれています。以前は、カスタムドメインのエンドポイントを使用してアクセストークンを要求しても、発行者は依然として標準ドメイン ([tenant-id].logto.app) にデフォルトで設定されていました。
しかし、発行者のドメインは要求されたエンドポイントと同じであるべきです。この問題を修正するためにアップデートをリリースし、今後は iss フィールドがリクエストに使用されたドメインを自動的に反映するようになります。
すでにカスタムドメインを使用してトークンを発行し、リソースサーバーで iss フィールド検証を実装しているユーザーにとって、これは重要な変更となる可能性があります。発行者の変更により既存の認証チェックが失敗します。これを修正するためには、開発者は検証コードを変更し、期待される発行者をカスタムドメインの新しいものに置き換える必要があります。
既存の iss 検証への影響を完全に考慮することができず、結果としてこのリリースが事前の通知なしに破壊的変更となってしまいました。
影響を受けたユーザーにメールで通知し、リクエストされたドメインに一致するように iss 検証を更新するようにアドバイスしました。
発行者フィールドに対するこの変更は必要な修正であり、一部のユーザーはすでに新しい動作に適応している可能性があります。ロールバックすると混乱と不整合が生じるでしょう。