Aug 282005
環境
- Fedora Core 1
- Apache 2.0.49 (Fedora Core 1のhttpd-2.0.49-1.1パッケージ)
mod_auth_kerbモジュール導入
モジュールはFecora Core 2用のsrc.rpmをダウンロードしてビルド、インストールしました。
# wget -N ftp://rpmfind.net/linux/fedora/core/development/SRPMS/mod_auth_kerb-5.0-1.src.rpm # rpmbuild --rebuild mod_auth_kerb-5.0-1.src.rpm # rpm -Uvh /usr/src/redhat/RPMS/i386/mod_auth_kerb-5.0.1.i386.rpm
Kerberos設定
/etc/krb5.confを設定します。今回は
- レルムはEXAMPLE.JP
- KDCはWindows 2000のドメインコントローラで、ホスト名はkdc.example.jp
であると仮定します。
[libdefaults] default_realm = EXAMPLE.JP default_tkt_enctypes = des-cbc-md5 default_tgs_enctypes = des-cbc-md5 [realms] EXAMPLE.JP = { kdc = kdc.example.jp:88 default_domain = example.jp } [domain_realm] .example.jp = EXAMPLE.JP example.jp = EXAMPLE.JP
単純なBasic認証
単純にBasic認証をかける場合は、以下の設定ですみます。
AuthType Kerberos AuthName "Kerberos authentication" KrbAuthRealms EXAMPLE.JP KrbVerifyKDC off require valid-user
この認証をかけたドキュメントにアクセスすると、HTTP Basic認証のダイアログが表示され、入力したIDとパスワードは裏でKDCの認証を受けます。
Active DirectoryでのSSPI認証
更にクライアントPCがActive Directoryのドメイン(今回の例の場合、EXAMPLE.JP)に参加している場合は、「統合Windows認証」というものを使うことができます。 このためにはKDCであるドメインコントローラでKerbeorsのKeytabを作成し、コンピュータアカウントに関連付ける必要があります。
- コンピュータアカウントを作成する
- Support Toolsのktpassコマンドでキーを作成し、コンピュータアカウントと関連付ける
- 作成したキーをApacheサーバ上に移し、ディレクティブを設定する
普通に管理ツールを使って、コンピュータアカウントを作成します。今回はwww.example.jpと仮定して、コンピュータアカウントもwwwで作成しておきます。
C:\Program Files\Support Tools>ktpass /princ HTTP/www.example.jp@EXAMPLE.JP /mapuser www$ /pass ************ /out www.keytab Successfully mapped HTTP/www.example.jp to www$. Key created. Output keytab to www.keytab: Keytab version: 0x502 keysize 70 HTTP/www.example.jp@EXAMPLE.JP ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x1 (DES-CBC-CRC) keylength 8 (0xfd7c89d0da1a0bb5) Account has been set for DES-only encryption. C:\Program Files\Support Tools>
プリンシパルのサービス名はデフォルトのHTTPとしていますが、これはmod_auth_kerbのKrbServiceNameで変更することができます。
キーを/etc/httpd/conf/www.keytabとして配置し、Apacheのユーザに読み込み許可を与えます(SSLキーと違い、rootに許可するだけではダメでした)。
AuthType Kerberos AuthName "Kerberos authentication" KrbAuthRealms EXAMPLE.JP KrbVerifyKDC on Krb5KeyTab /etc/httpd/conf/www.keytab require valid-user
これで、「統合Windows認証を使用する」設定になっている(IEデフォルトのようです)Internet Explorerからアクセスすると、認証ダイアログなしにアクセスされるようになります。
Sorry, the comment form is closed at this time.