共用サーバータイプのほとんどのレンタルサーバーには、「パスワード制限」機能(レンタルサーバー業者によって呼び方が違っていたりします)が用意されています。
この機能は、「BASIC認証」という HTTPプロトコルで定義された認証方法のことを指しています(例外はあるかもしれませんが)。
BASIC認証
BASIC認証というのは、ユーザー名とパスワードで Webページにアクセス制限を掛けることができます。通常の使い方ですと、まず アクセス制限したいディレクトリに「.htaccess
」というファイルを設置します。このファイルにはいろいろな設定項目を書くことができますが、BASIC認証についての記述はだいたい以下のようになっています。(※ WebサーバーとしてApacheが利用されている場合の説明になります)
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
この中にある AuthUserFile
で指定されたファイルには、アクセスを許可するアカウントのユーザー名とパスワード情報を記しておきます。
こちらはこんな感じです
foo:$apr1$pGOb.AY/$BgftrLE5R3WACEa1TEp4e1
bar:$apr1$wB5gP93T$ykZWSmni93A26oXh.CTft/
1行に1アカウント分の情報が記述されており、その1行は「ユーザー名」と「パスワード」がコロンで区切られています。ユーザー名はそのまま記述されていますが、パスワードは見ても分からないような処理がされています(ハッシュアルゴリズム)。この記述は、Webサーバーである Apache の持つコマンドを使って生成することができます。
以上の作業を行うと、Webブラウザで .htaccess
を置いたディレクトリ以下のWebページにアクセスした際に、ユーザー名とパスワードの入力が求められるようになります。 .htpasswd
に記述されている「ユーザー名」と「パスワード」を入力すれば Webページの閲覧が認められます。
共用サーバーにおけるBASIC認証
というのが BASIC認証の大まかな内容なのですが、共用サーバーの場合はこれらを自分でやることはほとんどありません。通常は、レンタルサーバー業者の用意している管理パネルから行えるようになっています。
というのも、共用サーバーの利用者が知ることのできるサーバー情報だけでは設定作業ができないからです。まず、先ほど出てきた AuthUserFile
に指定するファイルパスは、絶対パスもしくは「サーバールート」からの相対パスで指定しなければいけないという決まりがあります(「サーバールート」というのは、Webサーバーがインストールされたディレクトリのことです)。しかし、共用サーバー利用者は FTPで接続してファイルをアップロードすることのできるディレクトリの正確な位置を知りませんので、絶対パスが使えません。また「サーバールート」も分かりませんので、相対パスも使えません。その上、セキィリティの観点から .htpasswd
ファイルは Webからアクセスできるディレクトリに置くことは推奨されていませんので、そもそも利用者はファイルを配置することもできないのです。
とはいっても、「パスワードでWebページを制限する」機能自体は非常に便利ですので、レンタルサーバー業者が管理パネルから利用できるようにしてくれています(他にも何か理由があるかもしれませんが)。
VPS やクラウドサーバーを借りている場合は、全部自分で設定できます(レンタルサーバー業者は何もやってくれません)。
参考