ApacheのKerberos認証でAD認証連携させる
Apacheの基本認証にActiveDirectory(AD)のユーザ認証と連携する方法は2つあります。| 利用モジュール | mod_auth_kerb |
|---|---|
| メリット | Apache-ADサーバ間はKERBEROS経由を利用するため、パスワードが暗号化されます。 |
| デメリット | KERBEROS認証の場合は、ActiveDirectory上の有効なユーザ全員が対象となり、ActiveDirectory上の特定OU内のユーザのみにすることは出来ないようです。 特定ユーザのみにする場合は「Require user」か、ユーザを列挙したファイルを用意して「Require group」を使用することになります。 Chromeブラウザからの認証は500エラーが発生する。(IE,FireFoxは正常にアクセスできることを確認) |
DCサーバ側作業
・事前作業
Apacheサーバ側作業
・mod_auth_kerbモジュールインストール
・krb5.confファイルの編集
・ApacheのAD連携設定
# yum install mod_auth_kerb
| Windowsドメイン名 | ad.hoge.com |
|---|---|
| DC(ドメインコントローラ)サーバ | 192.168.2.4 |
# mkdir /var/log/krb5 ;chown apache /var/log/krb5
# vi /etc/krb5.conf
[logging]
default = FILE:/var/log/krb5/krb5libs.log
kdc = FILE:/var/log/krb5/krb5kdc.log
admin_server = FILE:/var/log/krb5/kadmind.log
[libdefaults]
default_realm = AD.HOGE.COM
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
[realms]
AD.HOGE.COM = {
default_domain = ad.hoge.com
kdc = 192.168.2.4:88
admin_server = 192.168.2.4:749
}
[domain_realm]
.ad.hoge.com = AD.HOGE.COM
ad.hoge.com = AD.HOGE.COM
※大文字小文字は重要です。# kinit testapache@AD.HOGE.COM Password for testapache@AD.HOGE.COM:※何も表示されず終了すれば、成功!!
# vi /etc/httpd/conf/httpd.conf
LoadModule auth_kerb_module modules/mod_auth_kerb.so
Alias /krb5 /var/www/krb5
<Location /krb5>
AuthType Kerberos
AuthName "Kerberos Login(ActiveDirectory)"
KrbAuthRealms AD.HOGE.COM
KrbVerifyKDC Off
KrbServiceName HTTPS/webdav-01.web.hoge.com
KrbMethodNegotiate off
KrbSaveCredentials off
Require valid-user
Order deny,allow
Deny from none
Allow from all
</Location>
<Directory "/var/www/krb5">
Options -Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
KrbMethodNegotiate off
KrbSaveCredentials off