第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 の代わりに Identity Management クライアントが Kerberos チケットを要求した後に付与されるチケットの有効期間を決定する際には、さまざまなパラメーターが考慮に入れられます。まず、クライアント側の評価が行われ、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
ファイルのticket_lifetime
設定の値がuser_name の代わりにクライアントによって使用されます。/etc/krb5.conf
ファイルに値を指定しないと、初期チケット要求のデフォルトの IdM 値が使用されます (これは 1 日)。
サーバー側
サーバー側の 2 段階評価が行われます。
- クライアントが要求する値は、user_name固有の Kerberos チケットポリシー (ポリシーが存在する場合) の
--maxlife
設定と比較され、その 2 つのより小さい値が選択されます。user_name 固有の Kerberos チケットポリシーが存在しない場合、クライアントが送信した値は、Global Kerberos チケットポリシーの--maxlife
設定と比較され、その 2 つのより小さい値が選択されます。グローバル Kerberos チケットポリシーおよびユーザー固有の Kerberos チケットポリシーの詳細は、「グローバル Kerberos チケットポリシーおよびユーザー固有の Kerberos チケットポリシー」を参照してください。 - 前の手順で選択した値は、他の 2 つの値と比較されます。
/var/kerberos/krb5kdc/kdc.conf
ファイルのmax_life
設定の値- 識別名 (DN)
krbPrincipalName=krbtgt/REALM_NAME@REALM_NAME,cn=REALM_NAME,cn=kerberos,domain_name
を使用した LDAP エントリーのkrbMaxTicketLife
属性に設定された値
これら 3 つの中の一番小さい値が、最終的にUser_name に付与される Kerberos チケットの有効期間に選択されます。
29.1.2. グローバル Kerberos チケットポリシーおよびユーザー固有の Kerberos チケットポリシー
グローバル Kerberos チケットポリシーを再定義し、個々のユーザー固有の追加のポリシーを定義できます。
- グローバル Kerberos チケットポリシー
- グローバルポリシーは、Identity Management Kerberos レルム内で発行されるすべてのチケットに適用されます。
- ユーザー固有の Kerberos チケットポリシー
- ユーザー固有のポリシーは、関連付けられたユーザーアカウントにのみ適用されます。たとえば、ユーザー固有の Kerberos チケットポリシーでは、
admin
ユーザーにより長いチケットの最大有効期間を定義できます。ユーザー固有のポリシーは、グローバルポリシーよりも優先されます。
29.1.3. グローバル Kerberos チケットポリシーの設定
グローバル Kerberos チケットポリシーを設定するには、以下のツールを使用できます。
- Identity Management の Web UI: 「Web UI: グローバル Kerberos チケットポリシーの設定」 を参照してください。
- コマンドラインは、「コマンドライン: グローバル Kerberos チケットポリシーの設定」を参照してください。
属性 | 説明 | 例 |
---|---|---|
Max renew |
有効期限が切れた後に、ユーザーが Kerberos チケットを更新できる期間 (秒単位)。更新期間の後は、ユーザーは
kinit ユーティリティーを使用して新しいチケットを取得する必要があります。
チケットを更新するには、kinit -R コマンドを使用します。
|
Max renew = 604800
チケットの有効期限が切れた後、ユーザーは次の 7 日 (604,800 秒) 以内に更新することができます。
|
Max life | Kerberos チケットの有効期間 (秒単位)。Kerberos チケットがアクティブな期間。 |
Max life = 86400
チケットは発行後 24 時間 (86,400 秒) で有効期限が切れます。
|
Web UI: グローバル Kerberos チケットポリシーの設定
を選択します。 - 必要な値を定義します。
- Max renew フィールドに、Kerberos チケットの最大更新期間を入力します。
- Max life フィールドに Kerberos チケットの最大有効期間を入力します。
図29.1 グローバル Kerberos チケットポリシーの設定
コマンドライン: グローバル Kerberos チケットポリシーの設定
グローバル Kerberos チケットポリシーを変更するには、以下を実行します。
- ipa krbtpolicy-mod コマンドを使用して、以下のオプションの少なくとも 1 つを渡します。
--maxrenew
- Kerberos チケットの最大更新間隔を定義します。--maxlife
- Kerberos チケットの最大有効期間を定義します。
たとえば、最大有効期間を変更するには、以下を実行します。$ ipa krbtpolicy-mod --maxlife=80000 Max life: 80000 Max renew: 604800
グローバル Kerberos チケットポリシーを元のデフォルト値にリセットするには、以下を実行します。
- ipa krbtpolicy-reset コマンドを使用します。
- オプション:ipa krbtpolicy-show コマンドを使用して、現在の設定を確認します。
ipa krbtpolicy-mod および ipa krbtpolicy-reset の詳細は、コマンドに
--help
オプションを渡します。
29.1.4. ユーザー固有の Kerberos チケットポリシーの設定
特定ユーザーの Kerberos チケットポリシーを変更するには、以下を実行します。
- 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
- オプション:ipa krbtpolicy-show user_name コマンドを使用して、指定したユーザーの現在の値を表示します。
新しいポリシーは、
kinit
ユーティリティーを使用する場合など、ユーザーが要求する次の Kerberos チケットで直ちに有効になります。
ユーザー固有の Kerberos チケットポリシーをリセットするには、ipa krbtpolicy-reset user_name コマンドを使用します。このコマンドは、ユーザーに特別に定義した値を消去し、その後、Identity Management はグローバルポリシーの値を適用します。
ipa krbtpolicy-mod および ipa krbtpolicy-reset の詳細は、コマンドに
--help
オプションを渡します。