アクセス制限・認証、サイト内検索

更新日:2002年09月12日

基本認証でアクセス制限をかける方法

特定のページにアクセス制限を施す、基本認証(BASIC認証・ベーシック認証)の作り方を、初心者にもわかりやすく解説します。IDとパスワードを入力しなければ入れない会員制ホームページを作る際に使えます。

[Step.2] IDとパスワードを格納したファイルを作る

次に、先の「.htaccess」ファイル内の「AuthUserFile」項目で指定したファイル(=IDとパスワードを格納したファイル)を作成しなければなりません。

このファイルは、1アカウント1行で構成されていて、

ID名暗号化されたパスワード

という形式になっています。 パスワードは暗号化されていますので、直接ファイルの中身を閲覧しても、オリジナルのパスワードは分かりません。

suzuki:XkB8Ou3kAcODe
yamada:5dHw0u9s4TltI
inoue:A0e7PvhEdWyvE

上記のサンプルでは、suzuki, yamada, inoue の3つのIDが格納されています。 青色部分が暗号化されたパスワードです。
※「XkB8Ou3kAcODe」のような文字列はパスワードを暗号化したものであって、「XkB8Ou3kAcODe」というパスワードなのではありません。

実際にファイルを作成するには?

この「IDとパスワードを格納したファイル」を作るには、htpasswd というコマンドを使います。 このファイル自体はテキストファイルですが、パスワードを暗号化しなければなりませんのでテキストエディタではなくコマンドを使って作ります。

※ウェブ上で簡単に作成できるサービスを提供したサイトもいくつかあります。「htpasswd 作成」のようなキーワードで検索すると、いくつも見つかるでしょう。 htpasswdコマンドが使えない場合には、これらのウェブサイトを活用して下さい。

Telnetなどを使ってウェブサーバにログインし、htpasswd コマンドを実行して作成します。
ここでは、Windowsに付属の「Microsoft Telnet クライアント」(telnet.exe)を使ってご紹介致します。
※以下の画面イメージは、Windows XP のものです。

手順1: Telnetを起動

Windowsのスタートメニューを [スタート] → [プログラム] → [アクセサリ] → [コマンドプロンプト] とたどって、コンソールを起動します。
そして、コンソール(コマンドプロンプト)から「 telnet 」と入力します。
※もしくは、\Windows\System32\ フォルダ内にある telnet.exe ファイルを直接ダブルクリックして実行しても構いません。
※「TeraTerm Pro」のような別のTelnetクライアントを使っても構いません。(次のページで紹介)

C:\>telnet
コンソールから「 telnet 」と入力して[Enter]キーを押下

手順2: ウェブサーバに接続

Telnetが起動したら、「open (サーバ名)」のように接続先サーバ名を入力します。
例えば、サーバが www.allabout.co.jp だったなら、「open www.allabout.co.jp」となります。

Microsoft Telnet> open (サーバ名)
open に続けてサーバ名を入力して[Enter]

手順3: ログイン

自分のIDとパスワードを使ってログインします。
※画面の表示内容は、サーバによって異なります。

login: & Password:
自分のアカウント名(ID名)とパスワードを入力して[Enter]

手順4: ファイルの作成と最初のアカウントの作成

ログインできたら、まずは新しく「password.dat」ファイルを作成してみましょう。 最初にファイルを作成する段階で、1つ目のアカウント(IDとパスワード)も作成することになります。
ファイルを作成するには、「htpasswd -c (ファイル名) (ID名)」と入力します。

htpasswd -c (ファイル名) (ID名)
htpasswdコマンドを使って「ID・パスワード格納ファイル」を新規作成

黄色部分:「htpasswd -c」で、ファイルを新規に作成する指示になります。
緑色部分:IDとパスワードを格納するファイル名です。何でも構いません。「.htaccess」ファイルに記載するファイル名で作成して下さい。ここでは「password.dat」としています。(※)
青色部分:最初に作成するID名です。好きなID名を入力して下さい。ここでは「aaj」としています。
橙色部分:そのIDに対するパスワードです。確認のため2度入力します。(何を入力しても画面には何も表示されません)

※ここでは、ファイル名を「password.dat」としか記述していません。ここでファイル名をフルパスで記述しておくと、「手順6」でわざわざファイルを移動させる手間が省けます。 または、事前にcdコマンドで目的のディレクトリに移動してからhtpasswdコマンドを実行しても良いでしょう。

入力が完了すると、すぐに指定したファイル名(上記ではpassword.dat)でファイルが作成されます。
※lsコマンドで確認するなり、FTPソフトでディレクトリ内を見て確認するなりして下さい。

手順5: 2番目以降のアカウントの追加

アカウントは最低1つあれば機能しますが、2つ以降のアカウントを含めたい場合は、以下のようにします。
htpasswd (ファイル名) (ID名)」と入力します。 先ほどと異なるのは-c」がない点です。

htpasswd (ファイル名) (ID名)
htpasswdコマンドで「-c」オプションを付けなければ、追記になる

黄色部分:指定したファイルにアカウントを追加する指示になります。
緑色部分:先ほどと同じファイル名を入力します。(このファイルに追記されます)
青色部分:追加するID名です。

この手順5を繰り返して、必要なだけアカウントを追加できます。

手順6: 作成したファイルの設置(移動)

ID・パスワード格納ファイル(ここでは password.dat )が作成できたら、前ページで作成した「 .htaccess 」ファイルの「AuthUserFile」項目で指定したディレクトリへ移動させます。

※最初にcdコマンドで目的のディレクトリへ移動しておいてから「手順4」を実行してももちろん構いません。(または作成するファイル名をフルパスで入力して実行しても構いません。)
※UNIXシェルの扱いに慣れていない場合は、とりあえず「手順4~5」でファイルを作成しておき、ファイルの移動には、FTPソフトを用いても良いでしょう。(=一旦ダウンロードして、目的のディレクトリへアップロードし直す。)

手順7: Telnetを終了

作業が終わったら、「exit」または「logout」と入力してウェブサーバからログアウトします。 さらに、「quit」と入力して、Telnetを終了します。

exit
exit(logout)でウェブサーバから切断
Microsoft Telnet> quit
quitでTelnetクライアントを終了

最後に、コマンドプロンプト(コンソール)ウインドウを閉じれば終わりです。

これで、認証を施す準備は整いました。実際に使ってみましょう。
その前に、上記の手順でうまくいかなかった場合の対処などをご紹介しておきます。

[Step.3] うまくいかなかった場合の対処など >>

  • 印刷する
  • ブックマークする
  • 携帯に送る
  • ブログに書く

あわせて読みたい

この記事の担当ガイド

写真

西村 文宏

関西大学大学院 総合情報学研究科 博士課程にて情報学を学ぶ傍ら、ホームページに関する書籍の執筆や企業…

続きを読む

人気ホームページ作成ランキング

Powered by 価格.com

おすすめ記事

メルマガ登録

【デジタルメルマガ】オトナのオトコなら知っておきたい、PCやデジモノに関する情報をお届けします。

All About モバイル

QRコード

All Aboutがケータイで読める!

オススメ記事をメールでチェック