Solaris のシステム管理 (第 2 巻)

チケットの種類

チケットには、チケットがどのように使用されるかを決めるプロパティがあります。これらのプロパティは、チケットの作成時にチケットに割り当てられます。ただし、チケットのプロパティはあとから変更できます。たとえば、チケットは「転送可能 (forwardable)」から「転送済み (forwarded)」に変更できます。チケットのプロパティを表示するには klist コマンドを使用します (「チケットを表示する方法」を参照)。

チケットは、次の 1 つまたはそれ以上のプロパティで表されます。

転送可能 / 転送済み

「転送可能 (forwardable)」チケットはホストからホストに転送されます。これによって、クライアントは再び認証を受ける必要がありません。たとえば、ユーザー davidjennifer のマシンで転送可能チケットを取得した場合、david は自身のマシンにログインするときに新しいチケットを取得する必要はありません (再び認証を受ける必要もありません)。転送可能チケットと「プロクシ可能」チケットの違いを比較してください。

初期

「初期 (initial)」チケットは、チケット許可チケットを使わずに直接発行されるチケットです。パスワードを変更するアプリケーションなど、サービスの中には、「初期」チケットを要求するものがあります。これは、そのクライアントが自らの秘密鍵を知っているクライアントであることを確認するためです。つまり、「初期」チケットは、クライアントが認証を受けたばかりであることを示します。これに対し、チケット許可チケットに依存する場合は、そのチケットがしばらくの間使用されていたことを表しています。

無効

「無効 (invalid)」チケットとは、まだ使用可能になっていない遅延チケットです (次の項を参照)。無効チケットは、有効になるまでアプリケーションサーバーから拒否されます。これを有効にするには、開始時期が過ぎたあと、TGS 要求で VALIDATE フラグをオンにしてクライアントがこのチケットを KDC に提示する必要があります。

遅延可能 (postdatable) / 遅延

「遅延 (postdated)」チケットとは、作成されても指定された時期まで有効にならないチケットです。たとえばこのようなチケットは、夜遅く実行されるバッチジョブに使用するのに便利です。チケットが盗まれてもバッチジョブが実行されるまで使用できないためです。「遅延」チケットは「無効」チケットとして発行されます。開始時期がきて、クライアントが KDC から検証を受けるまで「無効」のままです (上の「無効」を参照)。「遅延」チケットは通常、チケット許可チケットの有効期限まで有効です。ただし、チケットが「更新可能」な場合、チケットの有効期限は通常、チケット許可チケットの全有効期限と同じに設定されます (「更新可能」を参照)。

プロクシ可能 / プロクシ

場合によっては、プリンシパルがサービスにサービス自身のために操作を行わせたい場合があります。たとえば、プリンシパルがサービスに対し第 3 のホストで印刷ジョブを実行するように要求する場合です。サービスは、その操作の間に限り、クライアントの識別情報を代わりに使用します。その場合、サービスは、クライアントの「プロクシ (proxy)」として動作するといいます。チケットを作成するときには、プロクシのプリンシパル名を指定する必要があります。

「プロクシ可能 (proxiable)」チケットは「転送可能」チケットに似ていますが、「プロクシ可能」チケットが 1 つのサービスに対してのみ有効であるのに対し、「転送可能」チケットはサービスに対しクライアントの識別情報の完全な使用を許可します。したがって、「転送可能」チケットは一種のスーパープロクシと考えられます。

更新可能

チケットに非常に長い有効期限を与えるとセキュリティを損うおそれがあるため、チケットを「更新可能 (renewable)」にすることができます。「更新可能」チケットには 2 つの有効期限があります。1 つはチケットの現在のインスタンスの有効期限、もう 1 つは任意のチケットの最長有効期限です。クライアントがチケットの使用を継続したいときは、最初の有効期限が切れる前にチケットの有効期限を更新します。たとえば、すべてのチケットの最長有効期限が 10 時間のときに、あるチケットが 1 時間だけ有効だとします。このチケットを保持するクライアントが 1 時間を超えて使用したい場合は、その時間内にチケットの有効期限を更新する必要があります。チケットが最長有効期限 (10 時間) に達すると、チケットの有効期限が自動的に切れ、それ以上更新できなくなります。

チケットを表示してその属性を見る方法については、「チケットを表示する方法」を参照してください。

チケットの有効期間

プリンシパルがチケットを取得すると、チケット許可チケットであっても、チケットの有効期限は次の値のうち最も小さいものに設定されます。

図 23-1 で、TGT の有効期限がどのようにして決まるか、4 つの有効期限の値がどこで指定されるかを示します。この図は TGT の有効期限がどのようにして決まるかを示していますが、基本的には、どのプリンシパルがチケットを取得する場合でも同じことです。違いは、kinit で有効期限を与えないことと、krbtgt/realm プリンシパルの代わりに、チケットを提供するサービスプリンシパルが最長有効期限を提供することです。

図 23-1 TGT の有効期限の決め方

Graphic

「更新可能」チケットの有効期限も次の 4 つの値の最小値で決まります。ただし、この場合は更新可能有効期限の値が使用されます。

プリンシパル名

チケットはプリンシパル名で識別され、プリンシパル名はユーザーやサービスを識別します。表 23-4 にプリンシパル名の例を示します。

表 23-4 プリンシパル名の例

プリンシパル名 

説明 

root/boston.acme.com@ACME.COM

NFS クライアントの root アカウントに関連付けられたプリンシパル。root プリンシパルと呼ばれ、認証された NFS マウントを行う場合に必要

host/boston.acme.com@ACME.COM

Kerberos 化されたアプリケーション (klist など) やサービス (NFS サービスなど) で使用するプリンシパル

username@ACME.COM

ユーザー用のプリンシパル 

username/admin@ACME.COM

KDC データベースを管理するために使用できる admin プリンシパル

nfs/boston.acme.com@ACME.COM

nfs サービスによって使用されるプリンシパル。これは host プリンシパルの代わりに使用できる