Apache が動作している Linux のユーザアカウントで Basic認証する方法です。
なお、Digest認証には対応していません。
CentOS6/7,Ubuntu14.04の場合です。
CentOS6
まず、EPELリポジトリを使用できるようにします。
下記記事を参照してください。
CentOS6/7でEPELリポジトリを利用する設定 パソコン鳥のブログ
mod_authnz_external をインストールします。
yum --enablerepo=epel install mod_authnz_external
apache の設定ファイルに下記を追加します。
「識別名」の個所は何でもいいです。
LoadModule authnz_external_module modules/mod_authnz_external.so DefineExternalAuth 識別名 pipe /usr/bin/pwauth
Basic認証の設定個所では、次を追加します。先に記述した「識別名」と同じものをここでも指定します。
AuthBasicProvider external AuthExternal 識別名
ここでは、例として、/etc/httpd/conf.d/authnz_external.conf に設定します。
先頭にすでに
LoadModule authnz_external_module modules/mod_authnz_external.so
DefineExternalAuth pwauth pipe /usr/bin/pwauth
があるので、下記をファイルの末尾に追加します。
<Directory /var/www/html> AuthType Basic AuthName "Protected Area" AuthBasicProvider external AuthExternal pwauth require valid-user </Directory>
設定後、apache を再起動します。
/etc/init.d/httpd reload
これで、ブラウザからアクセスした際に、認証が要求されます。
Linux上のユーザアカウント・パスワードで認証できます。
なお、アカウント・パスワードが合っているはずなのに認証が通らない場合は、SELinux が有効になっているかもしれません。
下記のように変更して再起動し、SELinux を無効にしてみて下さい。
/etc/sysconfig/selinux
SELINUX=disabled
CentOS7
まず、EPELリポジトリを使用できるようにします。
下記記事を参照してください。
CentOS6/7でEPELリポジトリを利用する設定 パソコン鳥のブログ
mod_authnz_external をインストールします。
yum --enablerepo=epel install mod_authnz_external
apache の設定ファイルに下記を追加します。
「識別名」の個所は何でもいいです。
LoadModule authnz_external_module modules/mod_authnz_external.so DefineExternalAuth 識別名 pipe /usr/bin/pwauth
Basic認証の設定個所では、次を追加します。先に記述した「識別名」と同じものをここでも指定します。
AuthBasicProvider external AuthExternal 識別名
ここでは、例として、/etc/httpd/conf.d/authnz_external.conf に設定します。
/authnz_external.conf の先頭にすでに
LoadModule authnz_external_module modules/mod_authnz_external.so
DefineExternalAuth pwauth pipe /usr/bin/pwauth
の記述があるので、下記をファイルの末尾に追加します。
<Directory /var/www/html> AuthType Basic AuthName "Protected Area" AuthBasicProvider external AuthExternal pwauth require valid-user </Directory>
設定後、apache を再起動します。
systemctl restart httpd
これで、ブラウザからアクセスした際に、認証が要求されます。
Linux上のユーザアカウント・パスワードで認証できます。
Ubuntu14.04
ibapache2-mod-authnz-external をインストールします。
apt-get install libapache2-mod-authnz-external
モジュール authnz_external、auth_basic を有効にします。
a2enmod authnz_external a2enmod auth_basic service apache2 restart
apache の設定ファイルに下記を追加します。
「識別名」の個所は何でもいいです。
DefineExternalAuth 識別名 pipe /usr/sbin/pwauth
Basic認証の設定個所では、次を追加します。先に記述した「識別名」と同じものをここでも指定します。
AuthBasicProvider external AuthExternal 識別名
ここでは、例として、/etc/apache2/sites-enabled/000-default.conf に設定します。
/etc/apache2/sites-enabled/000-default.conf の最後に下記を追加します。
DefineExternalAuth pwauth pipe /usr/sbin/pwauth <Directory /var/www/html> AuthType Basic AuthName "Protected Area" AuthBasicProvider external AuthExternal pwauth require valid-user </Directory>
設定後、apache を再起動します。
service apache2 reload
これで、ブラウザからアクセスした際に、認証が要求されます。
Linux上のユーザアカウント・パスワードで認証できます。
以上、Apache が動作している Linux のユーザアカウントで Basic認証する方法でした。
参考
Apacheのbasic認証とdigest認証 パソコン鳥のブログ
Ubuntu 14.04 LTS : WEBサーバー : Basic認証 + PAM : Server World
Sambaのパスワードデータベースを利用してApacheのBASIC認証を行う – ブログ – ワルブリックス株式会社
ConfigApache24 · haegar/mod-auth-external Wiki · GitHub
CentOS 7 : Apache httpd : Basic 認証 + PAM : Server World
コメント