Two-Factor
·
時間ベースのワンタイムパスワード (TOTP)、メール、およびバックアップ確認コードを使用して、2要素認証 (2FA) を有効にします。
評価機能
バージョン
0.16.0
有効インストール数
100K
最終更新日時
Mar 27, 2026
2要素認証プラグインは、パスワードに加えて別の認証方法をユーザーに要求することで、WordPress のログインにセキュリティの層を追加します。これにより、パスワードが漏洩した場合でも、不正アクセスから保護できます。
セットアップ手順
重要: 各ユーザーは、2要素認証設定を個別に構成する必要があります。
個人ユーザー向け
- プロフィールに移動: WordPress 管理画面で「ユーザー」→「プロフィール」を選択
- 2要素認証オプションを探す:「2要素認証オプション」のセクションまでスクロール
- 方法を選択: 1つ以上の認証プロバイダを有効化 (サイト管理者が1つ以上のプロバイダを非表示にしている場合があるため、利用可能なプロバイダは異なる場合があります):
- Authenticator App (TOTP) – Google Authenticator、Authy、1Password などのアプリを利用
- メールコード – メールでワンタイムコードを受信
- バックアップコード – 緊急時用のワンタイムバックアップコードを生成
- ダミーメソッド – テスト専用 (WP_DEBUG が必要)
- 各方法の設定: 有効にした各プロバイダのセットアップ手順に従う
- メイン方法の設定: デフォルトの認証として使用する方法を選択
- 変更の保存:「プロフィールを更新」をクリックして設定を保存
サイト管理者向け
- プラグイン設定:「設定 → Two-Factor」配下に設定ページがあり、サイト全体で無効にするプロバイダを設定できます。
- ユーザー管理: 管理者は他のユーザーのプロフィールを編集することで2要素認証を設定できます
- セキュリティの推奨事項: アカウントのロックアウトを防ぐため、ユーザーにバックアップ方法の有効化を促す
利用可能な認証方法
認証アプリ (TOTP) – 推奨
- セキュリティ: 高 – 時間ベースのワンタイムパスワード
- 設定方法: 認証アプリで QR コードをスキャン
- 互換性: Google Authenticator、Authy、1Password などの TOTP アプリと連携
- 最適な用途: ほとんどのユーザー。優れたセキュリティと使いやすさを両立
バックアップコード – 推奨
- セキュリティ: 中 – 一度だけ使用するコード
- 設定方法: 緊急アクセス用のバックアップコードを10個生成
- 互換性: 特別なハードウェア不要で、あらゆる環境で動作
- 最適な用途: 他の方法が使えない場合の緊急アクセス用
メールコード
- セキュリティ: 中 – メールで送信されるワンタイムコード
- 設定方法: 自動 – WordPress のメールアドレスを使用
- 互換性: メール送受信が可能なあらゆる端末で動作
- 最適な用途: メールベースの認証を好むユーザー
FIDO U2F セキュリティキー
- ブラウザーのサポート終了に伴い、非推奨となり削除されました。
ダミーメソッド
- セキュリティ: なし – 常に成功
- 設定方法: WP_DEBUG が有効な場合のみ利用可能
- 目的: テストおよび開発専用
- 最適な用途: プラグインをテストする開発者
重要な注意事項
HTTPS 要件
- すべての方式は HTTP・HTTPS サイトの両方で動作する
ブラウザーの互換性
- TOTP とメール方式はすべての端末・ブラウザーで動作する
アカウント復元
- アカウントのロックアウトを防ぐため、常にバックアップコードを有効にしておく
- すべての認証方法にアクセスできなくなった場合は、サイト管理者に連絡してください。
セキュリティのベストプラクティス
- 可能な場合は複数の認証方法を使用する
- バックアップしたコードを安全な場所に保管する
- 認証設定を定期的に確認・更新する
WordPress での2要素認証の詳細については、WordPress Advanced Administration セキュリティガイドをご覧ください。
詳細な経緯は、この記事を参照してください。
アクション & フィルター
プラグインで提供するアクションフックとフィルターフックは以下のとおり:
two_factor_providersフィルターフックは、メールや時間ベースのワンタイムパスワード (TOTP) などの利用可能な2要素認証プロバイダを上書きします。配列の値は2要素認証プロバイダの PHP クラス名です。two_factor_providers_for_userフィルターは、特定のユーザーが利用可能な2要素認証プロバイダを上書きします。配列の値はプロバイダクラスのインスタンスで、2番目の引数にはユーザーオブジェクトWP_Userを指定します。two_factor_enabled_providers_for_userフィルターフックは、ユーザーに対して有効化している2要素認証プロバイダの一覧を上書きします。最初の引数は有効なプロバイダクラス名の配列で、2番目の引数はユーザー ID です。two_factor_user_authenticatedアクションフックは、認証処理直後に発火し、ログインしたユーザーを判別するための第1引数としてログイン済みのWP_Userオブジェクトを受け取ります。two_factor_user_api_login_enableフィルターは REST API と XML-RPC での認証をアプリケーションパスワードのみに制限します。2番目の引数にユーザー ID が提供されます。two_factor_email_token_ttlフィルターフックは、メールトークン生成後の有効期間を秒単位で上書きします。第一引数として秒単位の時間を受け付け、また、認証するWP_Userオブジェクトの ID も受け付けます。two_factor_email_token_lengthフィルターは、メールトークンのデフォルト文字数8を上書きします。two_factor_backup_code_lengthフィルターは、バックアップコードのデフォルトの文字数「8」を上書きします。関連付けられているユーザーのWP_Userを2番目の引数として指定します。two_factor_rest_api_can_edit_userフィルターは、REST API を介してユーザーの2要素認証の設定を編集できるかどうかを上書きします。1番目の引数は現在の$can_edit(真偽値)、2番目の引数はユーザー ID です。two_factor_before_authentication_promptアクションは、プロバイダオブジェクトを受け取り、認証入力フォームのプロンプト表示前に発火します。two_factor_after_authentication_promptアクションは、プロバイダオブジェクトを受け取り、認証入力フォームのプロンプト表示後に発火します。two_factor_after_authentication_inputアクションは、プロバイダオブジェクトを受け取り、認証入力フォームの入力欄の後に発火します (フォームに入力欄がない場合はtwo_factor_after_authentication_promptの直後に発火します)。two_factor_login_backup_linksは、2要素認証ログインフォームに表示されるバックアップリンクをフィルタリングします。
2要素認証後のリダイレクト
2要素認証の確認後に特定の URL へリダイレクトするには、WordPress コアに組み込まれている login_redirect フィルターを使用してください。このフィルターは通常の WordPress ログインフローと同じように機能します:
add_filter( 'login_redirect', function( $redirect_to, $requested_redirect_to, $user ) {
return home_url( '/dashboard/' );
}, 10, 3 );
