2026年6月21日
2026年6月21日
WordPressでワンタイムパスワード(OTP)ログインを設定する手順
WordPressのログインにワンタイムパスワード(OTP)を追加するなら、自作せずに保守が続いている二要素認証プラグインを使い、管理者が締め出されたときの復旧手段を先に用意してから有効化するのが安全な進め方です。この記事では、OTPの方式の選び方、プラグインでの設定手順、バックアップコードと締め出し対策、運用上の注意までを順に説明します。
OTPの方式を先に決める
一口にOTPと言っても、WordPressで使われるのは主に次の2方式です。
- 認証アプリ方式(TOTP):Google Authenticator、Microsoft Authenticator、1Passwordなどのアプリが30秒ごとに6桁のコードを表示する。通信不要で、メールの遅延やなりすましの影響を受けにくい
- メール方式:ログインのたびに登録メールアドレスへコードを送る。アプリが不要で導入しやすいが、メールが届かないとログインできず、メールアカウントが乗っ取られると防御にならない
管理者や編集者など権限の強いアカウントには認証アプリ方式を推奨します。会員サイトの一般ユーザーなど、アプリの導入を求めにくい相手にはメール方式を選ぶ判断もありますが、その場合はメール配信の信頼性が前提になります。どちらの方式でも、パスワードの代わりではなく「パスワードに加えて」使う二要素認証として設定するのが基本です。
使うプラグインを選ぶ
OTPの生成や検証を自分で実装すると、時刻ずれの許容範囲、コードの再利用防止、総当たり対策など考えることが多く、誤りがそのまま脆弱性になります。実績のあるプラグインを使ってください。代表的なものは次のとおりです(2026年10月現在)。
- Two Factor:WordPress.org公式ディレクトリで公開されている、WordPressのコントリビューターが中心となって開発しているプラグイン。認証アプリ、メール、バックアップコードなどに対応し、ユーザーごとにプロフィール画面で設定する
- Wordfence Login Security:Wordfenceのログイン保護部分を単体にしたプラグイン。認証アプリ方式の二要素認証とログイン画面の保護を提供する
- WP 2FA:権限グループごとに二要素認証の利用を求める、設定ウィザードで導入を進めるといった管理寄りの機能を持つ
機能や画面の表記はバージョンによって変わるため、導入前に各プラグインの説明ページで対応方式と更新状況を確認してください。以下では、仕組みが分かりやすいTwo Factorを例に手順を説明します。
設定手順
1. バックアップとステージングでの確認
ログイン処理に関わるプラグインは、設定を誤ると管理画面に入れなくなります。導入前にファイルとデータベースのバックアップを取り、可能ならステージング環境で一度通しで試してください。FTP(またはSFTP)とサーバーのファイルマネージャーに入れることも事前に確認します。これが後述する復旧手段になります。
2. メール方式を使うならメール配信を確認
メール方式のコードは wp_mail() で送られます。サーバー標準の送信設定ではメールが迷惑メールに入ったり届かなかったりすることがあるため、SMTPプラグインなどで認証付きの送信に切り替え、テストメールが数十秒以内に届くことを確認しておきます。
3. プラグインを有効化し、自分のアカウントで設定する
プラグインを有効化すると、ユーザーのプロフィール画面に二要素認証の設定欄が追加されます。認証アプリ方式を選ぶとQRコードが表示されるので、スマートフォンのアプリで読み取り、アプリに表示された6桁のコードを入力して登録を完了します。コードを入力して確認する手順を経ないと有効にならないのは、読み取りミスのまま有効化して締め出されるのを防ぐためです。
コードが毎回拒否される場合は、スマートフォンかサーバーの時計がずれている可能性があります。TOTPは時刻からコードを計算するため、スマートフォンの日時を自動設定にし、サーバー側もNTPで時刻が同期されているかをホスティング会社の情報で確認してください。
4. バックアップコードを発行して保管する
スマートフォンの紛失や機種変更に備え、使い捨てのバックアップコードを発行します。コードはパスワードマネージャーなど安全な場所に保存し、スクリーンショットをクラウドに放置したり、サイト内のメモ欄に貼ったりしないでください。1つ使うと無効になるので、残りが少なくなったら再発行します。
5. ログアウトして実際に試す
別のブラウザかプライベートウィンドウでログインし、パスワードの後にコード入力画面が表示され、正しいコードで入れることを確認します。元のブラウザはログインしたままにしておくと、問題があってもすぐ設定を戻せます。
6. 他の管理者にも設定してもらう
全管理者が設定を終えるまでは、設定していないアカウントが弱点として残ります。WP 2FAのように権限ごとに設定を求められるプラグインもありますが、まずは管理者アカウントの数を減らし、不要なアカウントを削除するのが効果的です。
締め出されたときの復旧手段
コードを入力できなくなったときに備え、次の方法を把握しておきます。
- バックアップコードを使う:最初に試す手段です
- プラグインを一時的に無効化する:FTPで
wp-content/plugins/two-factorのフォルダ名を変更すると、プラグインが読み込まれなくなり、パスワードだけでログインできます。ログイン後はフォルダ名を戻し、設定をやり直してください - WP-CLIが使える場合:サーバーにSSH接続できるなら、次のコマンドで無効化できます
# 二要素認証プラグインを一時的に無効化する(ログイン後に再度有効化すること)
wp plugin deactivate two-factor
これらはサーバーに入れる人なら誰でも二要素認証を外せることを意味します。FTPやSSHのパスワードを強固にし、ホスティングの管理画面にも二要素認証を設定しておくことが、OTPの効果を保つ前提になります。
運用上の注意
総当たりへの備え
6桁のコードは組み合わせが100万通りしかないため、試行回数を制限しないと総当たりが成立し得ます。プラグイン側の失敗回数制限に加え、ログイン試行回数を制限するプラグインやWAFを併用してください。ログイン画面への過度なアクセスはサーバーの負荷にもなります。
メール方式を無効にしたい場合
Two Factorでは、利用できる方式を two_factor_providers フィルターで絞り込めます。たとえば管理者に認証アプリを使わせたいので、メール方式を選択肢から外す場合は、mu-pluginに次のように書きます。キー名はプラグインのバージョンで変わる可能性があるため、利用中のバージョンのソースで確認してから使ってください。
<?php
// wp-content/mu-plugins/two-factor-providers.php
// Two Factor プラグインのメール方式を選択肢から外す
add_filter( 'two_factor_providers', function ( $providers ) {
unset( $providers['Two_Factor_Email'] );
return $providers;
} );
既にメール方式だけを設定しているユーザーがいる状態で外すと、そのユーザーの二要素認証が働かなくなったり、再設定が必要になったりします。告知してから切り替えてください。
API経由のログインも確認する
XML-RPCやアプリケーションパスワードによるREST APIの認証は、ログイン画面を通らないためOTPの画面が出ません。使っていないならXML-RPCを無効にし、アプリケーションパスワードも不要なユーザーには発行しないようにします。プラグインによってはAPI経由の扱いを設定できるので、説明を確認してください。
個人情報の扱い
OTPの秘密鍵やバックアップコードはユーザーのメタ情報としてデータベースに保存されます。データベースのバックアップも秘密情報として扱い、アクセスできる人を限定してください。会員向けに導入する場合は、メールアドレスを認証に使うことをプライバシーポリシーに記載しておくと説明がしやすくなります。
まとめ
- 権限の強いアカウントには認証アプリ方式(TOTP)、アプリを求めにくい相手にはメール方式を検討する
- OTPは自作せず、Two Factor、Wordfence Login Security、WP 2FAなど更新が続いているプラグインを使う
- 有効化の前にバックアップ、FTP・SSHでの復旧手段、メール配信を確認し、バックアップコードを安全に保管する
- 試行回数の制限、XML-RPCやアプリケーションパスワードの扱いまで含めて運用する