【最後の手段】WordPress プラグイン、Google Authenticator を強引にオフにする方法!

スクリーンショット 2013-06-08 8.54.11.png

本ブログでは、WordPress プラグインの Google Authenticator を使用しています。Google の2段階認証、安心です!

ですがもし、認証コードを発行する iPhone が無くなったら?亡くなったら?どういたしましょう。。。WordPress にログインできません><。

そこで今回、iPhone や Android をなくしてしまった場合に、WordPress の Google Authenticator を強引にオフ(Active のチェックを外す)にして、管理画面にユーザー名とパスワードだけでログイン出きるようにする方法を調べます。

ポイント

  • MySQL のデータを直接編集して Google Authenticator をオフにする。
  • wp_usermeta テーブルの meta_key 列の値が googleauthenticator_enabled である行の meta_value 列の値を disabled に変更すれば良い。
  • 値を変更する際、条件にユーザーを指定すること!

具体的に、MySQL のデータを直接編集してとあるユーザーの Google Authenticator をオフにする手順

  • ユーザー名「admin」でログインしたい
  • パスワードも手元にある
  • Google Authenticator プラグインをインストール済みで使用するよう設定してオンにしてある

でも、iPhone をなくしてしまって WordPress にログインできない、でもしなきゃならない><、という状況を想定します。

ユーザー名が「admin」とセキュリティ観点からは最低ですけれども、今はそこには触れません。

SSH でサーバーにログインし、そこから MySQL にログインし、WordPress のデーターベースを編集できるようになった時点から始めます。ちなみに、CUI での操作でやってみています。

まずは、ログインしたいユーザーの ID を調べます。

mysql> SELECT ID, user_login from wp_users;
+----+---------------+
| ID | user_login    |
+----+---------------+
|  1 | admin         |
|  5 | Cais          |
|  4 | Chip Bennett  |
|  3 | Ian Stewart   |
|  2 | Lance Willett |
+----+---------------+
5 rows in set (0.00 sec)

mysql>

「admin」の ID は「1」だとわかりました。

次に「admin」の Google Authenticator 設定で有効無効がどうなっているかを確認します。

mysql> SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE meta_key = 'googleauthenticator_enabled' AND user_id = 1;
+---------+-----------------------------+------------+
| user_id | meta_key                    | meta_value |
+---------+-----------------------------+------------+
|       1 | googleauthenticator_enabled | enabled    |
+---------+-----------------------------+------------+
1 row in set (0.00 sec)

mysql>

googleauthenticator_enabled は enabled と、確かに有効となっています。この値をアップデートして、無効にすればよいですね。

では実際に、googleauthenticator_enabled に対応する meta_value の値を変更しましょう。

mysql> UPDATE wp_usermeta SET meta_value = 'disabled' WHERE meta_key = 'googleauthenticator_enabled' AND user_id = 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql>

確認します。

mysql> SELECT user_id, meta_key, meta_value FROM wp_usermeta WHERE meta_key = 'googleauthenticator_enabled' AND user_id = 1;
+---------+-----------------------------+------------+
| user_id | meta_key                    | meta_value |
+---------+-----------------------------+------------+
|       1 | googleauthenticator_enabled | disabled   |
+---------+-----------------------------+------------+
1 row in set (0.00 sec)

mysql>

googleauthenticator_enabled が disabled に更新されました。ログイン画面を確かめてみます。

スクリーンショット 2013-06-08 9.01.11.png

相変わらず Google Authenticator code  を入力するフォームが表示されていますので、アイエエエエエエエエエ!ナンデ!?ひょっとして失敗!?と思うかもしれませんが、落ち着いて。試してみましょう。

まずは敢えて間違えてみます。おお!ゴウランガ!見よ!Google Authenticator code が間違えている旨のメッセージが表示されないではないか!これは期待がもてますね♪

ユーザー名、パスワードを入力し、Google Authenticator code の欄は未記入のまま「ログイン」をクリック。はい!無事に管理画面にアクセスすることできました。成功です。

おまけ。もっとステキに 1 回で Google Authenticator プラグインが「Active」かどうか調べる SQL

wp_users.ID = wp_usermeta.user_id でテーブルを結合すれば、1 回の SQL で、条件はログインユーザー名で Google Authenticator プラグインが「Active」かどうかを調べることができますね♪

  • SELECT wp_users.user_login, wp_usermeta.meta_key, wp_usermeta.meta_value FROM wp_users, wp_usermeta WHERE wp_users.ID = wp_usermeta.user_id
    AND wp_usermeta.meta_key = ‘googleauthenticator_enabled’ AND wp_users.user_login = ‘admin’;
mysql> SELECT wp_users.user_login, wp_usermeta.meta_key, wp_usermeta.meta_value
    -> FROM wp_users, wp_usermeta
    -> WHERE wp_users.ID = wp_usermeta.user_id
    ->     AND wp_usermeta.meta_key = 'googleauthenticator_enabled'
    ->     AND wp_users.user_login = 'admin'; 
+------------+-----------------------------+------------+
| user_login | meta_key                    | meta_value |
+------------+-----------------------------+------------+
| admin      | googleauthenticator_enabled | disabled   |
+------------+-----------------------------+------------+
1 row in set (0.00 sec)

mysql>

おまけ。Google Authenticator プラグインの「有効化」と「Active」設定がログイン画面に及ぼす影響

  • プラグイン画面の Google Authenticator を「有効化」にすると、ログイン画面に Google Authenticator code のフォームが表示される。表示されるだけなので、未記入でログインできる。
  • ユーザープロフィール画面で Google Authenticator Settings の「Active」にチェックしてプロフィールを更新すると、Google Authenticator code に正しい値を入力してやっとログインできるように動きが変わる。

おまけ。普通に正規の手順で WordPress プラグイン Google Authenticator をオフにする方法

簡単です♪

  1. ユーザー一覧 > プロフィール
  2. 「Google Authenticator Settings」にある「Active」のチェックを外す
  3. 「プロフィールを更新」をクリック

おわりに

今回の方法は、ほんとうに本当に緊急事態の場合だけに使おうと思います。そもそも iPhone などの重要な端末をなくしてしまう、手元にないこと自体、問題です。

ちょっと見当たらないからといって、Google Authenticator プラグインをオフにして WordPress にログインしましょう、という発想はおかしく感じます。

今回の投稿は、次のページの最後部を拝見しましたのがきっかけです。ありがとうございます♪

以上です。

ディスカッションに参加

1件のコメント

コメントを残す

コメントを残す