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

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

Kerberos チケット動作の特定の側面を定義するには、各種 Kerberos フラグを使うことができます。これらのフラグは、サービスとホスト Kerberos プリンシパルに追加することができます。
Identity Management (IdM) のプリンシパルは、以下の Kerberos フラグを受け付けます。
OK_AS_DELEGATE
委任用に信頼する Kerberos チケットを指定するには、このフラグを使用します。
Active Directory (AD) クライアントは、Kerberos チケット上の OK_AS_DELEGATE フラグをチェックして、ユーザー認証情報を特別のサーバーに転送または委任できるかどうかを判断します。AD は OK_AS_DELEGATE セットのあるサービスまたはホストにのみ、Ticket-Granting Ticket (TGT) を転送します。このフラグがあると、システムセキュリティサービスデーモン (SSSD) は AD ユーザー TGT を IdM クライアントマシン上のデフォルトの Kerberos 認証情報キャッシュに追加することができます。
REQUIRES_PRE_AUTH
事前に認証されたチケットのみがプリンシパルに認証可能と指定するには、このフラグを使用します。
REQUIRES_PRE_AUTH フラグが設定されている場合は、キー配布センター (KDC) は新たな認証を必要します。TGT が事前に認証されている場合にのみ、KDC は REQUIRES_PRE_AUTH のあるプリンシパル用の TGT を発行します。
REQUIRES_PRE_AUTH 消去すると、選択したサービスまたはホストの事前認証を無効化できます。この場合、KDC の負荷は下がりますが、長期のキーへのブルートフォース攻撃が成功する確率が少し高くなります。
OK_TO_AUTH_AS_DELEGATE
OK_TO_AUTH_AS_DELEGATE フラグを使用して、サービスがユーザーに代わって Kerberos チケットを取得できることを指定します。これはプロトコルの移行を行うには十分ですが、ユーザーに代わってその他のチケットを取得するには、サービスに、キー配布センター側で OK_AS_DELEGATE フラグと一致するポリシー決定が許可される必要があることに注意してください。

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

OK_AS_DELEGATEREQUIRES_PRE_AUTH、またはOK_TO_AUTH_AS_DELEGATE をプリンシパルに追加するには:
  1. Identity メインタブから Services サブタブを選択します。
    サービス一覧

    図20.1 サービス一覧

  2. フラグを追加するサービスをクリックします。
  3. 設定するオプションを確認します。例えば、REQUIRES_PRE_AUTH フラグを設定するには、Requires pre-authentication オプションを確認します。
    AREQUIRES_PRE_AUTH フラグの追加

    図20.2 AREQUIRES_PRE_AUTH フラグの追加

    以下の表では、Kerberos フラグと、Web UI で対応する名前が一覧表示されています。

    表20.1 Web UI での Kerberos フラグのマッピング

    Kerberos フラグ名Web UI オプション
    OK_AS_DELEGATE委任用に信頼
    REQUIRES_PRE_AUTH事前認証が必要
    OK_TO_AUTH_AS_DELEGATEユーザーとしての認証に信頼

20.1.2. コマンドラインからの Kerberos フラグの設定と削除

コマンドラインからプリンシパルにグラフを追加または削除するには、ipa service-mod コマンドに以下のいずれかのオプションを追加します。
  • OK_AS_DELEGATE には --ok-as-delegate を追加
  • REQUIRES_PRE_AUTH には --requires-pre-auth を追加
  • OK_TO_AUTH_AS_DELEGATE--ok-to-auth-as-delegate
フラグを追加するには、対応するオプションを 1 に設定します。たとえば、OK_AS_DELEGATE フラグを service/ipa.example.com@EXAMPLE.COM プリンシパルに追加するには、以下を実行します。
$ ipa service-mod service/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

20.1.3. コマンドラインからの Kerberos フラグの表示

OK_AS_DELEGATE が現在プリンシパルに設定されているかどうかを確認するには:
  1. kvno ユーティリティーを実行します。
  2. 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

表20.2 kerberos フラグの省略

Kerberos フラグ名省略形
OK_AS_DELEGATEO
REQUIRES_PRE_AUTHA
OK_TO_AUTH_AS_DELEGATEF
プリンシパルにどのフラグが設定されているかを調べるには、kadmin.local ユーティリティーを使用します。現行フラグは、以下のように kadmin.localの出力の Attributes の行に表示されます。
# kadmin.local
kadmin.local: getprinc test/ipa.example.com
Principal: test/ipa.example.com@EXAMPLE.COM
Expiration date: [never]
...
Attributes: REQUIRES_PRE_AUTH OK_AS_DELEGATE OK_TO_AUTH_AS_DELEGATE
Policy: [none]