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