Apache ベーシック認証のグループ機能、複数パスワードファイルの使用
July 6, 2025 6:40注意
グループと複数パスワードファイルの使用は概念としては全く別のもの。(併用可)
グループ:複数のユーザーをまとめたもの
例) グループ1にはユーザーAとユーザーB
グループ2にはユーザーAとユーザーC
ファイル・フォルダの権限にグループを使用できる(ユーザー単位で指定するより手間が省ける)複数パスワードファイル:ユーザーIDとパスワードの組み合わせを複数のファイル(所属会社別にファイルを分けるなど)で構成できる
グループの使用
1. グループファイルの作成
- 作成場所、ファイル名は任意(外部公開していないディレクトリが望ましい)
- apache ユーザーが read できる権限を設定
# /datadrive/auth/group
group1 user1 user2
group2 user1 user3
2. グループを使ったBasic認証の設定
# /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
AuthType Basic
AuthName "auth"
AuthUserFile /etc/httpd/htpasswd
AuthGroupFile /datadrive/auth/group
Require group1
</Directory>
複数パスワードファイルの使用
会社単位などでベーシック認証のパスワードファイルを分けたい場合、AuthBasicProvider を使用することで複数のパスワードファイルを使用できる。
# /etc/httpd/conf/httpd.conf
<AuthnProviderAlias file file1>
AuthUserFile "/www/conf/passwords1"
</AuthnProviderAlias>
<AuthnProviderAlias file file2>
AuthUserFile "/www/conf/passwords2"
</AuthnProviderAlias>
<Directory "/var/www/html">
AuthType Basic
AuthName "auth"
AuthBasicProvider file1 file2
Require valid-user
</Directory>
グループ機能と組み合わせることも可能
# /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
AuthType Basic
AuthName "auth"
AuthBasicProvider file1 file2
AuthGroupFile /datadrive/auth/group
Require group1
</Directory>
参考
グループにユーザーを追加しグループ単位でアクセス制限を行う
.htpasswd作成(basic認証設定)大量パスワード版
Is it possible to have two password files in Apache2?