Two-Factor

説明

2要素認証プラグインは、パスワードに加えて別の認証方法をユーザーに要求することで、WordPress のログインにセキュリティの層を追加します。これにより、パスワードが漏洩した場合でも、不正アクセスから保護できます。

セットアップ手順

重要: 各ユーザーは、2要素認証設定を個別に構成する必要があります。

個人ユーザー向け

  1. プロフィールに移動: WordPress 管理画面で「ユーザー」「プロフィール」を選択
  2. 2要素認証オプションを探す:「2要素認証オプション」のセクションまでスクロール
  3. 方法を選択: 1つ以上の認証プロバイダを有効化 (サイト管理者が1つ以上のプロバイダを非表示にしている場合があるため、利用可能なプロバイダは異なる場合があります):
    • Authenticator App (TOTP) – Google Authenticator、Authy、1Password などのアプリを利用
    • メールコード – メールでワンタイムコードを受信
    • バックアップコード – 緊急時用のワンタイムバックアップコードを生成
    • ダミーメソッド – テスト専用 (WP_DEBUG が必要)
  4. 各方法の設定: 有効にした各プロバイダのセットアップ手順に従う
  5. メイン方法の設定: デフォルトの認証として使用する方法を選択
  6. 変更の保存:「プロフィールを更新」をクリックして設定を保存

サイト管理者向け

  • プラグイン設定:「設定 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 );

スクリーンショット

  • ユーザープロフィールの2要素認証オプション – さまざまな認証方法を有効化できるメイン設定エリア
  • WordPress ログイン時のメールコード認証 – ログイン時に表示されるメール確認画面
  • 認証アプリ (TOTP) の QR コードを使ったセットアップ – QR コードの生成と TOTP セットアップ用の手動キー入力
  • バックアップコードの生成と管理 – 緊急アクセス用コードの生成・管理インターフェース

FAQ

Two-Factor プラグインはどのバージョンの PHP と WordPress をサポートしていますか ?

このプラグインは最新2つの WordPress メジャーバージョンとその WordPress がサポートする最小の PHP バージョン をサポートしています。

フィードバックを送信したり、バグに関するサポートを受けるには

バグ、機能の提案、その他セキュリティに関連しないフィードバックを報告するには、GitHub 上の Two Factor レポジトリのイシューを利用してください。新しいイシューを立てる際には、既存のイシューを検索し、他の誰かが同じフィードバックを報告していないかどうか確認してください。

セキュリティ関連のバグを報告するには

プラグイン開発チームおよび WordPress コミュニティは、セキュリティ関連のバグ対応を真摯に受け止めています。責任ある開示にご尽力いただいたことに感謝するとともに、そのご貢献を正式に認識できるよう最善を尽くします。

セキュリティの問題を報告するには、WordPress HackerOne プログラムにアクセスしてください。

すべての認証方法へのアクセスを失った場合はどうすればよいですか ?

バックアップコードを有効にしている場合は、いずれかのコードを使用してアクセスを回復できます。バックアップコードがない、またはすべて使い切った場合は、サイト管理者にアカウントのリセットを依頼する必要があります。ロックアウトを防ぐため、常にバックアップコードを有効にして安全な場所に保管してください。

このプラグインを WebAuthn と一緒に使用できますか ?

このプラグインは以前 FIDO U2F をサポートしていましたが、これは WebAuthn の前身です。WebAuthn サポートの追加については、次のイシューで議論されています: https://github.com/WordPress/two-factor/pull/427

Two-Factor でパスキーやハードウェアセキュリティキーを使用する推奨方法はありますか ?

