Logto 製品アップデート
Logto v1.40.0 では、監査ログ用の期間指定ピッカー、より豊富な組織メンバーシップ Webhook ペイロード、大規模組織向けの大幅なパフォーマンス向上、そしてセルフホスティングでの利便性を高めるいくつかの改善が含まれています。
Logto v1.40.0 は、プラットフォーム強化リリースです。監査ログが大規模環境でも実用的になり、組織メンバーシップ Webhook で何が変更されたのかを正確に追跡でき、大規模テナントの組織検索が高速化され、セルフホスト導入時の長年の不便がいくつか解消されています。さらに、3 つの新しいコネクタも追加されています。新機能は以下の通りです。
実際に範囲指定できる監査ログ
監査ログは “何かが起きた直後” に最も役立ちますが、これまでコンソールは無制限のウィンドウで取得していたため、大量ログがあるテナントで遅くなっていました。
今回のリリースでは監査ログページに 期間指定ピッカー が追加され、デフォルトでは直近 7 日間が選ばれます。直近 1 時間・直近 24 時間・直近 7 日間・直近 30 日間 などのプリセットとカスタム範囲を選択でき、ウィンドウを広げるだけで過去のログも簡単に参照可能です(#8810)。
内部実装では、Management API における GET /api/logs や GET /api/hooks/{id}/recent-logs に start_time・end_time クエリパラメータ(unixtime ミリ秒、両端排他的)を追加し、プログラムで範囲を指定したログ取得も可能になりました(#8806)。大規模テナント用に enableCap=true パラメータを追加し、件数カウントクエリを約 10,000 行で早期終了・Total-Number-Is-Capped: true ヘッダーで通知し、確実な合計件数より高速応答を優先します。制限到達時はコンソールが「前へ/次へ」レイアウトに自動で切り替わります(#8796, #8802)。パラメータの指定がなければデフォルト挙動は変わりません。
組織メンバーシップ Webhook で “何が” 変わったか分かるように
以前の Organization.Membership.Updated Webhook からは “変更があった” ことしか分かりませんでしたが、今後は明示的な差分フィールド — addedUserIds / removedUserIds や addedApplicationIds / removedApplicationIds — を全メンバーシップエンドポイントで通知し、招待受諾および JIT プロビジョニング(メールドメインまたは SSO の JIT)における addedUserIds も含みます(#8840)。
この仕様変更は付加的かつ非破壊的です:空の差分は省略され、各配列はバルク操作時に最大 5,000 要素までに制限されます(それ以上の場合は GET /organizations/:id/users または .../applications で同期してください)。全仕様は Webhook リファレンス を参照してください。なお、本対応は従来のコミュニティ提案を超えるものです — @chiche84 に感謝(#8752)。
また、session 関連コードの改修時に、GET /api/my-account/sessions 各要素へ isCurrent フラグを追加しました。これによりセッション管理 UI で「このデバイス」行をハイライトし、利用中セッションの誤削除を防げます(#8731)。
拡大しても高速な組織管理
大規模組織向けに以下の最適化を施しました:
GET /organizations/:id/usersでLATERALサブクエリによりロール集約を行い、LIMITでユーザー集合を先に絞ってからロール検索します(従来はmembers × roles全量結合が毎回実行されていました)(#8826)。- サインインやミドルウェア用に
organization_user_relations (tenant_id, user_id)、getUserScopesおよびユーザーロール連携用にorganization_role_user_relations (tenant_id, organization_id, user_id)の新たなセカンダリインデックス 2 つを追加し、逆引き参照を高速化しました(#8818, #8819)。 PUT /organizations/:id/usersでは、新たな差分クエリ方式を採用し、実際に変更があった行のみを更新します(呼び出しごとに全行書き換えしていた以前とは異なります)。生き残るメンバーのロール割り当ても維持されます(#8820)。
アカウントセンターとサインインの修正
- サインイン→登録時の利用規約 「登録時のみチェックボックス同意必須」ポリシー設定時、未登録メール/電話番号でサインインし「新しいアカウント作成」を選ぶと、アカウント作成前に同意が求められるようになりました(専用登録・ソーシャル/SSO のフローと統一)(#8835)。
- 初回パスワード設定 パスワード・メール・電話が未設定の利用者は、Account API 経由で検証記録なしに初回パスワードを設定可能になりました(#8746)。
- サイレント再認証 利用者情報取得エラー(例:同一ブラウザ内のユーザー切り替えで発生する古いアクセストークンなど)時、Account Center は
prompt=noneで再認証を行い、ログイン画面へ跳ね返る挙動を回避します。@taka-guevara に感謝(#8785)。 - セッション期限切れとソーシャルコールバックの改善 Account Center の期限切れ時はサインインエラーのフラッシュなしにリダイレクトされ、ソーシャル紐付けコールバックでは
connectorIdが正しく読まれるようになり、2 段階認証トグルのラベルも分かりやすくなりました(#8830, #8758, #8792)。 - i18n MFA 用語中の "Passkey" の中国語訳ミスを修正。@rotempasharel1 に感謝(#8870)。
新規および改善されたコネクタ
このリリースではコミュニティ発のものを含め 3 つのコネクタが新規追加、既存コネクタも多数改良されています:
- MailJunky トランザクション認証メール用メールコネクタ @devadarshh の寄稿(#8638)。
- SMSBao 国内 SMS 認証用コネクタ @wintbiit の寄稿(#8871)。
- Aliyun SMS 認証サービス コネクタ @CertStone の寄稿(#8385)。
- Aliyun Direct Mail で Direct Mail 地域設定が可能に(#8892)。
- WeCom が追加 API コールでより詳細なユーザープロファイル取得に対応 @liyujun-dev の寄稿(#8191)。
- SMTP で
auth設定時にuser・passの省略が可能になり、IP/VLAN などソースで認証されるリレー用途で資格情報偽造なしで動作します(#8888)。 - Connector Kit でドットを含む省略語に引っかからないよう、メールブランディング URL 検知を厳密化 @aayushbaluni に感謝(#8747)。
セルフホスト環境向け
オープンソース導入時の利便性向上も:
エアギャップ管理者セットアップ
installとdb seedコマンドが--dapc(別名--disable-admin-pwned-password-check)フラグに対応。管理者テナントの初期パスワードポリシーでは Have I Been Pwned 脅威チェックがデフォルト有効となっており、管理者パスワードごとにapi.pwnedpasswords.comへアクセスするため、そのエンドポイントに接続できない場合初回登録フローがハングしていました。--dapc指定時は脅威チェック無効ポリシーがシードされ、管理者登録に外部通信が不要となります(@darcyYe、#8859)。
管理者署名キーの DB 参照 OSS 導入時、管理者テナント署名キーは DB から直接読み込む方式になりました。以前のように Logto コンテナが自身の管理者テナント OIDC 設定を外部エンドポイントからフェッチするためのホスト/DNS 設定は不要です(#8869)。
マイグレーション必須 v1.40.0 には DB スキーマ変更(新しい組織リレーション Index や内部カラムの追加)が含まれます。新バージョン取得後、サーバー起動前に DB 適用ステップを実行してください。アップグレードガイド を参照。
はじめよう
アップグレード準備はできましたか?アップグレードガイド で手順を確認してください。
全変更一覧は GitHub リリースページ をご覧ください。

