Windows 2008な DC相手に keytabで kinitする話

2010/08/30

Categories: activedirectory kerberos

統合Windows認証用にktpass.exeを用いてサービス用のkeytabを作成。
Active Directoryと apacheで 統合Windows認証
kinitにこのkeytabを指定することで、パスワードを入力することなしでTGTを得ることができる。

W2k8がDCな環境(krb5.confにおいて当該REALMのkdcにこの2008を指定している状態)で、上記エントリで作成したkeytabをkinitしようとすると、以下のエラーになってしまった。

kinit(v5): Key table entry not found while getting initial credentials
下のリンクは、2000と2003環境の話だけど、要領は同じみたい。
IBM Tivoli | Microsoft Windows Server 2003環境でのWindows統合認証設定の考慮点 (Tivoli-08-030):

クライアント側が合わせる場合:
上記keytabはRC4で暗号化されたエントリが入っているので、krb5.conf側で暗号化にRC4を明示する。

[libdefaults]
default_tkt_enctypes = rc4-hmac
default_tgs_enctypes = rc4-hmac

keytab側をAESで暗号化する場合:
以下のようにして暗号化にAESを明示する。

ktpass -princ HTTP/somehost.example.com@EXAMPLE.COM -mapuser マップするユーザ名 -crypto AES256-SHA1 -ptype KRB5_NT_SRV_HST +rndPass -out 適当なファイル.keytab

複数の暗号化でエントリを作成してもいいかも。だけど、どうせなら暗号強度が強い方に倒した方がいいのかなーと。

$ kinit -kt keytabファイル HTTP/somehost.example.com
$ klist
Ticket cache: FILE:/tmp/krb5cc_9999
Default principal: HTTP/somehost.example.com@EXAMPLE.COM

Valid starting Expires Service principal
08/30/10 19:02:41 08/31/10 05:02:42 krbtgt/EXAMPLE.COM@EXAMPLE.COM
        renew until 08/31/10 19:02:41


Kerberos 4 ticket cache: /tmp/tkt9999
klist: You have no tickets cached

まずはこの状態で、SASL-GSSAPIによる認証を用い、ldapsearchでAD上のオブジェクトを検索できるとこまで確認した。つづきはそのうち。


環境:
Windows Server 2008 Standard x64
CentOS 5.5
 krb5-workstation-1.6.1-36.el5_5.5
 krb5-libs-1.6.1-36.el5_5.5


>> Home