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を作成し、コンピュータアカウントに関連付ける必要があります。

  1. コンピュータアカウントを作成する
  2. 普通に管理ツールを使って、コンピュータアカウントを作成します。今回はwww.example.jpと仮定して、コンピュータアカウントもwwwで作成しておきます。

  3. Support Toolsのktpassコマンドでキーを作成し、コンピュータアカウントと関連付ける
  4. 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で変更することができます。

  5. 作成したキーをApacheサーバ上に移し、ディレクティブを設定する
  6. キーを/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.