この節の説明は SEAM 認証システムの一般的な概要です。詳細は、「認証システムの動作」を参照してください。
ユーザーの観点からいえば、SEAM は、SEAM セッションが起動された後はほとんど目につきません。SEAM セッションの初期化には通常、ログインと Kerberos パスワードの入力しか必要ありません。
SEAM システムは「チケット」の概念を中心に動作します。チケットは、ユーザーや NFS などのサービスの識別情報となる一連の電子情報です。運転免許証が運転する人と免許の種類を表すのと同じように、チケットもユーザーとユーザーのネットワークアクセス権を表します。SEAM ベースのトランザクションを行うと (たとえば、新しいプリンシパルに対し kinit を行う場合)、チケットの要求が Key Distribution Center (KDC) に透過的に送信されます。KDC はデータベースにアクセスしてこの識別情報を認証して、その他のマシンへのアクセスを許可するチケットをユーザーに戻します。「透過的」とは、チケットを明示的に要求する必要がないという意味です。この要求は kinit コマンドの中で行われます。特定のサービスのチケットを取得できるのは認証されたクライアントだけで、別のクライアントが識別情報を仮定して kinit を行うことはできません。
チケットには一定の属性が与えられています。たとえば、チケットは「転送可能」(新しい認証プロセスを経なくても別のマシンで使用できる) や「遅延」(指定の日付にならないと有効でない) の属性をもつことができます。どのユーザーがどのタイプのチケットを取得できるかなど、チケットをどのように使用するかは、SEAM のインストールや管理の際に決める「方針」によって設定されます。
「資格」と「チケット」という用語がよく出てきます。広い意味の Kerberos では、これらの用語は同じ意味で使われることがあります。しかし、技術的には資格はチケットとそのセッションに対するセッション鍵からなります。この違いについては、「SEAM によるサービスへのアクセス」 の「SEAM によるサービスのアクセス」で詳しく説明します。
SEAM 内のクライアントはその「プリンシパル」で識別されます。プリンシパルとは、KDC がチケットを割り当てることができる固有の識別情報です。プリンシパルは、joe などのユーザーや nfs などのサービスです。
プリンシパル名は慣習で「一次」、「インスタンス」、「レルム」という 3 つの部分からなります。joe/admin@ENG.ACME.COM は一般的な SEAM プリンシパルの例です。各文字列は次の意味を持ちます。
joe が一次です。これには、この例のようなユーザー名や nfs などのサービスを指定します。一次には host を指定することもできます。host は、これが、さまざまなネットワークサービスを提供するために設定されたサービスプリンシパルであることを意味します。
admin はインスタンスです。インスタンスは、ユーザープリンシパルでは省略可能ですが、サービスプリンシパルでは必須です。たとえば、ユーザー joe がときどきシステム管理者として活動する場合は、joe/admin として通常のユーザー識別情報と区別することができます。同じように、joe が 2 つのホストにアカウントを持っている場合は、インスタンスは異なる 2 つのプリンシパル名を持つことができます (たとえば、joe/denver.acme.com と joe/boston.acme.com)。SEAM では、joe と joe/admin は全く別のプリンシパルとして扱われます。
サービスプリンシパルでは、インスタンスは完全修飾されたホスト名です。bigmachine.eng.acme.com はこのようなインスタンスの例です。したがって、一次とインスタンスは、たとえば、nfs/bigmachine.eng.acme.com または host/bigmachine.eng.acme.com と表します。
ENG.ACME.COM は SEAM レルムです。レルムについては、次の項で説明します。
次に示すのはすべて、有効なプリンシパル名です。
joe
joe/admin
joe/admin@ENG.ACME.COM
nfs/host.eng.acme.com@ENG.ACME.COM
host/eng.acme.com@ENG.ACME.COM
レルムとはドメインのようなもので、同じ「master KDC」の下にあるシステムをグループとして定義する論理ネットワークです (下記を参照)。図 21-1 はレルムの相互関係を表したものです。階層的なレルムでは、1 つのレルムが他のレルムのスーパーセットになります。非階層的なレルムでは、2 つのレルム間のマッピングを定義する必要があります。SEAM では、レルム間で共通の認証が可能です。その場合、各レルムの KDC に、他のレルムのプリンシパルエントリが必要になるだけです。
それぞれのレルムには、プリンシパルデータベースのマスターコピーを保守するサーバーが含まれていなければなりません。これを「マスター KDC サーバー」と呼びます。さらにレルムには、プリンシパルデータベースの重複データベースを保持する「スレーブ KDC サーバー」が少なくとも 1 つ必要です。マスターおよびスレーブ KDC サーバーは共に認証を確立するために使用するチケットを作成します。
レルムにはさらに SEAM サーバーを 2 種類持つことができます。1 つはSEAM ネットワーク「アプリケーションサーバー」で、Kerberos 対応のアプリケーション (ftp、telnet、rsh など) へのアクセスを提供するサーバーです。もう 1 つは、Kerberos 認証を使用する「NFS サーバー」です。NFS サーバーは NFS サービスを提供します。
図 21-2 は、レルムの構成例を示したものです。