WordPress の管理者に 2 段階認証(認証アプリ)を入れる:Two-Factor プラグインと SiteGuard の組み合わせ

広告WordPress・PHP を学べる本

Amazonのアソシエイトとして、WordPress functions.phpは適格販売により収入を得ています。

WordPress の管理画面は、ID とパスワードが分かれば入れてしまいます。パスワードを長くしても、ほかのサービスから漏れたものを使い回していれば意味がありません。そこで、自分で運営している WordPress のサイトの管理者に、スマホの認証アプリを使った 2 段階認証を入れました。

使ったのは、WordPress.org のコントリビューターが作っている「Two-Factor」というプラグインです。前から入れていた SiteGuard WP Plugin とは役が違うので、2 つを組み合わせています。入れ方と、入れるときに気をつけたことをまとめます。

SiteGuard と Two-Factor の役の違い

SiteGuard WP Plugin にも、ログインを守る機能がたくさんあります。ただ、2 段階認証の機能はありません。Two-Factor は、そこを足すためのプラグインです。

守り方 担当するプラグイン
ログインの画面の URL を変える SiteGuard
画像の文字を入れさせる(画像認証) SiteGuard
何度も失敗したらロックする SiteGuard
パスワードのあとに、スマホの 6 けたの番号を入れさせる Two-Factor
スマホをなくしたときの予備の番号(リカバリーコード) Two-Factor

2 つを入れると、ログインの流れは「SiteGuard のログインの画面(画像認証つき)でパスワードを入れる → 次の画面でスマホの 6 けたの番号を入れる」になります。2 つを同時に入れても、ぶつかることはありませんでした。

入れる前にすること

  • データベースのバックアップをとる:プラグインを入れるだけなので壊れることはまずありませんが、ログインの仕組みに関わるので、念のためとっておきます。
  • サーバーにファイルで入れる道(FTP か SSH)を確かめておく:万が一ログインできなくなったときに、プラグインを止める道になります(下の「ログインできなくなったとき」)。
  • スマホに認証アプリを入れておく:Google Authenticator・Microsoft Authenticator など、6 けたの番号が出るアプリなら使えます。パスワードの管理アプリ(1Password など)の中には、この番号を出せるものもあります。

入れ方

1. プラグインを入れて有効にする

管理画面の「プラグイン」→「新規追加」で「Two-Factor」を探し、作者が「WordPress.org Contributors」のものを入れて有効にします。似た名前のプラグインが多いので、作者を確かめてください。

有効にしただけでは、何も変わりません。2 段階認証は、ユーザーごとに自分で設定します。

2. 自分のプロフィールで認証アプリを登録する

  1. 「ユーザー」→「プロフィール」を開き、下のほうの「Two-Factor Options」の欄まで進みます。
  2. 「Authenticator App」の「Enable Authenticator App」に印を入れると、QR コードが出ます。
  3. スマホの認証アプリで QR コードを読み取ります。
  4. アプリに出た 6 けたの番号を入れて、登録します。
  5. 欄のいちばん下の「Primary Method」(主に使う方法)で「Authenticator App」を選び、プロフィールを保存します。

2 段階認証の設定を変えるときは、少し前にログインしたばかりであることを求められます。ログインしてから時間がたっていると「To update your Two-Factor options, you must first revalidate your session.」と出るので、「Revalidate now」を押して確認し直してから設定してください。

3. リカバリーコードを作る

同じ欄の「Recovery Codes」に印を入れて、予備の番号(リカバリーコード)を作ります。スマホをなくしたり、機種を変えて認証アプリが空になったりしたときに、この番号でログインできます。1 つの番号は 1 回しか使えません。

作った番号は、その場でしか表示されません。パスワードの管理アプリなど、スマホとは別の安全な場所に控えておきます。紙に書くなら、パソコンの近くに置きっぱなしにしないようにします。

4. ログアウトして、ログインし直してみる

いったんログアウトし、ログインし直して、パスワードのあとに 6 けたの番号を聞かれることを確かめます。ここで入れれば、設定は完了です。

入れたあとに気づいたこと

アプリケーションパスワードの API はそのまま使えた

外のツールから REST API で記事を読み書きするために、WordPress の「アプリケーションパスワード」を使っていました。2 段階認証を入れたあとも、アプリケーションパスワードでの API の呼び出しは、そのまま使えました。ブラウザでのログインだけが 2 段階になります。

Two-Factor の設定の欄にも「REST API と XML-RPC には、ふだんのパスワードではなくアプリケーションパスワードを使う」と書かれています。ふだんのパスワードで API を呼んでいる仕組みがあれば、先にアプリケーションパスワードへ切り替えておきます。

メールで番号を受け取る方法もある

認証アプリのほかに、ログインのたびにメールで番号を送る「Email」も選べます。ただ、メールのアカウントが乗っ取られると意味がないので、主に使う方法は認証アプリにし、リカバリーコードを予備にしています。

サイトの名前に「&」があると、アプリに「&」と出る

サイトのタイトルに「&」が入っているサイトでは、認証アプリに出る名前が「&」になりました。WordPress がサイトのタイトルの「&」を「&」という形で保存していて、それがそのまま認証アプリの名前に使われるためです。

番号はそのまま使えるので、困るのは見た目だけです。気になるときは、認証アプリの中で名前を書き換えてください。

自分で作るプラグインやテーマで、サイトのタイトルをメールの件名などに使うときは、wp_specialchars_decode() で元の「&」に戻してから使います。くわしくは get_bloginfo() の逆引きにまとめています。

2 段階認証にするのは、まず管理者から

Two-Factor は、ユーザーが自分で設定する作りです。まずは、いちばん力の強い管理者のアカウントから設定しました。編集者など、ほかのユーザーがいるサイトでは、その人にも設定してもらうよう伝えます。

ログインできなくなったとき

スマホもリカバリーコードも手元にないときは、サーバーのファイルからプラグインを止めます。

  1. FTP か SSH で、wp-content/plugins/ の中を開きます。
  2. 「two-factor」のフォルダの名前を、たとえば「two-factor-off」に変えます。
  3. WordPress はプラグインを見つけられなくなって止めるので、パスワードだけでログインできます。
  4. ログインしたら、フォルダの名前を元に戻して、プラグインを有効にし直し、認証アプリを登録し直します。

この方法を使えるのは、サーバーに入れる人だけです。サーバーの管理画面に入る方法も、あわせて控えておきます。

まとめ

  • SiteGuard(ログインの URL・画像認証・ロック)に、Two-Factor(スマホの 6 けたの番号)を足すと、パスワードが漏れても管理画面に入られにくくなる。
  • 入れる前に、データベースのバックアップと、サーバーのファイルに入る道を確かめておく。
  • 認証アプリを登録したら、リカバリーコードを作って、スマホとは別の場所に控える。
  • ログインできなくなったら、wp-content/plugins/two-factor のフォルダの名前を変えれば止められる。

関連機能

  1. WordPressプラグインが英語表示になってしまった時に日本語にする方法 ( 日本語対応済みのプラグインの場合 )

  2. WordPress 記事データの複製 Yoast Duplicate Post プラグイン 作業時のバックアップとしても活用

  3. WordPressのバージョン情報を自動的に最新バージョンに偽装する

サイドバー

よく使うカスタマイズ

最近の記事

Profile

PAGE TOP