モジュール java.security.jgss

クラス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
    関連項目:
    直列化された形式
    • コンストラクタの詳細

      • ServicePermission

        public ServicePermission​(String servicePrincipal,
                                 String action)
        指定されたservicePrincipalおよびactionで新しいServicePermissionを作成します。
        パラメータ:
        servicePrincipal - サービス主体の名前。 単独のアスタリスクは任意のサービス主体を表す。
        action - アクション文字列
    • メソッドの詳細

      • implies

        public boolean implies​(Permission p)
        指定されたアクセス権が、このKerberosサービス・アクセス権オブジェクトに含まれているかどうかを判定します。

        具体的には、次のすべてがtrueであればtrueを返します。(いずれかがない場合はfalseを返します。):

        • pServicePermissionのインスタンスです。
        • pアクションは、このServicePermissionアクションの適切なサブセットです。
        • pの名前がこのServicePermissionの名前と等しいか、このServicePermissionの名前が"*"です。
        定義:
        implies、クラス: Permission
        パラメータ:
        p - チェック対象のアクセス権。
        戻り値:
        指定されたアクセス権がこのオブジェクトに含まれる場合はtrue、そうでない場合はfalse。
      • equals

        public boolean equals​(Object obj)
        2つのServicePermissionオブジェクトが等しいかどうかを判定します。
        定義:
        equals、クラス: Permission
        パラメータ:
        obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
        戻り値:
        objがServicePermissionで、サービス主体およびアクションがこのServicePermissionオブジェクトと同じである場合はtrue。
        関連項目:
        Object.hashCode()HashMap
      • getActions

        public String getActions​()
        アクションの正規の文字列表現を返します。 現在のアクションを、常にinitiate、acceptの順序で返します。
        定義:
        getActions、クラス: Permission
        戻り値:
        このPermissionのアクション。
      • newPermissionCollection

        public PermissionCollection newPermissionCollection​()
        ServicePermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。
        ServicePermissionオブジェクトの格納方法は、このオブジェクトを任意の順番でコレクションに挿入でき、さらに、PermissionCollectionのimpliesメソッドを効率的で一貫性のある方法で実装できるものである必要があります。
        オーバーライド:
        newPermissionCollection、クラス: Permission
        戻り値:
        ServicePermissionsを格納するのに適切な新しいPermissionCollectionオブジェクト。