Logto 製品アップデート
Logto v1.41.0 では、アプリレベルのアクセス管理、パスワード有効期限ポリシー、大規模なアカウントセンターのアップグレード、設定可能なユーザー名および認証コードルール、より安全なメッセージ配信、さらに一連のプロトコル/セキュリティ強化を導入しました。
Logto v1.41.0 では、アプリレベルのアクセス管理、パスワード有効期限ポリシー、大規模なアカウントセンターのアップグレード、設定可能なユーザー名および認証コードルール、より安全なメッセージ配信、さらに一連のプロトコル/セキュリティ強化を導入しました。
Logto v1.41.0 はコントロールおよびセキュリティ強化リリースです。チームは各アプリへのアクセス権をより細かく決められるようになり、パスワードのライフサイクル管理も強化され、エンドユーザー向けのアカウントセンターも大幅に強力になりました。また、認証コード配信、ユーザー名ルール、SAML/OIDC 処理、MFA リプレイ保護、セルフホスト環境のアップグレードパスも強化されています。新機能を紹介します。
Logto から直接、アプリケーションへのアクセスを制限できるようになりました。アクセスルールは特定ユーザー、ユーザーロール、組織、または組織ロールまで対象にできます。
設定したルール条件に該当しないユーザーのログインやアプリへのアクセスフローは、アクセス拒否ページで遮断され、リクエストが継続しなくなります。これにより、アプリのローンチ、顧客ごとのアクセス管理、社内ツール保護、組織単位のアクセス制御がアプリケーションコードに全面的に委ねることなく簡単に管理できます。
フルセットアップフローは アプリレベルのアクセス管理ドキュメント を参照してください。
コンソールで セキュリティ > パスワードポリシー からテナント単位のパスワード有効期限を設定できるようになりました。
管理者はパスワード有効期限を有効化し、パスワードの有効日数を設定し、ユーザー詳細ページから特定ユーザーのパスワードのみを手動で満了できます。パスワードが失効した場合、ユーザーは構成された復旧方法でリセットしないとパスワードでのサインインができなくなります。
SSO およびパスキーサインインには影響しません。パスワード変更のタイムスタンプが記録されていない既存ユーザーも柔軟に対応:ポリシー有効化時点を基準とし、即時有効期限切れにはならずフルの有効期間を付与します。
エンドユーザー向けに、アカウントセンターが自己管理可能な本格的なアイデンティティ画面へ進化し続けています。
このリリースでは、セッション管理、連携済みサードパーティアプリの確認、プロフィール管理、アバターアップロード、サインアップ時のアバターアップロード、独立したパスキー制御、パスキーサインインプロンプトのユーザー設定などを追加しました。
アカウントセンタープロフィールページ、サインアップ時のカスタムプロフィール項目、アバターアップロードエンドポイントも開発機能ゲートから解放されました。
いくつかの重要な修正も含まれています:
テナント単位のユーザー名ルールは コンソール > サインイン体験 > サインアップ・サインイン > 詳細設定 から設定できるようになりました。
このポリシーでは大文字小文字の区別、長さ制限、許可文字タイプを網羅します。サインアップ、プロフィール充足、アカウントセンター、アカウント API、/me などエンドユーザーのユーザー名書き込み動作すべてで適用されます。
大文字小文字非区別ポリシーへの切り替えは安全設計:先に大文字小文字のみ異なる既存ユーザー名を検出し、衝突が解消されるまでポリシー変更をブロックします。OIDC の preferred_username クレームも、profile.preferredUsername が未設定の場合はユーザーの username を使うようになりました。
認証コード管理もコンソールのセキュリティ設定へ移動。管理者は認証コードの有効期限や最大リトライ回数を設定できます。
Logto は、メール/SMS の認証・招待配信経路すべてで、受信者単位のシステムレベル送信レート制限を適用します(Experience、MFA、アカウント API、管理 API、/me、組織招待、レガシーインタラクション API を含む)。
送信が制限された場合、Logto は Message.RateLimited Webhook イベントを発出します。これはコンソールの Webhook 設定でも選択できます。
登録が無効な場合、未知の受信者への認証コード配信も抑制され、アカウント推測リスクが低減されます。
組織 API リソーストークンの場合、アクセストークン JWT カスタマイザーは context.organization(対象組織の id、name、description、customData を含む)を受け取るようになりました。
これにより、全トークンへ全組織マッピングを埋め込むことなく、組織ごとのクレームを容易に追加可能です。
API の改善もいくつか反映されています:
POST /api/applications/:applicationId/roles が冪等になり、既存 role ID は 422 application.role_exists を返さずスキップされます。{ roleIds, addedRoleIds } を返すようになり、ユーザーロール割り当て API と形式が一致しました。今回のリリースには、プロトコルとセキュリティの集中的な修正が含まれています:
samlify を ^2.13.0 にアップグレードし、SAML アサーションでの XML エスケープ強化。400 invalid_request を返却。互換性やストレージに関する修正も含まれています:古い Safari や iOS 15 でサポート外の正規表現記法による起動時クラッシュを解消。OIDC エンタープライズコネクターは JSON のみ応答ネゴシエーションを拒否するプロバイダーからも discovery 設定を取得可能に。カスタム UI アセットの Azure Blob 転送失敗もリトライ可能なストレージダウンロードエラーとしてマッピングします。
今回のリリースではコネクター関連機能も新規追加&改善しました:
samlify のアップグレードおよび戻り値型厳格化対応。v1.41.0 ではデータベースマイグレーションが必須です。本リリースにはパスワード期限、ユーザー名ポリシー、認証コードポリシー、メッセージレート監視インデックス、アカウントセンターデフォルト、サービスログインデックスのスキーマ変更が同梱されています。
アップグレード後に新バージョン起動前、必ず DB 変更コマンドを実行してください。詳しくは アップグレードガイド をご覧ください。
CASE_SENSITIVE_USERNAME 環境変数は非推奨となりました。ランタイム上書きは可能ですが、ユーザー名の大文字小文字感度設定は各テナントごと新しいユーザー名ポリシーで管理してください。この環境変数は次回メジャーバージョンで削除予定です。
アップグレードの準備はできましたか?手順は アップグレードガイド を確認してください。
すべての変更点リストは GitHub リリースページ へ。