2026年5月20日

2026年5月20日

WordPressの二段階認証を設定する方法|Two Factorプラグインの手順と紛失時の解除

二段階認証(2FA)を設定すると、ログインのときにパスワードに加えて、スマートフォンの認証アプリに表示される6桁のコードなどが必要になります。パスワードが漏れたり推測されたりしても、それだけではログインできなくなります。WordPress 本体には二段階認証の機能がないため、プラグインで追加します。

この記事では、無料の Two Factor プラグインを使った設定を中心に説明します。内容は2026年11月時点(Two Factor 0.17.0、WP 2FA 4.3.0)で確認したものです。

Two Factor プラグインとは

Two Factor は wordpress.org で配布されている無料プラグインで、WordPress のコア開発に関わる人たちが GitHub の WordPress 組織(WordPress/two-factor)で開発しています。WordPress 本体に組み込まれた機能ではありませんが、余計な機能がなく、設定も各ユーザーのプロフィール画面で完結します。

使える認証方法は次のとおりです。

方法 内容
Authenticator App(TOTP) Google Authenticator、Authy、1Password などの認証アプリに表示される6桁のコード。30秒ごとに変わる
Email Codes ログインのたびに、ユーザーのメールアドレスへコードを送る
Backup Codes 1回だけ使える予備のコード(10個)。スマートフォンを失ったときに使う
Dummy Method テスト用。WP_DEBUG が有効なときだけ表示される

以前あった FIDO U2F(セキュリティキー)は、ブラウザーの対応終了に伴い削除されました。パスキーやセキュリティキーを使いたい場合は、Two Factor に方法を追加する別プラグイン「Two-Factor Provider: WebAuthn」があります。

Two Factor をインストールする

管理画面の「プラグイン」→「新規プラグインを追加」で「Two Factor」を検索し、インストールして有効化します。WP-CLI では次のとおりです。

wp plugin install two-factor --activate

管理者は「設定」→「Two-Factor」で、サイトで使わせる認証方法を選べます(初期状態ではすべて有効)。メールが届きにくいサーバーでは Email Codes を外しておく、といった使い方ができます。

認証アプリ(TOTP)を設定する

設定は、ユーザーが自分のプロフィール画面で行います。

  1. 管理画面の「ユーザー」→「プロフィール」を開く
  2. 下のほうにある「Two-Factor Options」の欄まで進む(言語設定によっては日本語の見出しで表示されます)
  3. 「Authenticator App」を有効にし、表示された QR コードを認証アプリで読み取る(読み取れない場合は表示された鍵を手で入力する)
  4. 認証アプリに表示された6桁のコードを入力して確認する
  5. 「Backup Codes」で予備のコードを作り、印刷するかパスワード管理ソフトなど安全な場所に保管する
  6. ふだん使う方法(primary)を選び、「プロフィールを更新」を押す

次回から、パスワードを入力したあとに認証コードを求められます。

管理者は、ほかのユーザーの編集画面(「ユーザー」→「ユーザー一覧」→ 対象ユーザーの「編集」)でも同じ欄を操作できます。

認証コードが合わないとき

TOTP は「共有の秘密鍵」と「現在時刻」からコードを計算する仕組みです(RFC 6238)。サーバーとスマートフォンの時刻が大きくずれていると、正しいコードを入れても通りません。Two Factor は前後数ステップ(1ステップ30秒)のずれまでは許容しますが、それを超える場合はサーバー側の時刻同期(timedatectl で NTP が有効か)を確認してください。スマートフォン側も時刻の自動設定を有効にしておきます。

役割ごとに二段階認証を必須にしたい場合

Two Factor には、特定の役割(管理者など)に二段階認証の設定を強制する機能がありません。プラグインの FAQ でも、強制は今後の検討課題とされています。以前この記事で紹介していた two_factor_user_roles というフィルターは存在しません。

管理者や編集者に二段階認証を必須にしたい場合は、強制の機能を持つプラグインを使います。たとえば WP 2FA(Melapress 社)の無料版では、次のことができます。

  • すべてのユーザー、または特定の役割のユーザーに二段階認証を必須にする
  • 猶予期間を設けて、その間に各ユーザーに設定させる(猶予なしで即時に求めることもできる)
  • 認証アプリ(TOTP)、メールのコード、バックアップコードを使う
  • 有効化後の初期設定ウィザードで方針を決める
