WordPressサイトにBasic認証を追加

IT関連

WordPressサイトだけってわけじゃないけど、Basic認証を追加する方法。

ディレクトリ構成は、/var/www/cms/wp-adminなどのwpディレクトリファイル群

とする。LAMP環境だが、XAMPPだろうと基本的にやることは同じ。

 

まずパスワードファイルを作る

パスワード認証だから、まずIDとパスワードを決めないとね。IDとPasswordが対になったリストを作る。

それはテキストで作るんじゃなくてコマンドで作るみたい。テキストだったら平文だしチョンバレになるから。

パスワードを作成する場所は、色々あるみたいだけど、ドキュメントルートより上の階層がいいみたい。

とりあえず/etc直下に解りやすい名前で作ろうと思う。

 

なので/etcに移動する。

$ cd /etc

 

ファイルの作り方は下記コマンド。

$ htpasswd -c ファイル名 ユーザ名

 

今回は

$ htpasswd -c .cmsauth admin

にした。もちろんパスワードを聞いてくるので、適当なものを2回入力する。これで/etc直下に.cmsauthができた。

 

出来た中身は、

admin:$REAFAfaifoafaRAVAa;otra

のような感じ。adminというユーザー名と暗号化されたパスワードの対。

 

.htaccessに追記する

さっきのパスワードファイルを読ませてBasic認証する設定。

ドキュメントルートにwp-adminなどのwp関係のフォルダやファイルがあると思うが、.htaccessもあるはず。そこに追記する。

 

おそらくこんな感じになってるはず。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

 

末尾にこんな感じで追記する

 

略

AuthUserfile /etc/.cmsauth
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

# END WordPress

AuthUserfileが、さきほど作ったパスワードファイルの位置を指定している。requireは許可する、valid-userは正当なユーザーという意味。

 

これでトップページにアクセスしたらIDとパスワードを聞いてきます。

正しく答えられたらいつもの画面がでます。

 

気付き

パスワードファイルのユーザ追加

結局ユーザを作ろうと入れるだけなのは替わりないのだが、ユーザを色々増やしたい場合。

$ htpasswd パスワードファイル ユーザ名

で追記できる。そのディレクトリにいない場合は、パスワードファイルは絶対パスでファイル名を指定すること。

ただログインしたユーザのIDを取得して内部で処理を振り分けることはするので、やはりIDにも意味があるのかも。

 

パスワードファイルのユーザ削除

$ passwd -D パスワードファイル ユーザ名

 

パスワードを入れる頻度

一度性格にパスワードを答えたら次からは聞いてきません。恐らく再起動するか、ブラウザを全て落とすかしないと聞いてこない。

まぁ毎回聞いてきたらうっとおしいので丁度良い。

 

パスワードファイルが無いのに、.htaccessに設定した場合

サイトにアクセスすると、オタクの管理者がサーバー設定ミスってるから、hogehoge@hogehoge.comに連絡しろと怒られてしまう。

なるほど、httpd.confにあるServerAdminの設定はここで使われるのか。なるほど。ということ。

 

XAMPPの場合

XAMPPの場合は、コントロールパネルのShellからコマンド入力画面を開けばいい。

AuthUserfileの項目は、C:\xampp\etc\.cmsauthとすればいい。

 

コメント

タイトルとURLをコピーしました