第29章 Kerberos ドメインの管理

本章では Identity Management サーバーの Kerberos Key Distribution Center (KDC) コンポーネントの管理について説明します。

重要

Identity Management の Kerberos ポリシー管理には、kadmin または kadmin.local ユーティリティーを使用しないでください。本ガイドに記載のように、ネイティブの Identity Management コマンドツールを使用してください。
上記の Kerberos ツールを使用して Identity Management ポリシーの管理を試みると、操作によっては Directory Server インスタンスに保存されている Identity Management の設定に影響が及ばないものもあります。

29.1. Kerberos チケットポリシーの管理

Identity Management の Kerberos チケットポリシーは、チケットの期間や更新に関する制約を設定します。以下の手順を使用して、Identity Management サーバー上で実行中の Kerberos Key Distribution Center (KDC) の Kerberos チケットポリシーを設定できます。

29.1.1. Kerberos チケットの有効期限の判断

Identity Management クライアントが user_name に代わって Kerberos チケットをリクエストした後に付与されるチケットの有効期限を Identity Management サーバーが判断するとき、複数のパラメーターが考慮されます。まず、クライアント側の評価が行われます。ここでは、kinit コマンドと /etc/krb5.conf ファイルの ticket_lifetime の設定に基づいてリクエストする値を計算します。そして、この値は Identity Management サーバーに送られます。ここでは、サーバー側の評価が行われます。リクエストされた有効期間が、グローバル設定が許可するよりも短い場合、リクエストされた有効期間が付与されます。そうでなければ、付与された有効期間は、グローバル設定が許可する値となります。
user_name に代わってクライアントによってリクエストされる有効期間が以下のように判断されます。

クライアント側

  • -l オプションを使用して kinit コマンド自体で user_name の値を明示的に述べる場合、例:
    $ kinit user_name -l 90000
    この場合 90000 秒という値が、user_name に代わってクライアントでリクエストされます。
  • そうでなければ、kinit user_name コマンドの引数で渡される有効期間の値がない場合、クライアントの /etc/krb5.conf ファイルの値が、user_name に代わってクライアントによって使用されます。/etc/krb5.conf ファイルで値が指定されていない場合は、初期チケットリクエストのデフォルトの IdM 値が使用されます。これは 1 日です。

サーバー側

サーバー側では、2 つのステージ評価が行われます。
  1. クライアントがリクエストした値が user_name 固有の Kerberos チケットポリシーの --maxlife 設定に対して比較されます。これは、これらのポリシーが存在、2 つの低い値が選択されている場合に限ります。user_name 固有の Kerberos チケットポリシ-が存在しない場合、クライアントが送信する値が、グローバル Kerberos チケットポリシーの --maxlife 設定に対して比較されます。グローバルとユーザー固有の Kerberos チケットポリシーの詳細は、「グローバルおよびユーザー固有の Kerberos チケットポリシー」 を参照してください。
  2. 以前の手順で選択した値は、その他 2 つの値に対して比較されます。
    • /var/kerberos/krb5kdc/kdc.conf ファイルの max_life 設定の値
    • 識別名 (DN) で、LDAP エントリの krbMaxTicketLife 属性で設定した値: krbPrincipalName=krbtgt/REALM_NAME@REALM_NAME,cn=REALM_NAME,cn=kerberos,domain_name
    3 つの値のうち最小のものは、user_name に付与された Kerberos チケットの有効期間に対して最終的に選択されます。

29.1.2. グローバルおよびユーザー固有の Kerberos チケットポリシー

グローバルの Kerberos チケットポリシーを再定義して、個人ユーザー専用の追加のポリシーを定義することができます。
グローバルの Kerberos チケットポリシー
グローバルポリシーは、Identity Management の Kerberos レルム内で発行された全チケットに適用されます。
ユーザー固有の Kerberos チケットポリシー
ユーザー固有のポリシーは、関連付けられたユーザーアカウントに対してのみ適用されます。たとえば、ユーザー固有のチケットポリシーにより、admin ユーザーのチケットの最大有効期間を延長するように定義できます。
ユーザー固有のポリシーは、グローバルポリシーよりも優先されます。

