• release

Logto 製品アップデート

Logto v1.41.0 ではアプリレベルのアクセス制御、パスワード有効期限ポリシー、大幅なアカウントセンターのアップグレード、設定可能なユーザー名や認証コードのルール、より安全なメッセージ配信、プロトコル/セキュリティの強化が導入されています。

Sijie
Sijie
Developer

ユーザー認証に何週間も費やすのはもうやめましょう
Logto でより速く安全なアプリをリリース。数分で認証を統合し、コア製品に集中できます。
始めましょう
Product screenshot

Logto v1.41.0 は管理とセキュリティに焦点を当てたリリースです。各アプリのアクセスできるユーザーや組織を細かく制御できるようになり、より充実したパスワード有効期限管理、そしてエンドユーザー向けアカウントセンターの機能強化が行われています。また、認証コードの送信やユーザー名のルール、SAML/OIDC 対応、MFA のリプレイ防止、セルフホスティング環境でのアップグレード手順も安全に強化されています。新機能の概要を紹介します。

アプリレベルのアクセス制御

Logto から直接アプリケーションへのアクセスを制限できるようになりました。アクセスルールは特定ユーザー、ユーザーロール、組織、または組織ロール単位で指定が可能です。

ユーザーが指定ルールに合致しない場合、Logto はアクセス拒否ページを表示してサインインやアプリ利用フローを遮断します。これにより、アプリのローンチ時のアクセス制御、顧客ごとのアクセス、内部ツールの保護、組織単位の利用制限がアプリコードを書き換えることなく管理できます。

設定フローの詳細は アプリレベルのアクセス制御ドキュメント をご覧ください。

パスワード有効期限ポリシー

コンソールの セキュリティ > パスワードポリシー からテナント単位でパスワードの有効期限を設定できるようになりました。

管理者はパスワード有効期限の有効化、有効日数の指定、ユーザー詳細画面で特定ユーザーのパスワードを手動で期限切れにできます。パスワードが失効すると、ユーザーはパスワードサインインを継続する前に設定したリカバリ方法を使ってパスワードをリセットする必要があります。

SSO やパスキーを使ったサインインには影響しません。既存のパスワード変更履歴がないユーザーについても運用に配慮されていて、ポリシー有効化時点を基準に有効期間がカウントされ、いきなり失効にはなりません。

アカウントセンターの自己管理機能の拡張

アカウントセンターはエンドユーザーの自己管理ための ID サーフェイスとしてさらに進化しました。

本リリースで、セッション管理、連携アプリの確認、プロフィール管理、アバターアップロード、アカウント作成時のアバター登録、パスキ―の独立した管理、パスキ―サインインプロンプトのユーザー側設定が追加されました。

アカウントセンターのプロフィールページ、サインアップ時のカスタムプロフィール項目、アバターアップロード API も、開発者向け制限から正式リリースとなりました。

主な修正点は:

  • テーマ・プラットフォーム・ブランド色は初期ロード時に適用、フラッシュを低減。
  • セキュリティ強化認証はユーザー権限認証記録のみが対象。
  • 旧来の検証方法がない場合、パスワード・メール・電話番号認証なしでも SNS アカウント連携可。
  • コンソールでユーザー名編集時、必要な検証を完了させるためアカウントセンターへリダイレクトされる。

ユーザー名と認証コードのポリシー

コンソール > サインイン体験 > サインアップとサインイン > 詳細オプション でテナントレベルのユーザー名ルールが設定可能になりました。

大文字小文字の区別、長さの範囲、許可する文字セットなど制御でき、サインアップ、プロフィール入力、アカウントセンター、アカウント API、/me でユーザー名の書き込み全体に強制されます。

大文字小文字の区別なしへ切り替える際は既存ユーザー名の重複(大文字小文字違い含む)を検出して解決しないとポリシーを切り替えできない安全策を導入。OIDC の preferred_username クレームも profile.preferredUsername が未設定の場合 username を返すようになりました。

