Logto 製品アップデート
Logto v1.39.0 がリリースされました。より安全な署名キーのローテーション、賢くなった JWT スクリプトのエラー処理、拡張されたアカウントセンターのセキュリティ管理、WhatsApp コネクタのサポート、そしてキーセキュリティの改善が導入されています。
Logto v1.39.0 をご紹介できることを嬉しく思います。このリリースは、より強力な運用の安全性、柔軟なトークンカスタマイズ、そしてエンドユーザーのアカウントセキュリティの向上に焦点を当てています。このバージョンでは、秘密署名キーのローテーションに柔軟期間を導入し、カスタム JWT スクリプトのエラーハンドリングを設定可能とし、新しいアカウントセンターのセキュリティページや、Meta Cloud API 経由での WhatsApp コネクタサポート、そして認証フロー全体で複数のセキュリティと信頼性の改善が追加されています。
ハイライト
- 秘密署名キーのローテーション猶予期間: Logto は署名キーのローテーション時にグレース期間をサポートし、クライアントがダウンタイムなしでキャッシュされた JWKS を更新できるようになりました。
- カスタム JWT スクリプトのエラーハンドリング: アクセストークンとクライアントクレデンシャル JWT のカスタマイズで、スクリプト実行失敗時にトークン発行をブロックできるようになりました。
- アカウントセンターのセキュリティページ: エンドユーザーがアカウントセンターからソーシャルアカウントの連携、MFA、アカウント削除を管理できるようになりました。
- WhatsApp コネクタ: Meta Cloud API を通じて利用できる WhatsApp SMS コネクタが新たに追加されました。
- セキュリティと互換性の修正: パスワード忘れ時の認証応答が統一され、アカウント特定リスクを低減。アプリ内ブラウザでのソーシャル/SSOリダイレクトもより耐障害性が高くなりました。
新機能 & 強化点
秘密署名キーのローテーション猶予期間
Logto は秘密署名キーのローテーション中に猶予期間をサポートするようになりました。
設定方法:
PRIVATE_KEY_ROTATION_GRACE_PERIOD環境変数--gracePeriodCLI オプション
猶予期間中は:
- 新しく生成された署名キーが Next としてマークされます。
- 既存の署名キーは Current と して引き続き有効です。
- クライアントは新しいキーが有効になる前にキャッシュされた JWKS を更新する猶予があります。
猶予期間終了後は:
- 新しい署名キーが Current に移行します。
- 古い署名キーは Previous としてマークされます。
これにより、よりスムーズなキーのローテーションが可能となり、古い JWKS キャッシュによる認証失敗を防げます。
ドキュメント: 署名キーをローテーションする
カスタム JWT スクリプトのエラーハンドリング
Logto でアクセストークンおよびクライアントクレデンシャルフローで利用されるカスタム JWT スクリプトのエラーハンドリングが設定可能になりました。
含まれる変更点:
- カスタム JWT スクリプトが失敗した際にトークン発行をブロック可能に。
api.denyAccess()はaccess_denied応答として維持されます。- それ以外のブロッキングモードのスクリプト失敗は、ローカライズされた
invalid_request応答として返されます。 - コンソールに エラーハンドリング 専用タブが追加され、振る舞いを設定できます。
- 新規作成したスクリプトはデフォルトで
blockIssuanceOnErrorが有効化されています。 - 保存値のない既存スクリプトは従来通り無効のままになります。
- 関連するコンソールガイダンス・文言・スキーマ・統合対応も更新されました。
これにより開発者は、トークンカスタマイズ失敗時にセキュリティ要求に応じて open/fail closed を選択できます。
アカウントセンターのセキュリティページ
本リリースでアカウントセンターに新しいセキュリティページが追加されました。
エンドユーザーは /account/security からアカウントセキュリティを管理できます。内容:
- ソーシャルアカウントの連携・解除
- MFA・2段階認証
- アカウント削除
コンソール対応:
- サインイン体験のアカウントセンター設定にてアカウント削除 URL フィールドを公開。
- コンソール画面でアカウントセンターやソーシャルプリセット UI エントリも表示されます。
Meta Cloud API による WhatsApp コネクタ
Meta Cloud API 経由でメッセージ送信を行う WhatsApp コネクタが新たに追加されました。
公式 Meta Cloud API 統合を使った WhatsApp ベースの SMS/認証コード配信シナリオが利用可能となります。
Organization 配属 API レスポンスボディ
組織ユーザーおよびロールアサインメント API が応答ボディを返すようになりました。
更新されたエンドポイント:
POST /organizations/:id/usersはリクエストで送信したユーザーIDのエコーで{ userIds: string[] }を返します。POST /organizations/:id/users/:userId/rolesでは、割り当て後の重複排除済み最終ロールIDを{ organizationRoleIds: string[] }で返します(ロール名から解決されたIDを含む)。
コンソールテーマトークン更新
コンソールテーマに、ライト・ダーク両モードで不足していた --color-overlay-primary-subtle トークンが追加されました。
バグ修正 & 安定性
パスワードリセット確認の列挙耐性強化
パスワードリセット確認時、統一された verification_code.code_mismatch エラーのみを返すようになりました。
これによりメール・電話番号が存在するか否かを異なるエラー応答から判別できなくなります。
アプリ内ブラウザのソーシャルと SSO リダイレクト
Instagram、Facebook、LINE 等のアプリ内ブラウザでもソーシャル/SSOリダイレクトの信頼性が改善されました。
一部アプリ内ブラウザでは OAuth ID プロバイダページを新しい WebView で開くため、リダイレクト後 sessionStorage が失われてしまうことがありました。
このリリースで localStorage フォールバックが追加されます:
- リダイレクト状態は引き続き
sessionStorageに保存。 - バックアップのリダイレクトコンテキストバンドルも
localStorageに保存します。 - コールバック時、
sessionStorageが無い場合はlocalStorageから状態を復元します。 - フォールバックエントリは読込時に消費され、10分後に自動削除されます。
- 両方のストレージが空の場合、ユーザーにはエラートーストが表示されます。
認証コードコネクタリクエストの IP
認証コード送信時に、コネクタへリクエスト IP が渡されない問題を修正しました。
コネクタ側で適切な認証コード配信コンテキストを取得できるようになります。

