以前Google2段階認証がアカウント乗っ取りなど安全への対策として設定しておくと良いという事を紹介しました。Dropboxやネットバンキングなどにも2段階認証の技術は使われています。私はつい最近まで知らなかったのですが、この2段階認証実はWordPressにもあるんです。
今回ご紹介するのは、WordPressのプラグイン「Google Authenticator」とAndroid (iOS) アプリ「Google認証システム (Google Authenticator)」を使ってWordPressにワンタイムパスワードの2段階認証とワンタイムパスワードを組み合わせた2段階認証システムをWordPressに導入するという方法です。
通常サービスにログインする時はユーザー名とパスワードを入力すると思いますが、2段階認証とはその名の通り一度携帯電話端末などに暗証番号を送りその暗証番号を追加で入力するとようやくログイン出来るというものです。
ワンタイムパスワードとは2段階認証とよく組み合わせて使われているシステムで「使い捨てパスワード」の事です。
ワンタイムパスワードの受け取り方としては小型端末のトークン、キャリアメール、アプリ、音声通知とあります。
photo by Alexander Gounder
Google2段階認証プロセス
GoogleアカウントにGoogle2段階認証プロセスを導入していない方はまずそちらの設定からしてみましょう。詳しくは「Google2段階認証の設定方法」で紹介しています。
この設定はGoogleアカウント乗っ取り (Gmail乗っ取り) 対策として非常に効果的な方法で、Googleも強く推奨しています。
Google認証システム(Google Authenticator) ・ Android(iOS)アプリ
Google認証システムはGoogle2段階認証プロセスのコードをアプリで受け取れるというサービスです。Google専用のサービスというわけではなく、それ以外にも今回のようにWordPressやDropbox、Facebook、Yahoo!JAPAN、Twitter、Microsoftなどでできるようです。これらWordPRess以外のGoogle認証システムとの連携も当ブログでそのうち紹介したいと思います。
iOSの方はApp Storeで「Google Authenticator」と検索すると出て来ます。手順はAndroidとほとんど変わらないと思います。
WordPressプラグイン ・ Google Authenticator
このプラグインGoogle Authenticatorを導入する事によって、Androidアプリ「Google認証システム」と連携させて2段階認証のシステムをWordPressに組み込む事ができます。
「プラグイン – 新規追加」を選択検索枠に「Google Authenticator」と入力しプラグインを検索します。出てきたら「今すぐインストール」→「プラグインを有効か」とクリックします。
「WordPress」Google Authenticator設定方法
左側から「ユーザー」→「あなたのプロフィール」と選択するとこのような画面になります。また、一つのWordPressブログを複数のユーザーで投稿している場合は各ユーザーごとの設定をする必要があります。
設定方法は以下の通りです
- 「Active」… チェックして有効にする。こちらが2段階認証のプロセスを無効/有効にする設定です。
- 「Relaxed mode」… 有効にするとワンタイムパスワードの時間を4分に伸ばします。ワンタイムパスワードは短い程セキュリティが高くなるので無効のままで問題なしです。
- 「Description」… WordPressブログを複数運営している場合は識別しやすくするために名称を付けます。通常はデフォルトで問題なしです。
- 「Secret」… このプラグインとGoogle認証システム/Android (Google Authenticator/iOS) を連携させるためのシークレットキーです。表示されている英数字16文字をアプリに入力します。
「Create new secret」で新たにシークレットキーを発行、「Show/Hide QR code」をクリックするとQRコードが現れるのでそちらをアプリ内でバーコードスキャンして関連づける方法もあります。
「Android」Google認証システム・連携の設定
それではAndroidアプリの「Google認証システム」に先ほどのシークレットキーを入力して連携させてみます。
▼アプリを開いたら「アカウントを設定」→「提供されたキーを入力」をクリックします。

Googleアカウント名とシークレットキーを入力。下の項目は「時間ベース」のままでOKです。
設定したら確認のため一度ログアウト、そしてログインしてみます。
「アクシデント発生?!」ログイン出来ない
まさかのアクシデント、通常パスワード+ワンタイムパスワード (+平仮名4文字) を入力してもWordPress管理画面にログインできないという事態になってしまいました!

原因は二つ考えられます。まず一つ目は別プラグインの「SiteGuard WP Plugin」を有効にしたままだったので併用動作でなんらかの不具合が起きてしまった。ちなみに4文字の平仮名の入力を要求しているのが「SiteGuard WP Plugin」です。よく考えたら通常のパスワードに加えて2段階認証+4文字認証なんて相当面倒ですからね・・。
もう一つの原因は「Active」はもう有効にしたままの状態で、シークレットキーを変更→スマホにシークレットキーを入力。その後「設定を更新」せずにすぐログアウトしてしまったのでアプリに設定されたシークレットキーが無効になってしまった。
「対処方法」 FTPソフトを使いプラグインを無効化する
原因はどちらかだと思いますが、まずは一つ目の原因として考えられる「SiteGuard WP Plugin」を無効化して様子を見てみます。FTPソフトを立ち上げプラグインフォルダまで辿ります。「ブログフォルダ/wp-content/plugins/プラグインフォルダ」
ちなみにプラグインを無効化するにはプラグイン名を変更すればOKです。戻す場合はデフォルトの名前に戻します。「siteguard」を「siteguard-」にしました。
プラグイン名を変更する時に試したら半角、全角、空白、英数字、平仮名、だいたいの記号は認識されましたが、「/」は認識しませんでした。
WordPressのログイン画面へいくとこのように「SiteGuard WP Plugin」が無効化されていました。

ただ無効化してもログイン出来なかったので、原因はどうやらプラグインの「Google Authenticator」のようです。FTPソフトで「siteguard」を元に戻し「google-authenticator」→「google-authenticator-」に変更します。
再度WordPressログイン画面へいきログインします。今度は「Google Authenticator」が無効化になっているので通常通りログインできます。
ログインしたら、FTPソフトで変更したプラグインファイル名「google-authenticator-」を元に戻します。次に管理画面を「F5」で更新し、「ユーザー」→「あなたのプロフィール」を見るとGoogle Authenticator設定画面が現れます。
今度はQRコードで連携させてみます。
「Show/Hide QR code」をクリックします。スマホの「Google認証システム」を立ち上げ、最初に設定しログイン失敗したアカウントを削除します。

スマホの「アカウントを設定」→「バーコードをスキャン」をクリック。PCに表示されているQRコードを読み込みます。
一瞬で完了! こっちの方が断然簡単でした。
WordPress2段階認証でログイン
これで設定は完了したので、一応確認してみましょう。WordPressをログアウトします。そしてパスワード+シークレットキーなどと全て入力。
「通常のパスワード+Googleの2段階認証+SiteGuard WP Plugin」の3段階でもログイン出来ました。この組み合わせの情報があまりなかったので組み合わせるとセキュリティ的にさらに高くなるのかどうなのかはわかりません。ただ毎回この組み合わせだと結構面倒なので2段階認証だけでも十分だと思われます。
まとめ
また、「Google認証システム+Google Authenticator」を使ったWordPressの2段階認証はスマホのアプリがあってログインできるものなのでスマホをなくしてしまった場合もこのFTPを操作する方法を行えば解決できるようです。