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 を適用し、リスクの低いサインインはスムーズに、疑わしいサインインには追加認証を行います。このモードは既存の MFA 設定(少なくとも 1 つの MFA 要素が有効)に依存し、エンドユーザーのサインインフローに適用され、デバイスフィンガープリントやその他の個人情報には依存しません。
- MFA 強制:すべてのユーザーに毎回 MFA の完了を要求します。MFA を設定していないユーザーは、続行前に設定を完了する必要があります。
- MFA 任意 または アダプティブ MFA を選択した場合、MFA 設定プロンプトポリシーを設定します:
- ユーザーに MFA 設定を促さない:サインイン時に MFA 設定を促すことはありません。
- 登録時に MFA 設定を促す:新規ユーザーは登録時に MFA 設定を促され、既存ユーザーは次回サインイン時にプロンプトが表示されます。ユーザーはこのステップをスキップでき、再度表示されることはありません。
- 登録後のサインイン時に MFA 設定を促す:新規ユーザーは登録後 2 回目のサインイン時に MFA 設定を促され、既存ユーザーは次回サインイン時にプロンプトが表示されます。ユーザーはこのステップをスキップでき、再度表示されることはありません。
MFA が任意で Logto がユーザーにプロンプトを表示する場合、最初に「2 段階認証を有効にする」というタイトルの有効化確認ページが表示されます。このページで「2 段階認証を有効にする」を選択すると 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 要素の紐付け開始前に「2 段階認証を有効にする」ページが最初に表示されることがあります。
- MFA が任意の場合、このページをスキップするか、「2 段階認証を有効にする」をクリックして続行できます。
- MFA プライマリ要素の設定:ユーザーはプライマリ MFA 要素(パスキー、認証アプリ OTP、SMS コード、メールコードのいずれか)の設定を促されます。
- 複数のプライマリ要素が有効な場合、好みのオプションを選択できます。
- プライマリ要素がサインアップ識別子(例:SMS やメール)と同じ場合は事前に認証されているため、認証ステップをスキップして次のステップ(例:「別の 2 段階認証を追加」や「バックアップ要素を保存」)に直接進めます。
- MFA 必須ポリシー で MFA 任意 が選択されている場合、「スキップ」ボタンでこのステップを省略できます。
- MFA バックアップ要素の設定:バックアップコードが有効な場合、ユーザーはプライマリ認証要素の設定完了後にバックアップコードの保存を促されます。自動生成されたバックアップコードが表示され、ダウンロードして安全に保管できます。ユーザーはバックアップコードを手動で確認し、MFA 設定プロセスを完了します。
MFA 認証フロー
MFA を設定したユーザーは、サインイン時に設定済みの MFA 要素で本人確認を求められます。認証要素は Logto の MFA 設定とユーザー設定に依存します。
ユーザーが パスキーサインイン でサインインした場合、Logto は別途 MFA 認証ステップをスキップします。これはサインインに使用したパスキー自体が WebAuthn の MFA 要素であるためです。
- ユーザーが 1 つの要素のみ設定している場合は、その要素で直接認証します。
- 2 要素認証 (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 ポリシーによります。
- この方法により、プライマリ要素が利用できない場合でもユーザーがアカウントにロックアウトされるのを防ぎます。