はい。パスキーやハードウェアセキュリティキーには、Two-Factor Provider: WebAuthn プラグイン (https://wordpress.org/plugins/two-factor-provider-webauthn/)
をインストールできます。このプラグインは Two-Factor と直接連携し、WebAuthn ベースの認証を追加の2要素認証オプションとして提供します。

評価

2026年4月27日 1 reply
Fonctionne parfaitement, simple et fiable
2026年4月23日 1 reply
I am in version 6.6.2 of WordPress and in multisite network version. Is it possible to activate your plugin despite the constraint tested up to 6.9.1, please? I can’t activate it at the network level?
2026年4月23日 1 reply
The Two-Factor plugin provides a robust and user-friendly way to enhance WordPress login security by adding an additional authentication layer. It supports multiple verification methods, including authenticator apps, email codes, and backup codes, making it flexible for different user needs. The setup process is straightforward, and the plugin integrates seamlessly with the default login system. Overall, it is a dependable solution for protecting websites from unauthorized access and security threats.
2026年4月2日 1 reply
Easy install, light speed and exactly does what it needs to do. My opinion: No plugin is safer or cleaner than one created by the team behind WordPress.org.
2026年4月1日 1 reply
I’ve been using the Two Factor plugin on several WordPress sites and it has been a great addition to my security stack. The setup process is very straightforward. Within a few minutes, I was able to enable two-factor authentication and add an extra layer of protection to the login process. The plugin integrates smoothly with the default WordPress login, so there’s no complicated configuration or learning curve. What I really like: Supports multiple 2FA methods (authenticator apps, email, backup codes) Lightweight and doesn’t slow down the site Clean and simple interface Works perfectly without conflicts with other plugins/themes For clients and non-technical users, it’s especially helpful because the instructions are clear and easy to follow. In today’s environment where brute-force attacks are common, this plugin feels like a must-have for any WordPress website. Highly recommended for anyone who wants quick, reliable login security without complexity.
2026年3月24日 3 replies
works well, but it is causing my website slower somehow,i suggest to go through website lighthouse speed check before activate it
205件のレビューをすべて表示

貢献者と開発者

“Two-Factor” は39ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Two-Factor” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。

変更履歴

0.16.0 – 2026-03-27

  • 破壊的変更: レガシーな FIDO U2F プロバイダのサポートを削除 (#439)。
  • 新機能: wp-admin にプラグイン設定専用ページを追加 (#764)。
  • 新機能: サポートリンクフィルターを追加し、リカバリ/ヘルプリンクのカスタマイズを可能に (#615)。
  • 新機能: バックアップコード UI のスタイルと動作を刷新 (#804)。
  • バグ修正: TOTP プロバイダを無効化したときに保存済みの TOTP シークレットを削除するよう修正 (#802)。
  • バグ修正: プロバイダが消失した場合にログイン/設定チェックが失敗開放にならないよう、プロバイダ処理を強化 (#586)。
  • バグ修正: ユーザー設定で設定済みのプロバイダのみが保存・有効化されるよう修正 (#798)。
  • バグ修正: 設定ページのアクセシビリティを改善し、プロフィール設定リンクの動作を修正 (#828#830)。
  • バグ修正: プロバイダファイルの PHPCS 違反を解消 (#851)。
  • 開発アップデート: ログインスタイルとプロバイダスクリプトをインライン出力からエンキュー/外部アセットに移行 (#807#814)。
  • 開発アップデート: インラインドキュメントを改善し、静的解析 (WPCS/phpstan) との互換性を向上 (#810#815#817)。
  • 開発アップデート: ユニットテストの安定性を向上し、CI コードカバレッジレポートを統合 (#825#841#842)。
  • 開発アップデート: readme ドキュメントを更新し、CI ワークフローのインフラを最新化 (#835#837#843#849)。
  • 依存関係の更新: qs を 6.14.1 から 6.14.2 に更新 (#794)。
  • 依存関係の更新: basic-ftp を 5.0.5 から 5.2.0 に更新 (#816)。
  • 依存関係の更新: 自動 lint/フォーマット更新と関連 Composer パッケージを更新 (#799)。

0.15.0 – 2026-02-13

  • 破壊的変更: 想定されるケースでのみ2要素認証フローを発動するよう変更 by @kasparsd (#660#793)。
  • 新機能: 2要素認証コードのメールにユーザーの IP アドレスと状況に応じた警告を追加 by @todeveni (#728)
  • 新機能: TOTP 向けメール文言を最適化 by @masteradhoc (#789)
  • 新機能: プラグイン一覧にプロフィールへの「設定」アクションリンクを追加 by @hardikRathi (#740)
  • 新機能: フォームフックを追加 by @eric-michel (#742)
  • 新機能: RFC6238 への完全対応 by @ericmann (#656)
  • 新機能: TOTP セットアップのユーザー体験を統一 by @kasparsd (#792)
  • ドキュメント: @since ドキュメントを追加 by @masteradhoc (#781)
  • ドキュメント: ユーザー/管理者向けドキュメントを更新し、スクリーンショット追加の準備 by @jeffpaul (#701)
  • ドキュメント: changelog とクレジットを追加し、リリースノートを更新 by @jeffpaul (#696)
  • ドキュメント: readme.txt を整理 by @masteradhoc (#785)
  • ドキュメント: TOTP セットアップ手順の上に日時情報を追加 by @masteradhoc (#772)
  • ドキュメント: TOTP セットアップ手順を明確化 by @masteradhoc (#763)
  • ドキュメント: RELEASING.md を更新 by @jeffpaul (#787)
  • 開発アップデート: master へのマージ時に SVN trunk へのデプロイを一時停止 by @kasparsd (#738)
  • 開発アップデート: PHP 互換性の CI チェックを修正 by @kasparsd (#739)
  • 開発アップデート: Playground の参照を修正 by @kasparsd (#744)
  • 開発アップデート: メールへの新しいヘルパーテキスト追加時に既存の翻訳を保持 by @kasparsd (#745)
  • 開発アップデート: missing_direct_file_access_protection を修正 by @masteradhoc (#760)
  • 開発アップデート: mismatched_plugin_name を修正 by @masteradhoc (#754)
  • 開発アップデート: Props Bot ワークフローを導入 by @jeffpaul (#749)
  • 開発アップデート: Plugin Check: $domain パラメーター欠落を修正 by @masteradhoc (#753)
  • 開発アップデート: テスト: サポート対象の WP 6.8 に更新 by @masteradhoc (#770)
  • 開発アップデート: PHP 8.5 の非推奨メッセージを修正 by @masteradhoc (#762)
  • 開発アップデート: trunk への PHP 7.2・7.3 チェックを除外 by @masteradhoc (#769)
  • 開発アップデート: Plugin Check エラー (MissingTranslatorsCommentMissingSingularPlaceholder) を修正 by @masteradhoc (#758)
  • 開発アップデート: 最新および trunk 版 WP への PHP 8.5 テストを追加 by @masteradhoc (#771)
  • 開発アップデート: 誤検知への phpcs:ignore を追加 by @masteradhoc (#777)
  • 開発アップデート: QR コード URL の otpauth リンクを修正 (TOTP) by @sjinks (#784)
  • 開発アップデート: deploy.yml を更新 by @masteradhoc (#773)
  • 開発アップデート: 必須 WordPress バージョンを更新 by @masteradhoc (#765)
  • 開発アップデート: リダイレクト後に処理が停止することを保証するよう修正 by @sjinks (#786)
  • 開発アップデート: WordPress.Security.EscapeOutput.OutputNotEscaped エラーを修正 by @masteradhoc (#776)
  • 依存関係の更新: qs と express を更新 by @dependabot[bot] (#746)
  • 依存関係の更新: lodash を 4.17.21 から 4.17.23 に更新 by @dependabot[bot] (#750)
  • 依存関係の更新: lodash-es を 4.17.21 から 4.17.23 に更新 by @dependabot[bot] (#748)
  • 依存関係の更新: phpunit/phpunit を 8.5.44 から 8.5.52 に更新 by @dependabot[bot] (#755)
  • 依存関係の更新: symfony/process を 5.4.47 から 5.4.51 に更新 by @dependabot[bot] (#756)
  • 依存関係の更新: qs と body-parser を更新 by @dependabot[bot] (#782)
  • 依存関係の更新: webpack を 5.101.3 から 5.105.0 に更新 by @dependabot[bot] (#780)

0.14.2 – 2025-12-11

  • 新機能: rest_api_can_edit_user_and_update_two_factor_options フィルターを追加 by @gutobenn (#689)
  • 開発アップデート: Coveralls ツールを削除し、インラインカバレッジレポートを追加 by @kasparsd (#717)
  • 開発アップデート: 削除済みブランチではなく main ブランチから取得するよう blueprint パスを更新 by @georgestephanis (#719)
  • 開発アップデート: blueprint と WP.org アセットのデプロイを修正 by @kasparsd (#734)
  • 開発アップデート: タグリリース時のみリリースをアップロードするよう変更 by @kasparsd (#735)
  • 開発アップデート: playwright と @playwright/test を更新 by @dependabot[bot] (#721)
  • 開発アップデート: tar-fs を 3.1.0 から 3.1.1 に更新 by @dependabot[bot] (#720)
  • 開発アップデート: node-forge を 1.3.1 から 1.3.2 に更新 by @dependabot[bot] (#724)
  • 開発アップデート: js-yaml を更新 by @dependabot[bot] (#725)
  • 開発アップデート: 最新の WP コアバージョンでのテスト済みとしてマーク by @kasparsd (#730)

0.14.1 – 2025-09-05

  • 表示用の TOTP URL を URI エンコードしないよう修正 by @dd32 (#711)
  • 重複していた Security.md を削除 by @slvignesh05 (#712)
  • リンターで検出された問題を修正 by @sudar (#707)
  • 開発依存関係を更新し、失敗していた QR ユニットテストを修正 by @kasparsd (#714)
  • チェックボックスの JS change イベントを発火するよう修正 by @gedeminas (#688)

0.14.0 – 2025-07-03

  • 機能: REST API と XML-RPC 認証でアプリケーションパスワードをデフォルトで有効化 by @joostdekeijzer (#697#698)。以前は two_factor_user_api_login_enable フィルターを true にする必要がありましたが、アプリケーションパスワード認証時はデフォルトで有効になりました。通常パスワードでの XML-RPC ログインは引き続き無効です。
  • 機能: 設定を簡略化するため、推奨方法にラベルを追加 by @kasparsd (#676#675)
  • ドキュメント: WP.org プラグインデモを追加 by @kasparsd (#667)
  • ドキュメント: WP コアと PHP のサポートバージョンを文書化 by @jeffpaul (#695)
  • ドキュメント: リリースプロセスを文書化 by @jeffpaul (#684)
  • ツール: SVN trunk から WP.org の重複スクリーンショット・画像を削除 by @jeffpaul (#683)

0.13.0 – 2025-04-02

  • 各ユーザーが利用可能な2要素認証プロバイダを制限する two_factor_providers_for_user フィルターを追加 by @kasparsd (#669)
  • PHP 8.4 対応の自動テストを追加し、デフォルトを PHP 8.3 に更新 by @BrookeDot (#665)

完全な変更履歴はこちらからご確認ください