BASIC認証
クライアントからサーバにユーザ名とパスワードを送信し、それがサーバに登録されているものと一致するかで正規の利用者かを確認する方法。クライアントからサーバに送られる情報は平文のまま送られてしまう。
ApacheでBASIC認証を使うには
次の手順を経る。
- ユーザ名とパスワードを登録したファイルを作る。
- 認証を必要とするディレクトリに対する設定を記述する。
ユーザ名とパスワードを登録する
ユーザ名とパスワードはOSのそれとは別物でhtpasswdコマンドを使い、登録する。登録に使うファイルは自由に指定できる。次の例はユーザsakabeを登録したときのものである。
- htpasswdコマンドを使い、ユーザ名とパスワードを登録する。
$ htpasswd -c .passwd sakabe New password: <- 登録するパスワードを入力 Re-type new password: <- 登録するパスワードを入力 Adding password for user sakabe
コマンドhtpasswdのオプションcはファイルを作るもので初めてユーザを登録するときのみ使う。二人目以降のユーザ登録では不要である。
ディレクトリごとの設定
httpd.confやユーザごとの設定ファイルで認証対象のディレクトリに対するDirectoryディレクティブ内でAllowOverride?ディレクティブにAllあるいはAuthConfig?があるかを確認し、なければ次の行を追加する。
AllowOverride AuthConfig
更に、認証したいディレクトリに.htaccessというファイルを作り、次のようなディレクティブを入力しておく。
AuthType Basic AuthName "Password Required" AuthUserFile /home/sakabe/public_html/fswiki/.password AuthGroupFile /home/sakabe/public_html/fswiki/.group Require Group hac
ディレクティブ | 意味など |
---|---|
AuthType? | 認証方式の種類。Basicを指定する。 |
AuthName? | ユーザ名とパスワード入力用ダイアログに表示するメッセージを指定する。 |
AuthUserFile? | パスワードファイルの絶対パスを指定する。 |
AuthGroupFile? | グループファイルの絶対パスを指定する。 |
Require | ログインできるユーザのグループ名の指定する。ユーザの場合はuser ユーザ名1 ユーザ名2・・またはvalid-user。グループの場合はgroup グループ名 |
グループファイルの内容
グループファイルは次のように記述する。
グループ名: ユーザ1 ユーザ2 ユーザ3
例えば、グループhacのユーザsakabe konta nishibe watanabeの場合、次のように記す。
hac: sakabe konta nishibe watanabe