wp plugin install wp-2fa --activate

Two Factor と WP 2FA を同時に有効にすると、ログインの流れが二重になります。どちらか一方を使ってください。

WP-CLI で二段階認証を管理する

Two Factor 0.17.0 から、WP-CLI の wp two-factor コマンドが付きました。ユーザーは ID・ログイン名・メールアドレスのどれでも指定できます。

# ユーザーの二段階認証の状態を確認
wp two-factor status admin

# 使える認証方法の一覧
wp two-factor list-providers

# バックアップコードを作り直す(既存のコードは無効になる。初期値は10個)
wp two-factor backup-codes generate admin

# 認証の失敗が続いて待たされている状態だけを解除する(設定は変えない)
wp two-factor unlock admin

バックアップコードはハッシュ化して保存されるため、作ったあとにデータベースから読み出すことはできません。なくした場合は作り直します。

スマートフォンを紛失したときの解除方法

バックアップコードでログインする

ログイン画面で認証コードを求められたら、別の方法を選ぶリンクから「Backup Codes」を選び、保管しておいたコードを入力します。1つのコードは1回しか使えません。ログインしたら、プロフィール画面で認証アプリを設定し直し、バックアップコードも作り直します。

ほかの管理者に解除してもらう

ログインできる管理者がいれば、「ユーザー」→「ユーザー一覧」で対象ユーザーの「編集」を開き、「Two-Factor Options」の有効な方法のチェックをすべて外して「ユーザーを更新」を押します。これでパスワードだけでログインできるようになります。

WP-CLI で解除する

サーバーに SSH で入れる場合は、次のコマンドでそのユーザーの二段階認証をすべてリセットできます。

# 確認なしで、admin の二段階認証の設定をすべて解除
wp two-factor disable admin --yes

# 特定の方法だけを止める場合(方法名は list-providers で確認)
wp two-factor disable admin Two_Factor_Totp

管理画面にも SSH にも入れない場合

FTP やサーバーのファイルマネージャーで wp-content/plugins/two-factor のフォルダー名を一時的に変えると、プラグインが停止し、パスワードだけでログインできます。ログイン後にフォルダー名を戻し、プラグインを有効化して設定し直してください。プラグインを止めている間は、ほかのユーザーも二段階認証なしでログインできる状態になるため、作業は短時間で済ませます。

アプリケーションパスワードとの関係

WordPress 5.6 から、REST API や XML-RPC 用の専用パスワード「アプリケーションパスワード」を発行できます(「ユーザー」→「プロフィール」の「アプリケーションパスワード」欄)。HTTPS のサイト、またはローカル開発環境で使えます。

Two Factor で二段階認証を有効にしたユーザーは、REST API や XML-RPC には通常のパスワードで認証できず、アプリケーションパスワードだけが使えます(two_factor_user_api_login_enable フィルターの初期動作)。外部のアプリや連携サービスからログインしている場合は、アプリケーションパスワードを発行して差し替えてください。

# ユーザーのアプリケーションパスワードの一覧
wp user application-password list admin

# 新しく発行する(パスワードは発行時に一度だけ表示される)
wp user application-password create admin "外部連携" --porcelain

アプリケーションパスワードについてはWordPressのアプリケーションパスワードの使い方も参考にしてください。

設定前に決めておくこと

  • バックアップコードの保管場所(設定したその場で保存する)
  • 認証アプリを入れたスマートフォンをなくしたときに、誰がどの方法で解除するか(管理者が1人だけのサイトでは、SSH や FTP で入れる手段を確保しておく)
  • 二段階認証と合わせて、ログイン試行回数の制限も入れるか(WordPressのログイン試行回数を制限する方法)

まとめ

  • Two Factor を入れ、各ユーザーが「プロフィール」で認証アプリとバックアップコードを設定します。
  • 役割ごとの強制は Two Factor にはないため、必要なら WP 2FA などの強制機能を持つプラグインを使います。
  • 紛失時は、バックアップコード、ほかの管理者による解除、wp two-factor disable、プラグインのフォルダー名変更の順に試します。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