
WEB制作をしていると、
といった、特定のファイル、あるいはディレクトリ以下の全てのファイルアクセスを制限したい時があります。
そんな時にはBasic認証を設定しておくと良いでしょう。
ここでは、Basic認証の設定方法を紹介していきます。
目次
Basic認証とは
Basic認証とは、HTTPで定義される認証方式の一で、基本認証のことです。
Base64というエンコード方式で送信され、
単体では強い認証方法とは言い難いですが、
幅広いWEBサーバー上で運用できるため、
認証方式の基本として一般に広く用いられています。
会員サイトや個人情報を取り扱うようなサイトではBasic認証のみでは脆弱ですが、WordPressで作ったブログやサイトのセキュリティを強化する上では、手っ取り早くてそれなりの効果があります。
通常、WordPressでは管理画面へのログイン認証機能があります。
ここで、推測されにくいパスワードを使うと同時に、管理画面へのBasic認証を追加することで二段階認証となり、セキュリティの強化を図ることができます。
Basic認証の構成
Basic認証の構成は非常に簡単です。
「.htaccess」というアクセスの制限を指示するプログラムが記述されたファイルと、「.htpasswd」というパスワードファイルをサーバー上にアップすることで動作します。
「.htaccess」ファイルを作成する
ユーザーを指定してBasic認証をかける
まずは基本の設定です。
以下は、「AuthUserFile」で指定されたパスワードファイルに記載されたログインユーザー以外は閲覧を制限する記述になります。
「AuthName」ではログインの際に表示されるポップアップのメッセージ文です。
日本語でも構いません。
パスワードファイルのフルパスを間違えないように注意してください。
.htaccess
.htpasswd
特定ユーザーを指定してBasic認証をかける
上では、パスワードファイルに記載されたすべてのユーザーの閲覧を許可していましたが、次はその中でも特定のユーザーのみに閲覧制限を絞る記述です。
「require」で絞り込みの条件を「user」で指定し、閲覧を許可するユーザー名を記述していきます。
.htaccess
グループを指定してBasic認証をかける
グループを指定してBasic認証をかけることもできます。
その場合、グループファイルを作成し、「require」で絞り込みの条件を「group」として閲覧許可を与えるグループ名を記述していきます。
.htaccess
group
ファイルを指定してBasic認証をかける
ある特定のファイルにBasic認証をかけることもできます。
その場合、
.htaccess
特定の拡張子のついたファイルをすべて見れなくする
指定したファイルだけ見れなくする
ワイルドカード「*」を使う
一文字ワイルドカード「?」を使う
複数の文字列を同時に指定する
記号が表す意味について
記号 | 意味 |
~ | 「~」の右側の文字列に対するパターンマッチングを認識します。 |
^ | ファイル名の先頭であることを意味します。 |
$ | ファイル名の末尾であることを意味します。 |
* | ワイルドカード |
? | 一文字ワイルドカード |
\ | 「.」「\」「|」「$」のような記号文字を認識させるために、記号文字の前に記述します。 |
(foo|bar) | 括弧内の「|」で区切られた要素のいずれかが含まれる場合を認識します。 |
レンタルサーバーでファイルフルパスがわからない場合
レンタルサーバーなどで、パスワードファイルのファイルフルパスがわからないことがあります。
その場合は、適当なphpファイルを作成し、中に以下の記述を書いてブラウザ上で表示してみてください。
ファイルフルパスが表示されることが確認できます。
PHP
「.htpasswd」ファイルを作成する
パスワードファイルを作ります。
サーバー上の「.htaccess」ファイルとは別の階層のディレクトリに「.htpasswd」ファイルを作成しましょう。
中に記述するユーザー名とパスワードですが、これは「ユーザー名:エンコードされたパスワード」の形式で記述する必要があります。
パスワードのエンコードは、ログインユーザー名と推測されにくいパスワードを決め、以下のサイトで入力することで生成されるので、それを記述します。
参考パスワード自動生成サイト
外部ページ>> Basic認証のパスワード生成サイト
動作確認
全ての設定が完了したら、動作確認として実際に認証が行われるかどうかを試してみてください。
指定した認証IDとパスワードで認証が通れば、設定が正しくできているということになります。