MFA の設定
Logto で MFA 設定を構成する
Logto は、さまざまなセキュリティ要件に対応する柔軟な MFA 設定オプションを提供しています。すべてのユーザーに対してグローバルレベルで MFA を構成したり、マルチテナントアプリケーション向けに組織単位で有効化したりできます。
グローバル MFA 設定
ユーザーの Logto サインインフローで MFA を有効にするには、以下の手順に従ってください:
- コンソール > 多要素認証 (MFA) に移動します。
- ユーザー向けにサポートされている認証要素を有効にします。
- プライマリ要素:
- パスキー (WebAuthn):デバイスの生体認証やセキュリティキーなどをサポートする Web 製品に適した高セキュリティオプションで、強力な保護を実現します。
- 認証アプリ OTP:最も一般的で広く受け入れられている方法です。Google Authenticator や Authy などの認証アプリによって生成される時限ワンタイムパスワード (TOTP) を使用します。
- SMS 認証:ユーザーの登録済み電話番号に SMS でワンタイム認証コードを送信する便利な方法で、追加アプリなしでモバイル認証を希望するユーザーに最適です。
- メール認証:ユーザーの登録済みメールアドレスにワンタイム認証コードを送信する広く利用可能な方法で、すべてのプラットフォームやデバイスのユーザーに適しています。
- バックアップ要素:
- バックアップコード:上記のプライマリ要素で認証できない場合のバックアップオプションです。このオプションを有効にすると、ユーザーのアクセス成功率が向上します。
- プライマリ要素:
- ドロップダウンから MFA 必須 ポリシーを選択します。このポリシーは、サインイン時にユーザーが MFA を完了する必要があるタイミングを制御します:
- MFA 任意:ユーザー自身がアカウントのセキュリティ向上のために MFA を有効にするかどうかを選択できます。サインイン時に MFA 設定をスキップでき、後からセルフサービスのアカウント設定ページで設定できます。詳細はこちら(ユーザーアカウント設定ページの実装方法)。
- アダプティブ MFA:サインインが異常と判断された場合のみ MFA を適用し、リスクの低いサインインはスムーズに、疑わしいサインインには追加認証を行います。Logto は、ユーザーの非アクティブ期間、最近の移動パターンとの一貫性、ネットワーク接続状態、その他のセッションや環境指標など、高レベルのコンテキストシグナルを評価して判断します。このモードは既存の MFA 設定(少なくとも 1 つの MFA 要素が有効である必要あり)に依存し、エンドユーザーのサインインフローに適用され、デバイスフィンガープリントや正確な位置情報の追跡には依存しません。
- MFA 強制:すべてのユーザーに毎回 MFA の完了を必須とします。MFA を設定していないユーザーは、続行前にセットアップを完了する必要があります。
- MFA 任意 または アダプティブ MFA を選択した場合、MFA セットアッププロンプトポリシーを構成します:
- ユーザーに MFA セットアップを求めない:サインイン時に MFA セットアップを促しません。
- 登録時に MFA セットアップを求める:新規ユーザーは登録時に、既存ユーザーは次回サインイン時に MFA セットアップを促されます。MFA 任意 ではスキップ可能で再表示されません。アダプティブ MFA では一度プロンプトが表示されたら、現在のサインイン / サインアップフロー完了前に MFA セットアップが必須です。
- 登録後のサインイン時に MFA セットアップを求める:新規ユーザーは登録後 2 回目のサインイン時に、既存ユーザーは次回サインイン時に MFA セットアップを促されます。MFA 任意 ではスキップ可能で再表示されません。アダプティブ MFA では一度プロンプトが表示されたら、現在のサインイン / サインアップフロー完了前に MFA セットアップが必須です。
MFA 任意 または アダプティブ MFA が選択され、Logto がユーザーに登録を促すと判断した場合、フローの最初に「2 段階認証を有効にする」というタイトルの確認ページが表示されます。MFA 任意 では、ユーザーは「2 段階認証を有効にする」を選択して MFA バインディングに進むか、プロンプトをスキップして MFA を有効にせずにサインイン / サインアップフローを完了できます。アダプティブ MFA では、一度プロンプトが表示されたら、MFA バインディングを完了しないとサインイン / サインアップフローを完了できません。
ユーザーが MFA 登録をスキップした後に再度プロンプトを表示したい場合は、スキップ状態をリセットしてください。管理者は Management API (PATCH /api/users/{userId}/logto-configs) を、セルフサービスフローを構築する開発者は Account API (PATCH /api/my-account/logto-configs) を利用できます。 Management API リファレンス · Account API リファレンス
組織単位の MFA 設定
組織 (Organizations) をサポートするマルチテナントアーキテクチャのプロダクトでは、すべてのユーザーに MFA を必須とする必要はありません。代わりに、組織ごとに MFA を有効化でき、各クライアントのニーズに合わせて要件を調整できます。始めるには 組織メンバーに MFA を必須にする を参照してください。
多要素認証 (MFA) セクションで、組織が MFA を有効にした後のユーザーへの MFA セットアッププロンプト を 次回サインイン時に MFA セットアップを求める(スキップ不可) に設定します。MFA 必須の組織メンバーは、次回サインイン時に MFA セットアップを促され、スキップできません。
MFA ユーザーフロー
MFA セットアップフロー
MFA が有効になると、ユーザーはサインインやサインアップ時に MFA セットアップを促される場合があります。MFA 任意 が MFA 必須 ポリシーで選択されている場合のみ、このセットアッププロセスをスキップできます。
- サインインまたはサインアップページにアクセス:ユーザーがサインインまたはサインアップページに移動します。
- サインインまたはサインアップを完了:ユーザーがサインイン / サインアップフロー内でアイデンティティ確認プロセスを完了します。
- MFA 任意 または アダプティブ MFA が選択され、プロンプトポリシーが有効な場合、MFA 要素のバインディング開始前に「2 段階認証を有効にする」ページが表示される場合があります。
- MFA 任意 では、このページをスキップするか「2 段階認証を有効にする」をクリックして続行できます。アダプティブ MFA では、一度プロンプトが表示されたら MFA バインディングに進む必要があります。
- MFA プライマリ要素のセットアップ:ユーザーはパスキー、認証アプリ OTP、SMS コード、メールコードのいずれかのプライマリ MFA 要素のセットアップを促されます。
- 複数のプライマリ要素が有効な場合、好みのオプションを選択できます。
- プライマリ要素がサインアップ識別子(例:SMS やメール)と同じ場合は事前認証され、認証ステップをスキップして次のステップ(例:「別の 2 段階認証を追加」や「バックアップ要素を保存」)に直接進めます。
- MFA 必須 ポリシーで MFA 任意 が選択されている場合、「スキップ」ボタンでこのステップをスキップできます。
- MFA バックアップ要素のセットアップ:バックアップコードが有効な場合、プライマリ認証要素の設定完了後にバックアップコードの保存を促されます。自動生成されたバックアップコードが表示され、ダウンロードして安全に保管できます。ユーザーは MFA セットアップ完了のためにバックアップコードを手動で確認する必要があります。
MFA 認証フロー
MFA を設定したユーザーは、サインイン時に設定済みの MFA 要素で本人確認を求められます。どの認証要素が表示されるかは、Logto の MFA 設定とユーザー設定によって異なります。
ユーザーが パスキーサインイン でサインインした場合、Logto は別途 MFA 認証ステップをスキップします。これは、サインインに使用したパスキー自体が WebAuthn MFA 要素であるためです。
- ユーザーが 1 つだけ要素を設定している場合は、その要素で直接認証します。
- 2FA 用に複数の要素を設定している場合、システムは以下の優先ルールに基づいて認証オプションを提示します:
- パスキー優先:パスキーが設定されていれば、デフォルトの認証方法として提示されます。
- 最終利用優先:パスキーがない場合、最後に成功した認証方法を優先します。
- 選択リスト:上記いずれにも該当しない場合、2 段階認証ページで利用可能なすべての認証方法が表示され、ユーザーが選択できます。
- ユーザーは「別の方法で認証する」をクリックして、いつでも認証オプションを切り替えられます。
- 有効なプライマリ要素がすべて利用できず、バックアップコードが有効な場合は、ワンタイムバックアップコードで本人確認できます。
MFA 管理
サインイン / サインアップ時の初期セットアップに加え、ユーザーはセルフサービスのアカウントセンターで MFA 設定を管理できます。これにより、ユーザーは必要に応じて MFA 要素のバインドや解除が柔軟に行えます。
アカウントセンターの構築
Logto の Account API を利用して、包括的なアカウントセンターを構築できます。これによりユーザーは以下の操作が可能です:
- 新しい MFA 要素のバインド:追加の認証アプリやパスキーの追加、バックアップコードの再生成
- 既存 MFA 要素の解除:不要になった MFA 方法の削除
- 現在の MFA 状態の確認:現在設定されている MFA 要素の確認
ログイン後の MFA セットアッププロンプト
初回登録時に MFA を必須としないアプリケーションでは、MFA セットアップを促すインテリジェントなプロンプトを実装できます:
- 条件付きプロンプト:ユーザーの行動やアカウント価値に基づいて MFA セットアップを推奨
- セキュリティダッシュボード:MFA 有効化でスコアが向上するセキュリティスコアの表示
- 段階的オンボーディング:セキュリティ強化フローの一部として MFA セットアップを案内
これらのパターンの実装方法は Account API で詳しく解説しています。
コンソールでユーザーの MFA を管理
コンソール > ユーザー管理 で、管理者はユーザーの MFA 設定を効果的に管理できます:
- ユーザーの MFA 状態の確認:各ユーザーに有効な MFA 要素を確認できます。
- ユーザーの MFA 削除:ユーザーのすべての MFA 要素を削除し、再度 MFA セットアップを必須にできます。
よくある質問
管理者がユーザーの既存 MFA 要素を削除した場合はどうなりますか?
管理者がユーザーのすべてのプライマリ MFA 要素(パスキー、認証アプリ OTP、SMS、メール)を削除した場合、次回サインイン時に以下のシナリオが発生します:
シナリオ 1:MFA 要素が残っていない場合
- すべての MFA 要素(バックアップコードも含む)が存在せず、MFA ポリシー で MFA が必須の場合、ユーザーは MFA 認証なしでサインインでき、直後に MFA セットアップを再度促されます。
シナリオ 2:バックアップコードが残っている場合
- バックアップコードが利用可能な場合、サインイン時にまずバックアップコードで認証する必要があります。
- バックアップコード認証に成功すると、新しいプライマリ MFA 要素のセットアップを促されます。
- このセットアップをスキップできるかどうかは、設定した MFA ポリシーによります。
- この方法により、プライマリ要素が利用できない場合でもユーザーがアカウントにロックアウトされるのを防ぎます。