Step2:ユーザー名とパスワードを記録する.htpasswdファイルを作成
ユーザー名(ID)とパスワードを記録した.htpasswdファイルを作る
【このページの目次】
- ユーザー名(ID)+パスワードの収録ファイル.htpasswdを作成する概要
- 1行1アカウントで列挙する.htpasswdファイルの構成
- .htpasswd内のパスワードはハッシュ化されている
- パスワードをハッシュ化するサービスを利用する方法
- ユーザー名(ID)とパスワードを列挙した.htpasswdファイルの作成方法
- 記述できたら.htpasswdファイルを保存してアップロードする
ユーザー名(ID)+パスワードの収録ファイル.htpasswdを作成する概要
Basic認証では、設定を記述した.htaccessファイルとは別に、認証に使うためのユーザー名(ID)とパスワードを格納したファイルも作成する必要があります。ファイル名は「.htpasswd」というドット記号で始まる名称がよく使われますが、他の名称でも構いません。.htaccessファイル側に書いた名称でファイルを作成して下さい。このファイルの中身もプレーンテキストなので、テキストエディタで作成できます。Windowsに付属の「メモ帳」でも問題ありません。下図のように、ユーザー名とパスワードのセットを必要なだけいくつでも列挙できます。
Basic認証用のユーザー名(ID)とパスワードを列挙した.htpasswdファイルの例
1行1アカウントで列挙する.htpasswdファイルの構成
この.htpasswdファイルの中身は、以下のようなシンプルな書式になっています。ユーザー名:パスワード ユーザー名:パスワード ユーザー名:パスワードユーザー名とパスワードを半角コロン記号「:」で区切って1行ずつ列挙しているだけです。
■.htpasswdファイルの記述例
例えば、3つのアカウントを作成した場合は、以下のような内容になります。
suzuki:XkB8Ou3kAcODe yamada:5dHw0u9s4TltI inoue:A0e7PvhEdWyvE上記のサンプルでは、「suzuki」・「yamada」・「inoue」という3つのユーザー名と、それぞれのユーザー名に対応するパスワードが記述されています。ただし、ここでのパスワードは「パスワードそのもの」ではなく、ハッシュ化と呼ばれる方法で変換した結果を記述しています(詳しくは後述)。
なお、ユーザー名もパスワードも大文字・小文字は区別して扱われますので注意して下さい。例えば「suzuki」と「Suzuki」と「SUZUKI」は、どれも異なるユーザー名として認識されます。
.htpasswd内のパスワードはハッシュ化されている
上記にパスワードの記述サンプルとして示した「XkB8Ou3kAcODe」のような文字列は、本来のパスワードをハッシュ化した文字列です。「XkB8Ou3kAcODe」という文字列がパスワードなのではありません。ですから、パスワード欄に「XkB8Ou3kAcODe」と入力しても、認証は通りません。元のパスワードは保存せず、ハッシュ化した後の文字列だけを.htpasswdファイルに記録する
※ここでパスワード文字列の変換に使っている「ハッシュ化」は、元のパスワードが分からない状態に変換される点では暗号化と似ています。しかし、暗号化された結果の場合は復号化(元の文字列に戻すこと)ができるのに対し、ハッシュ化の場合は元の文字列に戻す変換ができないという違いがあります。
このように、.htpasswdファイルに記載されるパスワードは「本来のパスワードそのもの」ではないため、直接ファイルの中身を閲覧されたとしても、本来のパスワードは分かりません。ただし、絶対に分からないわけではないので、.htpasswdファイルの中身は第三者に見られないよう隠しておく必要があります。隠すように設定する方法は、本記事の最後でご紹介いたします。
パスワードをハッシュ化するサービスを利用する方法
.htpasswdファイルの中身を作成するためには、何らかの方法でパスワードをハッシュ化する必要があります。Basic認証用にパスワードをハッシュ化するには、そのような変換サービスを提供しているウェブサイトがたくさんありますから、それらを利用すると良いでしょう。■.htpasswdファイルへの記録用にパスワードを変換してくれるサービス
Basic認証で使う.htpasswdファイル用にパスワードをハッシュ化してくれるサービスサイト例
例えば「基本認証用パスワード暗号化」ページでは、最大10個までのパスワードを一括してハッシュ化できます。
ユーザー名(ID)とパスワードのセットを必要なだけ入力してから「パスワード暗号化」ボタンを押すだけで、そのまま.htpasswdファイルにコピー&ペーストして使える書式で出力されます。
このような変換サービスは「.htpasswd 生成」などのキーワードで検索すれば多数見つかります。使いやすいサイトを利用すると良いでしょう。
ユーザー名(ID)とパスワードを列挙した.htpasswdファイルの作成方法
パスワードをハッシュ化できたら、ユーザー名とハッシュ化パスワードを半角コロン記号「:」で繋げて、下図のように1行1アカウントで列挙します。.htpasswdファイルの記述例(ユーザー名とパスワードを7セット記述)
記述できたら.htpasswdファイルを保存してアップロードする
必要なだけ記述ができたらファイルとして保存し、サーバにアップロードしましょう。■保存:
ファイル名を「.htpasswd」にしてプレーンテキストで保存
ファイル名は「.htpasswd」とするのが標準的ですが他の名称でも構いません。前ページで作成した.htaccessファイル内に記述した名称で保存して下さい。
文字コードにUTF-8を使う場合は、BOM(Byte Order Mark)を付加しない設定で保存して下さい。テキストエディタによっては「UTF-8N」と表記されています。もしWindowsの「メモ帳」を使う場合は、デフォルトの「ANSI」のままで保存して下さい。
保存できたらサーバにアップロードします。アップロード先は、前ページで作成した.htaccessファイル内の「AuthUserFile」項目に記述した場所です。ブラウザから閲覧できる必要はないので、ウェブ上に公開されないディレクトリに置いておくと安全でしょう。
.htaccess内の「AuthUserFile」に指定した場所へアップロードする
準備完了: Basic認証に必要な2ファイルの作成が完了
Basic認証を利用するために用意する2つのファイル
- ウェブサーバの設定を記述する.htaccessファイル
- ユーザー名とパスワードを記述する.htpasswdファイル