モジュール java.security.jgss
パッケージ org.ietf.jgss

インタフェースGSSName



  • public interface GSSName
    このインタフェースは、単一のGSS-API主体エンティティをカプセル化します。 アプリケーションでは、GSSManagerクラスに含まれるcreateNameメソッドのいずれかを使用してこのインタフェースの実装を取得します。 GSSNameは、エンティティの複数の表現、つまり複数のプリミティブ名前要素(サポートされている配下のメカニズムごとに1つずつ)で構成されます。 GSSでは、1つだけのメカニズムの要素を含むGSSNameをメカニズム名(MN)と呼びます。

    主体の識別に使用される名前空間は、認証メカニズムごとに異なります。このため、複数メカニズム環境では、GSS-APIのネーミング・サポートが複雑になります。また、単一メカニズム環境の場合でも、配下のメカニズムが複数の名前空間をサポートしている場合は、同様に複雑になります。 名前の形式とその定義は、Oid'sによって識別されます。一部の標準型は、このインタフェースに定義されています。 名前の形式は、その名前型の一意のOidに基づいて派生させることができます。

    次のコード例では、GSSNameインタフェースを使用しています。 まず、GSSNameを作成し、それをMNに変換します。次に、名前を比較し、その名前の出力可能な表現を取得します。最後に、それをbyte配列にエクスポートしてから再インポートし、新しいGSSNameを取得します。

          GSSManager manager = GSSManager.getInstance();
    
          // create a host based service name
          GSSName name = manager.createName("service@host",
                       GSSName.NT_HOSTBASED_SERVICE);
    
          Oid krb5 = new Oid("1.2.840.113554.1.2.2");
    
          GSSName mechName = name.canonicalize(krb5);
    
          // the above two steps are equivalent to the following
          GSSName mechName = manager.createName("service@host",
                          GSSName.NT_HOSTBASED_SERVICE, krb5);
    
          // perform name comparison
          if (name.equals(mechName))
                  print("Names are equals.");
    
          // obtain textual representation of name and its printable
          // name type
          print(mechName.toString() +
                          mechName.getStringNameType().toString());
    
          // export and re-import the name
          byte [] exportName = mechName.export();
    
          // create a new name object from the exported buffer
          GSSName newName = manager.createName(exportName,
                          GSSName.NT_EXPORT_NAME);
    
     
    セキュリティ・マネージャがインストールされている場合、そのレルムを提供せずにKerberos name要素を含むGSSNameを作成するには、ServicePermissionを付与する必要があり、そのアクセス許可のサービス・プリンシパルがKerberosネーム要素レルム内にある必要があります。 たとえば、createName("user", NT_USER_NAME)の結果にKerberos名前要素user@EXAMPLE.COMが含まれている場合、サービス主体host/www.example.com@EXAMPLE.COM (および任意のアクション)を持つServicePermissionを付与する必要があります。 それ以外の場合は、GSSException.FAILUREエラー・コードを含むGSSExceptionがスローされます。
    導入されたバージョン:
    1.4
    関連項目:
    export(), equals(GSSName), GSSManager.createName(String, Oid), GSSManager.createName(String, Oid, Oid), GSSManager.createName(byte[], Oid)
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static Oid NT_ANONYMOUS
      匿名のエンティティを表す名前型です。
      static Oid NT_EXPORT_NAME
      エクスポートされた名前を示す名前型です。exportメソッドによって生成されます。
      static Oid NT_HOSTBASED_SERVICE
      ホスト・ベースのサービスの名前型を示すOIDです。
      static Oid NT_MACHINE_UID_NAME
      ローカル・システム上のユーザーに対応する数値ユーザーIDを示す名前型です。
      static Oid NT_STRING_UID_NAME
      ローカル・システム上のユーザーの数値ユーザーIDを表す、数字の文字列を示す名前型です。
      static Oid NT_USER_NAME
      ローカル・システム上の特定のユーザーを示す名前型です。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      GSSName canonicalize​(Oid mech)
      特定のメカニズムに対して標準化される名前を作成します。
      boolean equals​(Object another)
      このGSSNameオブジェクトを、GSSNameである可能性がある別のオブジェクトと比較します。
      boolean equals​(GSSName another)
      2つのGSSNameオブジェクトを比較して、それらが同じエンティティを参照しているかどうかを検査します。
      byte[] export​()
      標準化されたメカニズム名(MN)を連続するバイト表現として返します。この表現は、承認機能が名前をバイト単位に直接比較するときに適しています。
      Oid getStringNameType​()
      この名前のプリント可能な表現の名前型を返します。 toStringメソッドからは、この名前型で返されます。
      int hashCode​()
      このGSSNameのハッシュ・コード値を返します。
      boolean isAnonymous​()
      この名前オブジェクトが匿名のエンティティを表しているかどうかテストします。
      boolean isMN​()
      この名前オブジェクトがメカニズム名(MN)を表しているかどうかテストします。
      String toString​()
      GSSNameオブジェクトのテキスト表現を返します。
    • フィールドの詳細

      • NT_HOSTBASED_SERVICE

        static final Oid NT_HOSTBASED_SERVICE
        ホスト・ベースのサービスの名前型を示すOIDです。 この名前型は、ホスト・コンピュータに関連付けられたサービスを表すために使用します。 この名前型は、「service」と「hostname」という2つの要素で作成し、service@hostnameの形式になります。

        これは次のOID値を表します。
        { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) service_name(4) }

      • NT_USER_NAME

        static final Oid NT_USER_NAME
        ローカル・システム上の特定のユーザーを示す名前型です。

        これは次のOID値を表します。
        { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) user_name(1) }

      • NT_MACHINE_UID_NAME

        static final Oid NT_MACHINE_UID_NAME
        ローカル・システム上のユーザーに対応する数値ユーザーIDを示す名前型です(Uidなど)。(Uidなど)。

        これは次のOID値を表します。
        { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) machine_uid_name(2) }

      • NT_STRING_UID_NAME

        static final Oid NT_STRING_UID_NAME
        ローカル・システム上のユーザーの数値ユーザーIDを表す、数字の文字列を示す名前型です。

        これは次のOID値を表します。
        { iso(1) member-body(2) United States(840) mit(113554) infosys(1) gssapi(2) generic(1) string_uid_name(3) }

      • NT_ANONYMOUS

        static final Oid NT_ANONYMOUS
        匿名のエンティティを表す名前型です。

        これは次のOID値を表します。
        { 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 3(gss-anonymous-name) }

      • NT_EXPORT_NAME

        static final Oid NT_EXPORT_NAME
        エクスポートされた名前を示す名前型です。exportメソッドによって生成されます。

        これは次のOID値を表します。
        { 1(iso), 3(org), 6(dod), 1(internet), 5(security), 6(nametypes), 4(gss-api-exported-name) }

    • メソッドの詳細

      • equals

        boolean equals​(GSSName another)
                throws GSSException
        2つのGSSNameオブジェクトを比較して、それらが同じエンティティを参照しているかどうかを検査します。
        パラメータ:
        another - この名前と比較するGSSName
        戻り値:
        2つの名前に同じ基本要素が1つ以上含まれている場合は、true。 どちらかの名前が匿名のエンティティを表している場合は、false。
        例外:
        GSSException - 名前を比較できない場合、次のメジャー・エラー・コードを含む。GSSException.BAD_NAMETYPE, GSSException.FAILURE
      • equals

        boolean equals​(Object another)
        このGSSNameオブジェクトを、GSSNameである可能性がある別のオブジェクトと比較します。 このメソッドの動作は、GSSExceptionをスローしない点を除いて、equalsと同じです。エラーが発生した場合はfalseを返します。
        オーバーライド:
        equals、クラス: Object
        パラメータ:
        another - この名前と比較するオブジェクト
        戻り値:
        比較するオブジェクトがGSSNameで、2つの名前が同じエンティティを参照している場合はtrue。
        関連項目:
        equals(GSSName)
      • export

        byte[] export​()
               throws GSSException
        標準化されたメカニズム名(MN)を連続するバイト表現として返します。この表現は、承認機能が名前をバイト単位に直接比較するときに適しています。 MNでない名前の場合、NAME_NOT_MNステータス・コードが設定されたGSSExceptionがスローされることがあります。 例外がスローされないようにするには、システム固有のデフォルトのメカニズムを使用して名前を正規化してから、エクスポートする必要があります。 エクスポートされた名前オブジェクトは、ヘッダーとトレーラから構成されます。ヘッダーには、名前を認証したメカニズムを識別するOIDが含まれます。トレーラには、名前自体が含まれます。トレーラの構文は、各メカニズムの仕様によって定義されます。 出力バッファのヘッダーの形式は、RFC 2743に指定されています。

        エクスポートされた名前は、大きなアクセス制御リストで使用します。アクセス制御リストが大きい場合は、各名前に対してGSSNameオブジェクトを作成し、ACLからequalsメソッドを呼び出すときのオーバーヘッドが大きくなることがあります。

        エクスポートされた名前を再インポートするには、byte配列のファクトリ・メソッドGSSManager.createNameを使用し、名前型のオブジェクト識別子としてNT_EXPORT_NAMEを指定します。 その結果として返されるGSSName名もMNです。

        戻り値:
        エクスポートされた名前を含むbyte[]。 RFC 2743には、このbyte配列に使用する、メカニズムに依存しないエクスポートされた名前オブジェクトの形式が定義されている。
        例外:
        GSSException - 次のメジャー・エラー・コードを含む。GSSException.BAD_NAME, GSSException.BAD_NAMETYPE, GSSException.FAILURE
      • toString

        String toString​()
        GSSNameオブジェクトのテキスト表現を返します。 出力された名前の形式(返される文字列の構文を決定する)を取り出す場合は、getStringNameTypeメソッドを使用します。
        オーバーライド:
        toString、クラス: Object
        戻り値:
        プリント可能な形式でこの名前を表現するString。
      • getStringNameType

        Oid getStringNameType​()
                       throws GSSException
        この名前のプリント可能な表現の名前型を返します。 toStringメソッドからは、この名前型で返されます。
        戻り値:
        toStringメソッドから返される名前の名前空間を表すOID。
        例外:
        GSSException - 次のメジャー・エラー・コードを含む。GSSException.FAILURE
      • isAnonymous

        boolean isAnonymous​()
        この名前オブジェクトが匿名のエンティティを表しているかどうかテストします。
        戻り値:
        匿名の名前である場合はtrue、そうでない場合はfalse。
      • isMN

        boolean isMN​()
        この名前オブジェクトがメカニズム名(MN)を表しているかどうかテストします。 MNは、特定のメカニズムの基本名前要素を含むGSSNameです。
        戻り値:
        MNである場合はtrue、そうでない場合はfalse。