Apache httpd : GSSAPI 認証2026/01/16 |
|
ある特定のページに対してアクセス制限をかけ、認証には Windows Active Directory のユーザーを利用します。
ローカルネットワーク内に Windows Active Directory Domain Service が稼働していることが前提です。
|
|||||||||||
| [1] | |||||||||||
| [2] | Windows 側で Apache httpd からの接続用アカウントを作成しておきます。 また、作成したアカウントのオプションで [AES 256 ビット暗号化] サポートにチェックを入れて有効にしておきます。 当例では、以下のように [apache] ユーザーを作成して進めます。 |
|
| [3] |
Powershell を起動して、作成したアカウント用の Keytab ファイルを作成します。 ⇒ ktpass -princ HTTP/(apache hostname)@(domain name) -mapuser (domain account name)@(domain name) -pass (domain user passwors) -ptype KRB5_NT_PRINCIPAL -crypto AES256-SHA1 -out (file name you like) * Apache のホスト名は AD 側から名前解決可能である必要があります |
|
| [4] |
Windows 側で作成した Keytab ファイルを、Apache httpd サーバー側へ転送しておきます。 |
| [5] | Apache httpd の設定です。 例として [/usr/local/www/apache24/data/auth-kerberos] ディレクトリ配下を認証対象として設定します。 |
|
# Windows から転送した Keytab ファイル root@www:~ # ls -l /usr/local/etc/apache24/apache.keytab -r-------- 1 www www uarch 85 Jan 16 14:54 /usr/local/etc/apache24/apache.keytab
root@www:~ #
pkg install -y ap24-mod_auth_gssapi krb5
root@www:~ #
vi /etc/krb5.conf # 新規作成
[libdefaults]
default_realm = SRV.WORLD
[realms]
SRV.WORLD = {
kdc = fd3s.srv.world
admin_server = fd3s.srv.world
}
root@www:~ #
vi /usr/local/etc/apache24/Includes/auth-kerberos.conf # 新規作成
<Directory /usr/local/www/apache24/data/auth-kerberos>
SSLRequireSSL
AuthType GSSAPI
AuthName "Kerberos Authntication"
GssapiAllowedMech krb5
GssapiBasicAuth On
GssapiLocalName On
GssapiCredStore keytab:/usr/local/etc/apache24/apache.keytab
BrowserMatch Windows gssapi-no-negotiate
Require valid-user
</Directory>
root@www:~ #
vi /usr/local/etc/apache24/modules.d/240_mod_auth_gssapi.conf
# コメント解除
LoadModule auth_gssapi_module libexec/apache24/mod_auth_gssapi.so
root@www:~ #
service apache24 restart
# テストページ作成
root@www:~ #
mkdir /usr/local/www/apache24/data/auth-kerberos root@www:~ # vi /usr/local/www/apache24/data/auth-kerberos/index.html <html> <body> <div style="width: 100%; font-size: 40px; font-weight: bold; text-align: center;"> Test Page for Kerberos Auth </div> </body> </html> |
| [6] | 任意のクライアントコンピューターで Web ブラウザーを起動し、作成したテストページにアクセスします。すると設定通り認証を求められるので、Active Directory に登録してあるユーザーで認証します。 |
|
| [7] | 認証が成功してテストページにアクセスできれば OK です。 |
|
| Sponsored Link |
|
|