WordPressでログイン中の全ユーザーを強制的にログアウトさせる方法です。
何らかの理由で普通にログアウトできない時や、不正ログインの可能性が疑われる時など、一度すべてのユーザーをログアウトさせたい時にご活用下さい。
また、記事の後半ではプラグインを使ってWordpressの管理画面にログイン可能なユーザー数に上限を設ける方法もご紹介します。
手動で強制ログアウトさせる方法と、プラグインを使う方法もご紹介します。
この記事の目次
WordPressでユーザーを強制ログアウトする
当サイトでは「Login rebuilder」というプラグインでログイン画面のセキュリティを強化したり、ログイン情報を監視したりしているのですが、先日IPアドレスのログに見慣れないIPが記録されていました。
身に覚えのないIPアドレスを調べると、どうやらベルリンのIPのようです...
サイトにファイルを改ざんした後は全くなかったので、何かの不具合かもしれませんが気持ち悪いので、こちら側(管理者側)から強制ログアウトさせました。
自分ひとりなら管理画面から簡単にログアウトできるのですが、異なる端末から別の人がログインしているような状況なのでそうもいきません…
では、どのようにして全ユーザーを管理画面から強制ログアウトさせるのか?
その時に色々な方法を試した中で、良さそうな方法をチョイスしました。
この記事ではWordPressでログイン中のユーザーを強制ログアウトさせるとして以下の内容をまとめています。
- FTP使用:wp-config.phpを編集し、全ユーザーを強制ログアウトする。
- プラグイン:WPForce Logoutで選択したユーザーを強制ログアウトする。
- プラグイン:Loggedin - Limit Active Loginsでログイン数に上限を設ける。
(上限を1人に設定し自分以外のユーザーを強制ログアウトする。)
それぞれ詳しく書きますので、プラグインを使うか使わないかはお好みでどうぞ!
では早速参りましょう・w・
wp-config.phpを編集して強制ログアウトする方法
まずはWordPressのコアファイルの1つである「wp-config.php」の中に記述されている“認証用ユニークキー”を編集(書き換えて更新)することにより、既存のcookieを無効にしてすべてのユーザーを強制的にログアウトさせる方法です。
この方法はプラグインを使わないので、手動といえる方法です。
FTPなどを使ったファイルの編集&保存に慣れている方ならこの方法がお勧めです。
ポイント
認証用ユニークキーにはランダムな文字列を指定するのですが、このランダムな文字列はWordpressの秘密鍵サービスで簡単に自動生成することができます。
では詳しいやり方を見ていきましょう。
public_html内にあるwp-config.phpを開く
まず初めに、FTPソフトやファイル管理ツールなどを使って目的の「wp-config.php」を編集できる状態にします。
編集する「wp-config.php」はサーバールート直下のpublic_html内にあるはずです。
メモ
wp-config.phpの特徴はデータベース情報が記述されていることです。
また、Wordpress標準のデバッグ機能をONにしたりする際にも使います。
認証用ユニークキーを変更する
続いてwp-config.php内の認証用ユニークキーを書き換えて更新します。
wp-config.phpを開いたら、以下のような部分を探してください。
define( 'AUTH_KEY', '~ランダムな文字列~' ); define( 'SECURE_AUTH_KEY', '~ランダムな文字列~' ); define( 'LOGGED_IN_KEY', '~ランダムな文字列~' ); define( 'NONCE_KEY', '~ランダムな文字列~' ); define( 'AUTH_SALT', '~ランダムな文字列~' ); define( 'SECURE_AUTH_SALT', '~ランダムな文字列~' ); define( 'LOGGED_IN_SALT', '~ランダムな文字列~' ); define( 'NONCE_SALT', '~ランダムな文字列~' );
該当コードの箇所は50行目くらいにあると思います。
この部分を書き換えることでcookieを更新します。
新しいユニークキーを自動作成する
新しく使用する認証用ユニークキーは“WordPress.orgの秘密鍵サービス”なるものを使うことで自動生成することが出来ます。
外部リンク
【WordPress.orgの秘密鍵サービス】
https://api.wordpress.org/secret-key/1.1/salt/
キーを作成するには上記のリンクにアクセスするだけでOK!
リンクにアクセスすれば、上の画像のように画面にコードだけが出力されます。
(アクセスするたびにランダムなキーが自動生成される。)
あとは自動生成されたコードを先述した「wp-config.php」内の認証用ユニークキーの記述に書き換える形で保存すれば、全ユーザーが強制的にログアウトします。
動作確認
ユニークキーの部分を新しいものに書き換えたら、編集を保存してログインユーザーがログアウトしていることを確認しましょう。
ポイント
すでに管理画面にログインしている状態なら、ページの移動やリロードを行えばログアウトしていることが分かります。
wp-config.php内の説明コメントにもあるように、認証用ユニークキーを変更すればすべてのユーザーを強制的に再ログイン(強制ログアウト)することが出来ます。
wp-config.php内にあるコメント
ちなみに認証用ユニークキーの説明としてWordPressのwp-config.php内のコメントには以下のような説明があります。
/**#@+
* 認証用ユニークキー
*
* それぞれを異なるユニーク (一意) な文字列に変更してください。
* {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org の秘密鍵サービス} で自動生成することもできます。
* 後でいつでも変更して、既存のすべての cookie を無効にできます。これにより、すべてのユーザーを強制的に再ログインさせることになります。
*
* @since 2.6.0
*/
WPForce Logoutでユーザーを強制ログアウトする方法
続いて、プラグインの「WPForce Logout」で選択したユーザーを強制ログアウトする方法です。このプラグインを使えばログイン状態のユーザーをWordpress管理画面のユーザー一覧から1クリックでログアウトさせることが可能です。
では早速見ていきましょう。
プラグインのインストール
執筆時、WPForce Logoutは管理画面からインストールすることが出来ました。
管理画面左メニュー > プラグイン > 新規追加
に進み、プラグインの検索欄に「WPForce Logout」と入力。
出てきたら今すぐインストールを押したあとに有効化すればOKです。
なおプラグインの公式ページは以下です。
外部リンク
【WPForce Logout】
WPForce Logout – WordPress plugin | WordPress.org
WPForce Logoutの使い方
WPForce Logoutの使い方はシンプルで設定などは特にありません。
管理画面左メニュー > ユーザー > ユーザー一覧
に進み、ログイン中になっているユーザーの横にある「Logout」ボタンを押すだけ!
これだけでユーザーをログアウトさせることができます。
Loggedin - Limit Active Loginsでログイン数に上限を設定する方法
最後に「Loggedin - Limit Active Logins」というプラグインを使い、1度にログインできるユーザー数に上限を設定する方法のご紹介です。
このプラグインの設定でログインユーザー数の上限を”1”に設定しておけば、自分がログインした時に他のユーザーを全て強制的にログアウトさせるようにできます。
プラグインのインストール
執筆時、Loggedin - Limit Active Loginsは管理画面からインストールすることが出来ました。
管理画面左メニュー > プラグイン > 新規追加
に進み、プラグインの検索欄に「Loggedin - Limit Active Logins」と入力。
出てきたら今すぐインストールを押したあとに有効化すればOKです。
こちらのプラグインの公式ページは以下です。
外部リンク
【Loggedin - Limit Active Logins】
Loggedin – Limit Active Logins – WordPress プラグイン | WordPress.org 日本語
Loggedin - Limit Active Loginsの使い方
プラグインを有効化したら早速設定しましょう。
Loggedin - Limit Active Loginsの設定画面は以下の場所にあります。
管理画面左メニュー > 設定 > 一般
一般の中にプラグインの設定項目が追加されます。(意外と見つけにくい…)
設定項目まで進んだら、以下のように設定します。
Maximum Active Logins
同時にログイン可能なユーザーの数です。
デフォルトでは3人までとなっていましたが、これを1に変更します。
Login Logic
こちらはAllowにチェックが入っていることを確認して下さい。
Force Logout
ユーザーIDを指定して強制ログアウトする機能ですが、今回は使いません。
以上の設定を行い、保存したあと1度ログアウトします。
そして再度ログインすれば自分以外の全てのユーザーが強制的にログアウトします。
ポイント
Wordpressの初期設定ではログインできるユーザー数に特に制限はありません。
複数人でサイトにログインする予定がないなら上限を設定しておくと安心です。
関連記事
【Loggedinの詳しい使い方はコチラ】
WordPressのログインユーザー数を制限する「Loggedin-Limit Active Logins」プラグイン。
ユーザーがログアウトしたか確認
最後にログイン中のユーザーがログアウトしているか確認します。
本記事の動作確認報告といったところでしょうか…
再度Login rebuilderの機能でログインユーザーを確認したところ、見覚えのなかったIPアドレス(ベルリンからのアクセス?)がなくなっており、強制ログアウトできたことが確認できました。
まとめ
以上、WordPressで強制ログアウトする方法3つでした。
うちのブログは1人でやっており今までユーザーを強制的にログアウトさせたい場面はなかったのですが、不正ログイン疑惑が浮上したため色々やることになりました。
今回は見覚えのないIPアドレスがずっとログイン中になっていたのですが、ログイン履歴は無かったので正直謎です…ファイルの更新履歴などの確認を行っても特に怪しいところはなかったので何かの不具合かな?
2023.2.13追記
先日この不正ログイン疑惑が解決しました!
犯人は「MalCare」というセキュリティ対策プラグインでしたw
【WordPress】見知らぬIPからのログインで不正アクセスを疑ったら「MalCare」が原因だった!
関連記事
記事でログインユーザー数に上限を設定するプラグインを紹介しましたが、自分以外が管理画面にアクセスすることがないなら、セキュリティ対策としてはIPアドレスで制限をかけておくのがオススメです。
やり方は別の記事(↓)に書いていますので、良かったらついでにどうぞ!
- WordPressの管理画面とログイン画面にIPアドレスで制限をかける方法。[.htaccess使用]
続きを見る
うーん不正アクセスって怖いねぇ...みんなどの程度対策しているのかなぁ
ではではこのへんで・w・