29.1.3. グローバルの Kerberos チケットポリシーの設定

グローバルの Kerberos チケットポリシーを設定するには、以下を使用できます。

表29.1 サポートされる Kerberos チケットポリシーの属性

属性説明
Max renew
Kerberos チケットの有効期限が切れてからチケットを更新できる期間 (秒)。更新期間が過ぎると、ユーザーはkinit ユーティリティーを使用してログインし、新規チケットを取得する必要があります。
チケットを更新するには kinit -R コマンドを使用します。
Max renew = 604800
チケットの期限が切れると、ユーザーは 7 日以内 (604,800 秒) であればチケットを更新できます。
Max lifeKerberos チケットの有効期間 (秒)。Kerberos チケットが有効な期間。
Max life = 86400
チケットは発行されてから 24 時間 (86,400 秒) で期限が切れます。

Web UI: グローバルのKerberos チケットポリシーの設定

  1. PolicyKerberos Ticket Policy を選択します。
  2. 必須値を定義します。
    1. Max renew フィールドで、Kerberos チケットの最大更新期間を入力します。
    2. Max life フィールドで、Kerberos チケットの最大有効期間を入力します。
      グローバルの Kerberos チケットポリシーの設定

      図29.1 グローバルの Kerberos チケットポリシーの設定

  3. Save をクリックします。

コマンドライン: グローバルのKerberos チケットポリシーの設定

グローバルの Kerberos チケットポリシーを変更します。
  • ipa krbtpolicy-mod コマンドを使用して、最低でも以下のオプションを 1 つ指定します。
    • --maxrenew は、Kerberos チケットの最大更新期間を定義します。
    • --maxlife は、Kerberos チケットの最大有効期間を定義します。
    たとえば、最大有効期間を変更するには、以下を実行します。
    $ ipa krbtpolicy-mod --maxlife=80000
    Max life: 80000
    Max renew: 604800
元のデフォルト値に、グローバルの Kerberos チケットポリシーをリセットします。
  1. ipa krbtpolicy-reset コマンドを使用します。
  2. オプションでipa krbtpolicy-show コマンドを使用して、現在の設定を確認します。
ipa krbtpolicy-mod および ipa krbtpolicy-reset の詳細は、コマンドの実行時に --help のオプションを指定します。

29.1.4. ユーザー固有の Kerberos チケットポリシーの設定

特定ユーザーの Kerberos チケットポリシーを変更します。
  1. ipa krbtpolicy-mod user_name コマンドを使用して、最低でも以下のオプションを 1 つ指定します。
    • --maxrenew は、Kerberos チケットの最大更新期間を定義します。
    • --maxlife は、Kerberos チケットの最大有効期間を定義します。
    属性 1 つのみを定義した場合には、Identity Management は、他の属性にグローバルの Kerberos チケットポリシーを適用します。
    たとえば admin ユーザーの最大有効期間を変更するには、以下を実行します。
    $ ipa krbtpolicy-mod admin --maxlife=160000
    Max life: 80000
    Max renew: 604800
  2. オプションでipa krbtpolicy-show user_name コマンドを使用して、特定のユーザーの現在値を表示します。
新しいポリシーは、kinit ユーティリティーの使用時など、次回の Kerberos チケットの要求時に即座にチケットに適用されます。
ユーザー固有の Kerberos チケットポリシーをリセットするには、ipa krbtpolicy-reset user_name コマンドを使用します。このコマンドは、Identity Management がグローバルポリシーの値を適用してからユーザーに定義された値を消去します。
ipa krbtpolicy-mod および ipa krbtpolicy-reset の詳細は、コマンドの実行時に --help のオプションを指定します。