第20章 Kerberos フラグとプリンシパルエイリアスの管理

20.1. サービスおよびホスト向けの Kerberos フラグ

Kerberos チケット動作の特定の側面を定義するには、各種の Kerberos フラグを使うことができます。これらのフラグは、サービスとホスト Kerberos プリンシパルに追加することができます。
IdM のプリンシパルは、以下の 2 つの Kerberos フラグを受け付けます。
OK_AS_DELEGATE
委任用に信頼する Kerberos チケットを指定するには、このフラグを使用します。
AD クライアントは、Kerberos チケット上の OK_AS_DELEGATE フラグをチェックして、ユーザー認証情報を特別のサーバーに転送または委任できるかどうかを判断します。AD は OK_AS_DELEGATE セットのあるサービスまたはホストにのみ、TGT を転送します。このフラグがあると、SSSD は AD ユーザー TGT を IdM クライアントマシン上のデフォルトの Kerberos 認証情報キャッシュに追加することができます。
REQUIRES_PRE_AUTH
事前に認証されたチケットのみがプリンシパルに認証可能と指定するには、このフラグを使用します。
REQUIRES_PRE_AUTH フラグが設定されている場合は、KDC は新たな認証を必要します。TGT が事前に認証されている場合にのみ、KDC は REQUIRES_PRE_AUTH のあるプリンシパル用の TGT を発行します。
REQUIRES_PRE_AUTH を使うと、選択したサービスまたはホストの事前認証を無効にすることができます。こうすると KDC の負荷は下がりますが、長期のキーへのブルートフォース攻撃が成功する確率が少し高くなります。

20.1.1. Web UI で Kerberos フラグを設定する

IdM web UI からは現在、プリンシパルに OK_AS_DELEGATE フラグのみを追加できます。
  1. Identity メインタブから Services サブタブを選択します。
    サービス一覧

    図20.1 サービス一覧

  2. フラグを追加するサービスをクリックします。
  3. Trusted for delegation オプションにチェックを入れます。
    OK_AS_DELEGATE フラグの追加

    図20.2 OK_AS_DELEGATE フラグの追加

20.1.2. コマンドライン で Kerberos フラグを設定する

コマンドラインからプリンシパルにグラフを追加または削除するには、ipa service-mod コマンドに以下のいずれかのオプションを追加します。
  • OK_AS_DELEGATE には --ok-as-delegate を追加
  • REQUIRES_PRE_AUTH には --requires-pre-auth を追加
フラグを追加するには、対応するオプションを 1 に設定します。たとえば、OK_AS_DELEGATE フラグを test/ipa.example.com@EXAMPLE.COM プリンシパルに追加するには、以下を実行します。
$ ipa service-mod test/ipa.example.com@EXAMPLE.COM --ok-as-delegate=1
フラグを削除または無効にするには、対応するオプションを 0 に設定します。たとえば、REQUIRES_PRE_AUTH フラグを test/ipa.example.com@EXAMPLE.COM プリンシパルで無効にするには、以下を実行します。
$ ipa service-mod test/ipa.example.com@EXAMPLE.COM --requires-pre-auth=0
プリンシパルに OK_AS_DELEGATE が設定されているかどうかを確認するには、kvno ユーティリティーを実行してから、klist -f コマンドを実行します。OK_AS_DELEGATE は、klist -f の出力の O の文字で表されます。
$ kvno test/ipa.example.com@EXAMPLE.COM
$ klist -f
Ticket cache: KEYRING:persistent:0:0
Default principal: admin@EXAMPLE.COM

Valid starting		Expires			Service principal
02/19/2014 09:59:02	02/20/2014 08:21:33	test/ipa/example.com@EXAMPLE.COM
    Flags: FATO
プリンシパルにどのフラグが設定されているかを調べるには、kadmin.local ユーティリティーを使用します。現行フラグは、以下のように kadmin.localの出力の Attributes の行に表示されます。
# kadmin.local
kadmin.local: getprinc test/ipa.example.com
Principal: test/ipa.example.com@EXAMPLE.COM
Expiration date: [never]
Last password change: Mon Sep 16 15:44:21 EDT 2013
Password expiration date: [none]
Maximum ticket life: 1 day 00:00:00
Maximum renewable life: 7 days 00:00:00
Last modified: Mon Oct 14 23:42:53 EDT 2013 (admin/admin@EXAMPLE.COM)
Last successful authentication: Wed Mar 11 08:01:03 EDT 2015
Last failed authentication: [never]
Failed password attempts: 0
Number of keys: 6
Key: vno 1, aes256-cts-hmac-sha1-96, no salt
Key: vno 1, aes128-cts-hmac-sha1-96, no salt
Key: vno 1, des3-cbc-sha1, no salt
Key: vno 1, arcfour-hmac, no salt
Key: vno 1, camellia128-cts-cmac, no salt
Key: vno 1, camellia256-cts-cmac, no salt
MKey: vno 1
Attributes: REQUIRES_PRE_AUTH OK_AS_DELEGATE OK_TO_AUTH_AS_DELEGATE
Policy: [none]