モジュール java.security.jgss

クラスServicePermission

java.lang.Object
java.security.Permission
javax.security.auth.kerberos.ServicePermission
すべての実装されたインタフェース:
Serializable, Guard

public final class ServicePermission extends Permission implements Serializable
このクラスは、Kerberosサービスと、Kerberosサービスからアクセスする必要のある資格を保護するために使用します。 サービス主体とサービスにアクセスするために必要な資格は1対1で対応します。 したがって、サービス・プリンシパルへのアクセス権を付与すると、サービス・プリンシパルとのセキュリティ・コンテキストの確立に必要な資格証明へのアクセスが暗黙的に付与されます。 これは、資格が、キャッシュ内にある場合にも、KDCとの交換によって獲得される場合にも当てはまります。 資格は、チケットを付与するチケット、あるいはキー・テーブルから取得されるサービス・チケットまたは秘密キーのいずれかになります。

ServicePermissionには、サービス主体名と、資格が使用されるコンテキストを指定するアクションのリストが含まれます。

サービス・プリンシパル名は、サービスを提供するKerberosPrincipalの正規名です。つまり、KerberosPrincipalはKerberosサービス・プリンシパルを表します。 この名前では、大文字と小文字が区別されます。 単独のアスタリスクは任意のサービス主体を表す。

このアクセス権を付与するということは、アクションで指示されたコンテキスト内にキャッシュされた資格(TGT、サービス・チケット、または秘密キー)を呼出し側が使用できるということを意味します。 TGTの場合は、このアクセス権を付与するということは、Authentication Service交換でTGTを得ることができることも意味します。

この権限の付与は、権限のサービス・プリンシパルがこのレルム内にあるかぎり、Kerberosレルムを指定せずにKerberosPrincipalまたはGSSNameを作成することを意味します。

次の操作を指定できます。

    initiate -              allow the caller to use the credential to
                            initiate a security context with a service
                            principal.

    accept -                allow the caller to use the credential to
                            accept security context as a particular
                            principal.
 
たとえば、TGTにアクセスしてセキュリティ・コンテキストを開始するためのアクセス権を指定するには、次のようにアクセス権を作成します。
     ServicePermission("krbtgt/EXAMPLE.COM@EXAMPLE.COM", "initiate");
 

サービス・チケットを取得し、「host」サービスを使用してコンテキストを開始するには、次のようにアクセス権を作成します。

     ServicePermission("host/foo.example.com@EXAMPLE.COM", "initiate");
 

Kerberos化されたサーバーの場合、アクションは「accept」になります。 たとえば、kerberos化された「host」サービス(telnetなど)の秘密キーにアクセスして使用するために必要なアクセス権は、次のように作成します。

     ServicePermission("host/foo.example.com@EXAMPLE.COM", "accept");
 

導入されたバージョン:
1.4
関連項目: