Digest認証用のユーザーを作成する(htdigestコマンド)
Apache では Digest 認証(ダイジェスト認証)を使って指定したディレクトリやファイルに対するアクセス制限を行うことができます。 Apache では Digest 認証で使用するユーザーを作成するために htdigest コマンドを使用します。ここでは htdigest コマンドを使って Apache で Digest 認証用のユーザーを作成する方法について解説します。
(Last modified: )
新しいパスワードファイルを作成してユーザーを作成する
Digest 認証用のパスワードファイルを作成します。最初にパスワードファイルを保管するディレクトリを用意します。パスワードファイルはインターネット経由でアクセスする必要がないので、ドキュメントルート以下ではなくドキュメントルートと同じ階層かさらに上位の階層にディレクトリを作成して保管します。今回はドキュメントルートである htdocs と同じ階層に password というディレクトリを作成しました。
次に新しいパスワードファイルを作成します。 Digest 認証用のパスワードファイルの作成には、 Apache をインストールしたディレクトリの中に bin ディレクトリにある htdigest.exe を使用します。
コマンドプロンプトを起動し、 htdigest.exe ファイルがあるディレクトリまで移動します。そのあとで次のように実行してください。
htdigest -c パスワードファイル名 領域名 ユーザー名
新しいパスワードファイルを作成するときは -c をつけて実行します。パスワードファイルはフルパスで指定し、ユーザー名にはパスワードファイルを作成すると同時に最初に作成するユーザーの名前を指定します。 Basic 認証用のものと異なる点は「領域名」を合わせて指定します。この領域名は AuthName で指定する領域名と同じでなくてはなりません。
今回は次のように実行しました。作成するパスワードファイルのファイル名は passwords 、領域名は "Staff Only" 最初に作成するユーザーの名前は honda です。
htdigest -c c:\pg\Apache24\password\passwords "Staff Only" honda
すると honda ユーザーのログイン用パスワードの入力待ちとなります。ログイン用パスワードを入力して Enter キーを押してください。
確認のために再度パスワードの入力待ちとなります。先ほどと同じパスワードをもう一度入力し Enter キーを押してください。
新しいパスワードファイルが作成されて、最初のユーザーが作成されました。
パスワードファイルを作成したディレクトリを見てみると、指定した名前でパスワードファイルが作成されていることが確認できます。
パスワードファイルはテキストファイルですので、テキストエディタで開いて中身を確認することができます。実際にテキストエディタで開いてみると、パスワードファイルに保存されているユーザーに関する情報が記載されています。ユーザー毎にユーザー名、領域名、ハッシュ化されたパスワードが記述されています。
作成済みパスワードファイルにユーザーを追加する
作成済みのパスワードファイルに新しいユーザーを追加することができます。書式は次のとおりです。
htdigest パスワードファイル名 領域名 ユーザー名
既存のパスワードファイルに追加する場合は -c オプションを付けません。 -c オプションを付けると、既存のパスワードファイルを削除したうえで新しいパスワードファイルが作成されるので注意してください。
それではコマンドプロンプトを起動し、 htdigest.exe ファイルがあるディレクトリまで移動します。そのあとで次のように実行してください。
htdigest c:\pg\Apache24\password\passwords "Staff Only" tanaka
最初のユーザーのときと同じく今回追加する tanaka ユーザーのログイン用パスワードの入力待ちとなります。二回同じパスワードを入力してください。ユーザーの追加が完了します。
パスワードファイルをテキストエディタで開いて中身を確認してみると、先ほど追加した tanaka が追加されていることが確認できます。
作成済みユーザーのパスワードを変更する
作成済みのユーザーのパスワードを変更するには次の書式を使います。
htdigest パスワードファイル名 領域名 ユーザー名
これはユーザーを追加するときと同じです。パスワードの変更は改めてユーザーを登録しなおすとのと変わりがありません。
それでは作成済のユーザー tanaka のパスワードを変更してみます。コマンドプロンプトを起動し、 htpasswd.exe ファイルがあるディレクトリまで移動します。そのあとで次のように実行してください。
htdigest c:\pg\Apache24\password\passwords "Staff Only" tanaka
tanaka ユーザーのログイン用パスワードの入力待ちとなります。二回同じパスワードを入力してください。ユーザーのパスワードの変更が完了します。
ユーザーを削除する
作成済みのユーザーを削除するには htdigest コマンドからは行えません。パスワードファイルをテキストエディタで開き、削除したいユーザーの行を削除してください。今回は tanaka を削除してみます。
パスワードファイルを保存してください。これでユーザーの削除は完了です。
-- --
htdigest コマンドを使って Apache で Digest 認証用のユーザーを作成する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。