多要素認証 (MFA) の設定
Logto での MFA 設定
Logto は、さまざまなセキュリティ要件に対応する柔軟な多要素認証 (MFA) 設定オプションを提供しています。すべてのユーザーに対してグローバルレベルで MFA を設定することも、マルチテナントアプリケーション向けに組織ごとに有効化することも可能です。
グローバル MFA 設定
ユーザーの Logto サインインフローで MFA を有効にするには、次の手順に従ってください:
- コンソール > 多要素認証 に移動します。
- ユーザー向けにサポートされている認証要素を有効にします。
- プライマリ要素:
- パスキー (WebAuthn):デバイスの生体認証やセキュリティキーなどをサポートする Web 製品に適した高セキュリティオプションで、強力な保護を実現します。
- 認証アプリ OTP:最も一般的で広く受け入れられている方法です。Google Authenticator や Authy などの認証アプリによって生成される時限ワンタイムパスワード (TOTP) を使用します。
- SMS 認証:ユーザーの登録済み電話番号に SMS でワンタイム認証コードを送信する便利な方法で、追加アプリなしでモバイル認証を好むユーザーに最適です。
- メール認証:ユーザーの登録済みメールアドレスにワンタイム認証コードを送信する広く利用可能な方法で、すべてのプラットフォームやデバイスのユーザーに適しています。
- バックアップ要素:
- バックアップコード:上記のプライマリ要素で認証できない場合のバックアップオプションとして機能します。このオプションを有効にすることで、ユーザーのアクセス成功率が向上します。
- プライマリ要素:
- MFA 必須 を有効にするかどうかを選択します:
- 有効:ユーザーはサインイン時に MFA の設定を求められ、スキップできません。ユーザーが MFA を設定しなかったり、MFA 設定を削除した場合、再度 MFA を設定するまでアカウントにアクセスできなくなります。
- 無効:ユーザーはサインアップフロー中に MFA 設定をスキップできます。後からセルフサービスのアカウント設定ページで MFA を設定することも可能です。ユーザーアカウント設定ページの実装については 詳細はこちら をご覧ください。さらに MFA 設定プロンプトのポリシーを選択します:
- ユーザーに MFA 設定を求めない:サインイン時に MFA 設定を求めません。
- 登録時に MFA 設定を求める:新規ユーザーは登録時に MFA 設定を求められ、既存ユーザーは次回サインイン時にプロンプトが表示されます。ユーザーはこのステップをスキップでき、再度表示されることはありません。
- 登録後のサインイン時に MFA 設定を求める:新規ユーザーは登録後 2 回目のサインイン時に 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 要素(パスキー、認証アプリ OTP、SMS コード、メールコードのいずれか)の設定を求められます。
- 複数のプライマリ要素が有効な場合、ユーザーは希望するオプションを選択できます。
- プライマリ要素がサインアップ識別子(例:SMS やメール)と同じ場合は事前認証され、ユーザーは認証ステップをスキップして次のステップ(例:「2段階認証を追加」や「バックアップ要素を保存」)に進めます。
- 「MFA 必須」ポリシーが無効の場合、「スキップ」ボタンを選択してこのステップを省略できます。
- MFA バックアップ要素の設定:バックアップコードが有効な場合、ユーザーはプライマリ認証要素の設定完了後にバックアップコードの保存を求められます。自動生成されたバックアップコードが表示され、ユーザーはダウンロードして安全に保管できます。MFA 設定を完了するには、ユーザーがバックアップコードを手動で確認する必要があります。
MFA 認証フロー
MFA を設定したユーザーは、サインイン時に設定済みの MFA 要素で本人確認を求められます。認証要素は Logto の 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 ポリシーによります。
- この方法により、プライマリ要素が利用できない場合でもユーザーがアカウントから締め出されることを防ぎます。