2026年7月12日

2026年7月12日

WordPressでSMSによる二段階認証を設定する手順と注意点

WordPressのログインに、携帯電話へSMSで届く確認コードを加えると、パスワードが漏れても本人の電話がなければログインできなくなります。WordPressコアには二段階認証の機能がないため、SMSに対応したプラグインと、SMSを送る配信サービスを組み合わせて設定します。この記事では、SMS方式の長所と弱点、設定の流れ、テストと締め出し対策までを、実際に導入する順番で説明します。

SMS方式を選ぶ前に知っておくこと

二段階認証にはいくつか方式があり、SMSはそのひとつです。主な方式を比べると次のようになります。

方式 利用者の手間 安全性の目安 運用コスト
SMSコード スマホアプリ不要で分かりやすい 中程度 送信ごとに配信費用がかかることが多い
認証アプリ(TOTP) アプリの導入が必要 SMSより高い 追加費用なし
メールコード 手軽 メールアカウントの安全性に依存 追加費用なし

SMSの長所は、認証アプリを入れてもらう必要がなく、操作に慣れていない人でも使いやすいことです。会員やスタッフに二段階認証を広く使ってもらいたい場面では有力な選択肢になります。

一方で弱点もあります。

  • SIMスワップ:攻撃者が携帯電話会社をだましてSIMを再発行させると、SMSを横取りされるおそれがあります。
  • 届かない・遅れる:電波状況、海外の番号、迷惑SMSフィルターなどで、コードが届かないことがあります。
  • 費用:SMSの配信サービスは、多くの場合送信件数に応じた従量課金です。

このため、サイト管理者のように権限の大きいアカウントには認証アプリを使い、一般の会員やスタッフにはSMSも選べるようにする、という使い分けが現実的です。

必要なものをそろえる

SMS認証を動かすには、次の3つが必要です。

  1. SMSに対応した二段階認証プラグイン
  2. SMS配信サービス(プラグイン側が用意しているもの、または Twilio などの外部サービス)
  3. 利用者の携帯電話番号

プラグイン選びでは、SMSに対応しているかどうかに加えて、次の点を確認します(2026年10月現在)。

  • 最近も更新されているか、利用中の WordPress と PHP のバージョンで動作確認されているか
  • SMSが届かないときの代わりの手段(バックアップコードや認証アプリ)を用意できるか
  • 権限グループ(ロール)ごとに二段階認証を必須にできるか

具体例として、miniOrange の二段階認証プラグインはSMSによるコード送信に対応しており、送信には同社のSMS配信枠を使う仕組みです。公式の Two Factor プラグインや Wordfence のログインセキュリティ機能は、認証アプリ方式が中心でSMSには対応していません。総合的な二段階認証プラグインでも、SMSは有料版の機能になっている場合があります。対応状況や料金体系は変わりやすいため、導入前に各プラグインの説明ページで確認してください。

設定の流れ

プラグインごとに画面は異なりますが、作業の流れはおおむね共通です。作業前に、サイトのファイルとデータベースのバックアップを取ってください。

1. プラグインを入れ、SMS配信サービスと接続する

プラグインをインストールして有効化したら、設定画面でSMSの送信方法を選びます。外部の配信サービスを使う場合は、そのサービスでアカウントを作り、管理画面で発行されるAPIキーや認証情報をプラグインに入力します。

APIキーは、知られると他人に勝手にSMSを送られてしまう秘密情報です。誰でも見られる場所に書かず、管理者以外がプラグインの設定画面を開けないようにしておきます。配信サービス側で、送信件数の上限や使用量の通知を設定しておくと、不正利用や想定外の請求に早く気づけます。

2. 電話番号を登録する

各ユーザーが自分のプロフィール画面などから電話番号を登録し、届いたコードを入力して番号を確認します。番号は国番号付きの形式で求められることが多く、日本の携帯電話なら先頭の 0 を除いて +81 を付けます(例:090-0000-0000 なら +819000000000)。入力形式を間違えるとコードが届かないため、利用者向けの案内に書いておくと問い合わせが減ります。

3. バックアップ手段を用意する

SMSが届かない、電話を紛失した、という事態に備え、バックアップコードを発行して安全な場所に保管してもらいます。プラグインが対応していれば、認証アプリやメールを予備の方式として登録しておくのも有効です。

4. 対象ユーザーを決めて必須化する

まず管理者アカウントで動作を確かめてから、二段階認証を必須にする権限グループを決めます。いきなり全員に必須化すると、電話番号を登録していない人がログインできなくなります。猶予期間を設定できるプラグインなら、その機能を使って段階的に移行してください。

有効化したあとのテスト

設定が終わったら、ログイン中のブラウザとは別に、プライベートウィンドウで次の動作を確かめます。

  • パスワード入力後にコード入力画面が表示され、SMSが数十秒程度で届くか
  • 正しいコードでログインでき、誤ったコードや期限切れのコードは拒否されるか
  • バックアップコードでログインできるか
  • パスワードリセット後も二段階認証が求められるか

テストの間は、元のブラウザでのログイン状態を切らずに残しておきます。何か問題があっても、その画面から設定を戻せるためです。

ログイン以外の入口にも気を配る

二段階認証はログイン画面での認証を強化するものですが、WordPressにはほかにも認証の入口があります。

WordPress 5.6 以降に標準で備わっているアプリケーションパスワードは、REST API や XML-RPC から外部ツールで接続するためのもので、二段階認証を経由せずに使えます。使っていない場合は、ユーザーのプロフィール画面で発行済みのものがないか確認し、不要なら機能自体を無効化する方法もあります。

// 子テーマの functions.php などに追加:アプリケーションパスワード機能を無効化
add_filter( 'wp_is_application_passwords_available', '__return_false' );

外部の連携サービスやスマホアプリが接続に使っている場合は止まってしまうため、利用状況を確認してから設定してください。同様に、XML-RPC を使っていなければ無効化を検討します。

締め出されたときの戻し方

電話を紛失してバックアップコードもない、SMSが届かずログインできない、といった場合は、別の管理者に二段階認証の設定をリセットしてもらうのが最も安全です。管理者が自分ひとりの場合は、FTP/SFTP やファイルマネージャーで wp-content/plugins/ 内の二段階認証プラグインのフォルダ名を一時的に変更して無効化すると、パスワードだけでログインできるようになります。SSH で WP-CLI が使えるなら、wp plugin deactivate プラグインのフォルダ名 でも無効化できます。

ログインできたらフォルダ名を戻してプラグインを有効化し、電話番号やバックアップコードを登録し直してください。無効化している間は二段階認証が効いていないため、作業は短時間で済ませます。

まとめ

  • SMS方式は利用者の負担が小さい反面、SIMスワップや不達のリスクがあり、送信費用もかかる。管理者は認証アプリ、一般ユーザーはSMSも選べる形が現実的
  • 必要なのは、SMS対応プラグイン、SMS配信サービス、利用者の電話番号の3つ。対応状況は導入前に各プラグインで確認する
  • APIキーは秘密情報として扱い、配信サービス側で送信上限や通知を設定する
  • バックアップコードを用意し、プライベートウィンドウでテストしてから段階的に必須化する
  • アプリケーションパスワードや XML-RPC など、二段階認証を通らない入口も見直す

お気軽にご相談ください

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