Apacheなどはインストール済みの状態からスタート。
1) WindowsServerでの作業
1. CentOSをDNSに登録する。(双方とも正引き、逆引きができる状態にしておく)
2. ActiveDirectory上で、
ダミーのユーザアカウントを作成する → (1)
ktpassコマンドで、keytabファイルを作成する
ktpass.exe -princ HTTP/centos53.ad.local@AD.LOCAL -crypto rc4-hmac-nt -ptype KRB5_NT_SRV_HST -pass パスワード -out 出力先ファイル名
3. 作成されたファイルを CentOS 上の /etc/httpd/conf/keytab に転送しておく。
2)CentOS(Webサーバ)での作業
1. apacheモジュールをインストール
yum install mod_auth_kerb
2. /etc/httpd/conf.d/auth_kerb.conf を確認し、LoadModule ... が設定済みであることを確認する。
LoadModule auth_kerb_module modules/mod_auth_kerb.so
3. /etc/krb5.conf を編集する。
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = AD.LOCAL dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h forwardable = yes [realms] AD.LOCAL = { kdc = ws2008r2.ad.local:88 } [domain_realm] .ad.local = AD.LOCAL ad.local = AD.LOCAL [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
4. /etc/httpd/conf.d/auth_kerb.conf を編集する。
<Location /private> # SSLRequireSSL AuthType Kerberos AuthName "Kerberos Login" KrbServiceName HTTP/centos53.ad.local KrbMethodNegotiate Off KrbMethodK5Passwd On KrbAuthRealms AD.LOCAL Krb5KeyTab /etc/httpd/conf/keytab require valid-user </Location>※ここでは、SPNEGOによるSSOではなく、BASIC認証に設定しています。
5. apache を再起動する
service httpd restart
3)動作確認
1. クライアントPCから、Webサーバにアクセスしてみる。
http://centos53.ad.local/private/foge
2. BASIC認証のダイアログが表示されたら、ADに登録されているユーザ・パスワードを入力する。
3. 404 Not Found になれば正常に動作している。
4)統合ウィンドウズ認証に変更する
1. /etc/httpd/conf.d/auth_kerb.conf を編集する。
<Location /private> . . KrbMethodNegotiate On KrbMethodK5Passwd Off . . </Location>
2. 3)と同様に動作確認する。→認証ダイアログは表示されないので、ADに参加しているクライアントPCで動作確認すること。
補足
■ CentOS側では、REMOTE_USERで認証されたユーザがわかります。
■ 認証失敗したときは、ErrorDocument 401 とかでなんとかなると思います。
1 件のコメント:
記事参考にさせていただいています。
さて、CentOS5.6で全く同じように試してみたのですが、Windows統合認証にしたさいにも、ユーザー名とパスワードを求められてしまいます。
klist kvno kinitは問題ないようなので、
どうも、mod_auth_kerbがうまく動いていない気がするのですが、、、
コメントを投稿