識別情報を証明するチケットとそれに対応するセッション鍵を提供できる場合は、リモートサービスによってアクセスが許可されます。セッション鍵には、ユーザーやアクセスするサービスに特有の情報が含まれています。ユーザーすべてのチケットとセッション鍵は、ユーザーが最初にログインするときに KDC によって作成されます。チケットとそれに対応するセッション鍵が 1 つの資格となります。複数のネットワークサービスを使用する場合には、ユーザーは多数の資格を収集できます。ユーザーは特定のサーバーで動作するサービスごとに 1 つの資格を必要とします。たとえば、boston という名前のサーバー上の nfs サービスにアクセスするには 1 つの資格が必要です。別のサーバー上の nfs サービスにアクセスするには、別の資格が必要です。
特定のサーバー上の特定のサービスにアクセスする場合、ユーザーは 2 つの資格を取得する必要があります。最初の資格は、チケット認可チケット (TGT) のためです。チケット認可サービスは、この資格の暗号を解除すると、ユーザーからアクセスを要求されているサーバーの資格をさらに作成します。ユーザーは、この 2 つめの資格を使用してサーバー上のサービスへのアクセスを要求します。サーバーがこの資格の暗号を解除すると、ユーザーはアクセスを許可されます。
資格を作成して格納するプロセスは透過的です。資格は KDC によって作成され、要求者に送信されます。資格は、受信されると資格キャッシュに格納されます。
認証処理を開始するために、クライアントが特定のユーザー主体の要求を認証サーバーに送信します。この要求の送信では暗号は使用されません。このリクエストにはセキュアな情報が含まれていないため、暗号化の使用は必要ありません。
認証サービスは要求を受信すると、ユーザーの主体名を KDC データベースから検索します。主体がデータベースのエントリに一致すると、認証サービスはその主体の非公開鍵を取得します。認証サービスは次に、クライアントおよびチケット認可サービスによって使用されるセッション鍵 (これをセッション鍵 1 と呼びます) と、チケット認可サービスのチケット (チケット 1) を生成します。このチケットを「チケット認可チケット (TGT)」ともいいます。セッション鍵とチケットはユーザーの非公開鍵を使って暗号化され、情報がクライアントに返送されます。
クライアントは、これらの情報を使用して、ユーザー主体の非公開鍵でセッション鍵 1 とチケット 1 を復号化します。非公開鍵はユーザーと KDC データベースにしか認識されていないはずであるため、このパケット内の情報は安全です。クライアントはこの情報を資格キャッシュに格納します。
この処理中に、ユーザーは通常、パスワードを要求されます。非公開鍵を作成するために使用された、KDC データベースに格納されているパスワードが、ユーザーが指定したパスワードと同じであると、認証サービスから送信された情報は正しく復号化されます。クライアントはこれで、チケット認可サービスで使用される資格を取得したため、サーバーに対する資格をリクエストする準備ができました。
図 8 チケット認可サービスに対する資格の取得
特定のサーバーにアクセスするには、クライアントがその前にサーバーに対する資格を認証サービスから取得している必要があります。チケット認可サービスに対する資格の取得を参照してください。次にクライアントは、チケット認可サービスに要求を送信します。この要求には、サービス主体名、チケット 1 およびセッション鍵 1 で暗号化されたオーセンティケータが含まれています。チケット 1 は、チケット認可サービスのサービス鍵を使用して認証サービスによって暗号化されたものです。
チケット認可サービスのサービス鍵はチケット認可サービスに認識されているため、チケット 1 を復号化できます。チケット 1 の情報にはセッション鍵 1 が含まれているため、チケット認可サービスはオーセンティケータの暗号を解除できます。この時点で、ユーザー主体はチケット認可サービスによって認証されます。
認証に成功すると、チケット認可サービスは、ユーザー主体およびサーバーのためのセッション鍵 (セッション鍵 2) と、サーバーのためのチケット (チケット 2) を生成します。次にセッション鍵 2 とチケット 2 はセッション鍵 1 を使って暗号化されます。セッション鍵 1 を知っているのはクライアントとチケット認可サービスだけであるため、この情報は安全であり、ネットワークを介して安全に送信されます。
クライアントはこの情報パケットを受信すると、前に資格キャッシュに格納したセッション鍵 1 を使用して情報を復号化します。クライアントは、サーバーに対して使用する資格を取得したことになります。次にクライアントは、そのサーバーの特定のサービスにアクセスする要求を行います。
図 9 サーバーに対する資格の取得
クライアントが特定のサービスへのアクセスを要求するには、まず認証サーバーからチケット認可サービスに対する資格を取得し、チケット認可サービスからサーバー資格を取得する必要があります。チケット認可サービスに対する資格の取得およびKerberos サーバーに対する資格の取得を参照してください。次に、クライアントは、チケット 2 と別のオーセンティケータを含む要求をサーバーに送信します。オーセンティケータはセッション鍵 2 を使用して暗号化されます。
チケット 2 は、サービスのサービス鍵を使用してチケット認可サービスによって暗号化されています。サービス鍵はサービス主体が知っているため、サービスはチケット 2 を復号化し、セッション鍵 2 を取得できます。次に、セッション鍵 2 を使用してオーセンティケータが復号化されます。オーセンティケータが正しく復号化されると、サービスへのアクセスがクライアントに許可されます。
図 10 特定のサービスへのアクセス権の取得