安全にWordpressを運用する一つの対策として2要素認証(2段階認証)を導入しました。利用したのは、まず、プラグインの「Google Authenticator-Wordpress Two Factor Authentication (2FA)」。ワンタイムパスワード生成には「Google認証システムアプリ」を使用、アプリの動作端末は「Android」です。
<前提条件>
- Google認証システム(アプリ)をAndroid(アンドロイド)にインストールしてある。
- 端末はAndroid。(iPhoneでも基本的な手順は同じと思われる。)
- WordPressをインストールしているサーバにFTPなどでアクセスできる権限や環境がある。(運用上は必要ない。)
【手順】
1.プラグイン「Google Authenticator-Two Factor Authentication (2FA)」をインストール後、「有効化」。
(図1-1)プラグインの新規追加ボタンをクリックして、検索欄に「authentication」と入力しEnterキーを押下。
「Google Authenticator-Two Factor Authentication (2FA)」と「Two Factor Authentication」がヒットします。どちらも同じような機能があると思われます。
(図1-2)今回は、「Google Authenticator-Two Factor Authentication (2FA)」を選択し、「インストール」ボタンをクリック後、「有効化」ボタンをクリック。インストールと有効化が完了する。
- 図1−1:プラグインの新規追加から、検索欄「authentication」と入力しEnterをクリック、「Google Authenticator-Two Factor Authentication (2FA)」を選択し、「インストール」ボタンをクリック。
- 図1−2:インストール後、「有効化」ボタンをクリック。
2.設定開始。
(図2-1)インストールすると、「miniOrange 2 Factor Authentication」という項目が左ペイン(左の枠)内に作成されます。そこの部分をクリックし、設定を開始します。
(図2-2)まずプライバシーポリシーの確認画面です。要は、「ユーザがより安全にこのプラグインを利用できるようにプライバシーポリシーをアップデートしたりプラグインを改善したりする。」と言っています。「OK」をクリックします。
(図2-3)次は、サインインするためのアカウントを作成します。メールアドレスとサイトURLは自動で入力されています。メールアドレスがアカウントとして使われるようです。したがって、このメールアドレスは、この後、サインインするためのワンタイムパスワードがメールで送信されてくるので、現在受信できるものを記入しておきます。アカウントのパスワードを安全性を考慮して自分で作成して入力します。その下に、同じものを入力します。「Create Acount」をクリックします。
- 図2−1:左ペイン内「miniOrange2-Factor」をクリック。
- 図2−2:プライバシポリ−「プライバシーポリシーを更新し、ユーザが安全に使えるようにプラグインを改修する。」と言っている。「OK」をクリック。
- 図2−3:アカウントを登録する。「メールアドレス」「サイトURL」は自動で入力されている。「メールアドレス」はこのあとサインインに必要なワンタイムパスワードが送られてくるので、受信できるものを入力しておく。「Create Acount」をクリック。
3.サインアップ。
(図3-1)ワンタイムパスワード(コード)入力画面が開きます。
(図3-2)しばらくすると、登録メールアドレス宛にワンタイムパスワード(コード)記載のメールが届きます。そこに書かれたコードをコピーするかメモを取ります。
(図3-3)コピー(メモ)したコードを入力後、「Validate OTP」をクリックする。
(図3-4)OTPが検証され、サインアップが完了する。「Next」ボタンをクリックする。
- 図3−1:ワンタイムパスワード(コード)入力画面が表示された。
- 図3−2:しばらくすると、登録メールアドレス宛にワンタイムパスワード(コード)記載のメールが届く。そこに書かれたコードをコピーするかメモをとる。
- 図3−3:コピーしたコードを貼り付ける。(メモしたコードを入力する。)「Validate OTP」をクリック。(OTPを検証)
- 図3−4:検証をパスするとサインインできる。「Next」をクリック。
4.ステップ1。
(図4)2要素に利用するシステムを選択します。今回は、「Google Authenticator」をクリックします。自動で画面が変わります。
- 図4:2要素に利用するシステムを選ぶ。今回は、「Google Authenticator」をクリック。自動で画面が切り替わる。
5.ステップ2。
(図5-1)端末を選択します。今回は「Android」をクリックします。自動で画面が変わります。
(図5-2)QRコードをAndroidのGoogle認証システムアプリで読み取ります。アプリを起動し、右下の赤いプラス(丸印の中にプラスがある。追加の意味?)をタップし、バーコードスキャンをタップしてQRコードを読み取ります。
(図5-3)AndroidのGoogle認証システム内に新たにminiOrange(メールアドレス)が追加されます。ワンタイムパスワード(コード)が生成されます。
(図5-4)生成されたコードを入力(6桁)し、「Verify and Save」をクリックします。自動で画面が変わります。
(図5-5)Google認証の設定が成功します。「Next」をクリックします。
- 図5−1:「Android」をクリック。自動で画面が変わる。
- 図5−2:QRコードをスマホのGoogle認証システムアプリを起動して、丸+をタップし、バーコードをスキャンをタップし、このQRを読み取る。
- 図5−3:スマホのGoogle認証アプリにminiOrangeが追加され、ワンタイムパスワード(コード)が表示される。
- 図5−4:スマホに表示されたコードを、入力し、「Verify and Save」をクリック。
- 図5−5:Google認証システム設定が成功した。「Next」をクリック。
6.ステップ3。
(図6-1)Google認証システムをテストします。Android端末に表示されたコードを入力し、「Submit」をクリックします。
(図6-2)画面が自動で変わります。「Finish」を押して設定完了です。
- 図6−1:Goole認証システムをテストします。端末に表示されたコードを入力し「Submit」をクリック。
- 図6−2:設定完了。
7.動作確認。
(図7)一度、ログオフして、再ログインします。「2要素認証コード」の入力欄が新たに表示されています。
「ユーザ名」「パスワード」「2要素認証コード」を入力してログインできれば成功です。
- 図7:一度、ログアウトして、再ログイン。「2Factor Authentication Code」が表示され、「ユーザ名」「パスワード」「2要素認証コード」を入力し、ログインできれば成功。
8.ログインできないときの対処。
もし、スマホをなくしたり、破損したり、または、不具合で認証に失敗してログインできなくなったときに備える必要があります。
有料版では、OTPのバックアップ方法(例:KBA question、秘密の質問のようなもの)が提供されていますが、無料版にはありません。したがって、自力でなんとかするしかありません。
でも、大丈夫です。
(図8-1)ヘルプにはいくつかの対処方法が記載されています。それらを参考にします。今回は、図8-1にある3.を利用します。
3.は、FTPでWordpressサーバにログインして、プラグインの名前を変更することが示されています。これで2要素認証が無効化されます。今回は、これを利用します。
(図8-2)まず、FTP(図8-2ではWinSCP)を利用してサーバにログインします。(ログインIDやパスワードは、WordpressではなくFTP用のものを使います。)次に、wp_content>plunginsへ移動し、プラグインの名前(miniOrange 2 Factor Authentication)を別のものに変更します。
再度、Wordpressにログインしてみます。OTPコードを入力する欄は表示されません。(有効にしたい場合は、名前をもとにも戻すだけです。)
- 図8-1:miniorang 2 factor authenticationが原因でWordpressへのログインがロックされた場合の対処方法が示されている。今回は、3.を使う。
- 図8-2:plugin/内のminiorangeの名前を変更する。
ちなみに、他の対処方法をみておきます。
1.2要素認証が有効になっていないもうひとつの管理者のアカウントがあれば、それでログインできます。
2.あらかじめ、KBA question(秘密の質問など)があれば、それを使った代わりの方法でログインできます。
4.Wordpress Databaseへ行き、WP_optionを選択し、wp_optionsを選択し,「mo2f_activate_plugin」 keyを探し、その値を0に更新すると、無効化できます。
2.は調べた限りでは、有料版でサポートされているようです。3.が一番簡単な対処方法だと思われます。