認証コードの有効期間や再試行回数もコンソールのセキュリティ設定で指定可能になりました。

より安全なメッセージ配信

認証メール・SMS の送信について、宛先単位かつシステムレベルで送信レート制限が導入されました。Experience、MFA、Account API、Management API、/me、組織招待、旧インタラクション API も対象です。

制限に達すると Message.RateLimited Webhook イベントが発行され、コンソールの Webhook 設定画面で選択できるようになりました。

また、登録不可状態で見知らぬ宛先への認証コード配信も抑止され、アカウント列挙リスクを低減します。

JWT カスタマイザーと API 改善

組織 API リソーストークンについて、アクセストークンの JWT カスタマイザーに context.organization (対象組織の id, name, description, customData)が渡されます。

これにより全組織マッピングをトークンに埋めずに組織ごとのクレーム追加が容易になります。

API の主な改善:

  • POST /api/applications/:applicationId/roles は冪等(同じロール ID は無視、422 application.role_exists を返さない)。
  • エンドポイントは 201{ roleIds, addedRoleIds } を返却、ユーザーロール割り当て API と同じ形式に。
  • 組織ロールの初期スコープ指定作成は全てトランザクション化。無効なスコープ ID で部分的にロールだけが残ることはなくなります。

セキュリティとプロトコル強化

本リリースにはプロトコル・セキュリティ面の重要な修正が含まれています:

  • SAML IdP の自動送信フォーム内 HTML 属性値のエスケープ、非 HTTP(S) アクション URL の拒否。
  • samlify^2.13.0 へアップグレード、SAML Assertion の XML エスケープ強化。
  • TOTP MFA 認証で同じ・または古いタイムステップカウンタのリプレイコード拒否。
  • OIDC リクエストボディに null バイトが含まれる場合 400 invalid_request
  • 監査ログのペイロードから null バイトを除去して挿入。
  • サブアドレス禁止リストチェックでユーザー制御の入力から正規表現を生成しない。
  • Logto Tunnel で静的ファイルリクエストがエクスペリエンスパス外を読み込まないよう保護。

互換性・ストレージ修正も含みます:古い Safari や iOS 15 サポート、OIDC エンタープライズコネクタで JSON のみ応答時もプロバイダ情報取得可能、Azure Blob のカスタム UI アセット転送失敗もリトライ対象へとマッピング。

新規・改善されたコネクタ

新規追加または強化されたコネクタ系機能:

  • SMTP2GO で認証メール送信できる新メールコネクタ追加。
  • QQ コネクタでリダイレクト URI 保管型のソーシャル ID 検証に対応。
  • SAML コネクタの samlify アップグレードと戻り値型の厳格化。
  • コネクタキットで MailJunky でも利用する SMTP メールボックス解析・フォーマットユーティリティのエクスポートを開始。

セルフホスティング利用者向け

v1.41.0 へのアップグレードにデータベースのマイグレーションが必須です。本リリースによりパスワード有効期限、ユーザー名ポリシー、認証コードポリシー、メッセージ送信レートインデックス、アカウントセンターデフォルト、サービスログインデックス用のスキーマ変更が行われます。

アップグレード後は新バージョン起動前にデータベース変更コマンドを実行してください。詳しくは アップグレードガイド を参照。

CASE_SENSITIVE_USERNAME 環境変数は非推奨となりました。ランタイムオーバーライドとしては引き続き動作しますが、ユーザー名の大文字小文字区別は新しいテナント単位のユーザー名ポリシーで設定してください。次のメジャーバージョンで変数は削除予定です。

はじめよう

アップグレードの準備はできましたか?手順は アップグレードガイド をご覧ください。

変更点の全リストは GitHub リリースページ で確認できます。

質問やフィードバックがあれば Discord へ参加するか、GitHub に issue を投稿してください。