JavaTM 2 Platform
Standard Ed. 5.0

javax.security.sasl
クラス Sasl

java.lang.Object
  上位を拡張 javax.security.sasl.Sasl

public class Sasl
extends Object

SASL クライアントおよびサーバを作成するための static クラスです。

このクラスは、SASL クライアントおよびサーバの検索、ロード、インスタンス化のポリシーを定義します。

たとえば、アプリケーションやライブラリは、次のような処理により SASL クライアントを取得します。

 SaslClient sc = Sasl.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbackHandler);
これで、インスタンスを使用して認証接続を作成する準備ができました。

同様に、サーバは次のようなコードを使用して SASL サーバを取得します。

 SaslServer ss = Sasl.createSaslServer(mechanism, protocol, serverName, props, callbackHandler);

導入されたバージョン:
1.5

フィールドの概要
static String MAX_BUFFER
          最大受信バッファサイズを SaslClient/SaslServer のバイト数で指定するプロパティの名前です。
static String POLICY_FORWARD_SECRECY
          セッション間で転送秘密を実装するような機構が必要かどうかを指定するプロパティの名前です。
static String POLICY_NOACTIVE
          能動的攻撃 (辞書攻撃以外) を受けやすい機構が許可されているかどうかを指定するプロパティの名前です。
static String POLICY_NOANONYMOUS
          匿名ログインを受け入れる機構が許可されているかどうかを指定するプロパティの名前です。
static String POLICY_NODICTIONARY
          受動的辞書攻撃を受けやすい機構が許可されているかどうかを指定するプロパティの名前です。
static String POLICY_NOPLAINTEXT
          単純な受動的攻撃 (PLAIN など) を受けやすい機構が許可されているかどうかを指定するプロパティの名前です。
static String POLICY_PASS_CREDENTIALS
          クライアント資格を渡す機構が必要かどうかを指定するプロパティの名前です。
static String QOP
          使用する保護品質を指定するプロパティの名前です。
static String RAW_SEND_SIZE
          最大送信 raw バッファサイズを SaslClient/SaslServer のバイト数で指定するプロパティの名前です。
static String REUSE
          認証済みのセッション情報を再利用するかどうかを指定するプロパティの名前です。
static String SERVER_AUTH
          サーバがクライアントを認証する必要があるかどうかを指定するプロパティの名前です。
static String STRENGTH
          使用する暗号の強度を指定するプロパティの名前です。
 
メソッドの概要
static SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh)
          指定のパラメータを使用して SaslClient を作成します。
static SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh)
          指定された機構の SaslServer を作成します。
static Enumeration<SaslClientFactory> getSaslClientFactories()
          SaslClient を作成するための既知のファクトリの列挙を取得します。
static Enumeration<SaslServerFactory> getSaslServerFactories()
          SaslServer を作成するための既知のファクトリの列挙を取得します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

QOP

public static final String QOP
使用する保護品質を指定するプロパティの名前です。このプロパティには、クライアントまたはサーバがサポートする保護品質値を順番にコンマで区切って並べたリストが含まれます。 リスト内の先頭に近いクライアントまたはサーバほど、優先順位が高くなります。このプロパティが未指定の場合、デフォルトの保護品質値は auth になります。この定数の値は「javax.security.sasl.qop」 です。

関連項目:
定数フィールド値

STRENGTH

public static final String STRENGTH
使用する暗号の強度を指定するプロパティの名前です。このプロパティには、クライアントまたはサーバがサポートする暗号強度値を順番にコンマで区切って並べたリストが含まれます。 リスト内の先頭に近いクライアントまたはサーバほど、優先順位が高くなります。これらの値の意味は実装ごとに設定できることになっています。たとえば、暗号強度値に一致する符号化方式を選択するため、Java 暗号化拡張機能 (JCE) と JCE 対応の機構を使用するアプリケーションがあります。
このプロパティが未指定の場合、デフォルトの強度は high,medium,low になります。また、この定数の値は javax.security.sasl.strength です。

関連項目:
定数フィールド値

SERVER_AUTH

public static final String SERVER_AUTH
サーバがクライアントを認証する必要があるかどうかを指定するプロパティの名前です。サーバがクライアントを認証する必要がある場合、このプロパティには true が含まれます。そうでない場合は false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.server.authentication です。

関連項目:
定数フィールド値

MAX_BUFFER

public static final String MAX_BUFFER
最大受信バッファサイズを SaslClient/SaslServer のバイト数で指定するプロパティの名前です。このプロパティには、整数の文字列表現が含まれます。
このプロパティが未指定の場合、デフォルトのサイズは機構によって定義されます。
この定数の値は javax.security.sasl.maxbuffer です。

関連項目:
定数フィールド値

RAW_SEND_SIZE

public static final String RAW_SEND_SIZE
最大送信 raw バッファサイズを SaslClient/SaslServer のバイト数で指定するプロパティの名前です。このプロパティには、整数の文字列表現が含まれます。このプロパティの値は、認証交換中にクライアントサーバ間でネゴシエートされます。
この定数の値は javax.security.sasl.rawsendsize です。

関連項目:
定数フィールド値

REUSE

public static final String REUSE
認証済みのセッション情報を再利用するかどうかを指定するプロパティの名前です。機構実装が認証済みのセッション情報を再利用できる場合、このプロパティには true が含まれます。機構実装による認証済みセッション情報の再利用が許可されていない場合は false が含まれます。true の設定はヒントに過ぎません。再利用が可能であっても、実際に再利用が行われるとは限りません。なぜなら、再利用機能をサポートする機構が存在しない、再利用可能な情報の有効期限が切れた、ピアが再利用機能のサポートを拒否しているなど、さまざまな理由で再利用を実行できない可能性があるからです。 プロパティのデフォルト値は false です。この定数の値は javax.security.sasl.reuse です。 SASL クライアント/サーバインスタンスの作成に必要なその他のすべてのパラメータおよびプロパティは、このプロパティが指定されているかどうかに関係なく提供が義務付けられています。言い換えれば、再利用を見越して情報を提供することはできません。再利用機能をサポートする機構実装では、キャッシュサイズ、タイムアウト、再利用可能性の基準といった各種係数により、実装をカスタマイズすることができます。こうしたカスタマイズは実装に依存しています。

関連項目:
定数フィールド値

POLICY_NOPLAINTEXT

public static final String POLICY_NOPLAINTEXT
単純な受動的攻撃 (PLAIN など) を受けやすい機構が許可されているかどうかを指定するプロパティの名前です。そのような機構が許可されていない場合、このプロパティには true、許可されている場合には false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.policy.noplaintext です。

関連項目:
定数フィールド値

POLICY_NOACTIVE

public static final String POLICY_NOACTIVE
能動的攻撃 (辞書攻撃以外) を受けやすい機構が許可されているかどうかを指定するプロパティの名前です。そのような機構が許可されていない場合、このプロパティには true、許可されている場合には false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.policy.noactive です。

関連項目:
定数フィールド値

POLICY_NODICTIONARY

public static final String POLICY_NODICTIONARY
受動的辞書攻撃を受けやすい機構が許可されているかどうかを指定するプロパティの名前です。そのような機構が許可されていない場合、このプロパティには true、許可されている場合には false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.policy.nodictionary です。

関連項目:
定数フィールド値

POLICY_NOANONYMOUS

public static final String POLICY_NOANONYMOUS
匿名ログインを受け入れる機構が許可されているかどうかを指定するプロパティの名前です。そのような機構が許可されていない場合、このプロパティには true、許可されている場合には false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.policy.noanonymous です。

関連項目:
定数フィールド値

POLICY_FORWARD_SECRECY

public static final String POLICY_FORWARD_SECRECY
セッション間で転送秘密を実装するような機構が必要かどうかを指定するプロパティの名前です。「転送秘密」が実装されている場合は、セッションの開始後、後続のセッションを開始するために必要な情報は自動的には提供されません。セッション間で転送秘密を実装する機構が必要な場合、このプロパティには true、不要な場合には false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.policy.forward です。

関連項目:
定数フィールド値

POLICY_PASS_CREDENTIALS

public static final String POLICY_PASS_CREDENTIALS
クライアント資格を渡す機構が必要かどうかを指定するプロパティの名前です。そのような機構が必要な場合、このプロパティには true、不要な場合には false が含まれます。デフォルトは false です。
この定数の値は javax.security.sasl.policy.credentials です。

関連項目:
定数フィールド値
メソッドの詳細

createSaslClient

public static SaslClient createSaslClient(String[] mechanisms,
                                          String authorizationId,
                                          String protocol,
                                          String serverName,
                                          Map<String,?> props,
                                          CallbackHandler cbh)
                                   throws SaslException
指定のパラメータを使用して SaslClient を作成します。 このメソッドは、JCA セキュリティプロバイダフレームワーク (『Java Cryptography Architecture API Specification & Reference』を参照) を使用して、SaslClient 実装を検索し、選択します。 まず、SaslClientFactory サービスおよび指定の SASL 機構の登録済みセキュリティプロバイダから、SaslClientFactory インスタンスのリストを取得します。次に、リストに記載されている各ファクトリインスタンスに対して createSaslClient() を呼び出し、null 以外の SaslClient インスタンスが生成された時点で終了します。終了時には、null 以外の SaslClient インスタンスが返されます。検索の結果、null 以外の SaslClient インスタンスの生成に失敗した場合は null が返されます。

SaslClientFactory のセキュリティプロバイダは、JCA セキュリティプロバイダフレームワーク鍵に、次の形式で登録されます。
SaslClientFactory.mechanism_name
値は、javax.security.sasl.SaslClientFactory の実装のクラス名になります。 たとえば、ファクトリクラス com.wiz.sasl.digest.ClientFactory を含むプロバイダが DIGEST-MD5 機構をサポートしている場合、JCA にはエントリ SaslClientFactory.DIGEST-MD5 com.wiz.sasl.digest.ClientFactory が登録されます。

セキュリティサービスプロバイダのインストールと構成については、『Java Cryptography Architecture API Specification & Reference』を参照してください。

パラメータ:
mechanisms - 試用する機構のリストで、null 以外。GSSAPI や CRAM-MD5 など、IANA に登録済みの SASL 機構名から成る
authorizationId - 認証に使用されるプロトコル依存の識別情報で、null の可能性もある。null または空の場合、サーバはクライアントの認証資格から承認 ID を得る。SASL 認証に成功すると、指定されたエントリにアクセスが許可される
protocol - 認証対象のプロトコルの文字列名。null 以外。ldap などがある
serverName - 認証情報を要求するサーバの完全修飾ホスト名。null 以外
props - SASL 機構の選択と選択された機構の認証交換の設定に使用されるプロパティのセット。null の可能性もある。たとえば、props に含まれる Sasl.POLICY_NOPLAINTEXT プロパティの値が true の場合、単純な受動的攻撃を受けやすい SASL 機構が選択されることはない。このクラスに宣言されている標準プロパティ以外に、機構固有のプロパティなど、その他のプロパティも含めることができる。選択された機構と関連性のないプロパティは無視される
cbh - SASL 機構が、認証を完了するためにアプリケーションやライブラリからさらに詳しい情報を取得するとき使用するコールバックハンドラ。null の可能性もある。たとえば、呼び出し側の認証 ID、パスワード、およびレルムを要求するような SASL 機構がある。認証 ID の要求には、NameCallback が使用される。パスワードの要求には、PasswordCallback が使用される。レルムの要求には、選択可能なレルムのリストが存在する場合は RealmChoiceCallback、レルムを指定する必要がある場合は RealmCallback が使用される
戻り値:
指定のパラメータで作成された SaslClient で、null の可能性もある。null の場合、SaslClient を作成する SaslClientFactory が見つからない@exception SaslException エラーのため SaslClient を作成できない場合
例外:
SaslException

createSaslServer

public static SaslServer createSaslServer(String mechanism,
                                          String protocol,
                                          String serverName,
                                          Map<String,?> props,
                                          CallbackHandler cbh)
                                   throws SaslException
指定された機構の SaslServer を作成します。 このメソッドは、JCA セキュリティプロバイダフレームワーク (『Java Cryptography Architecture API Specification & Reference』を参照) を使用して、SaslServer 実装を検索し、選択します。 まず、SaslServerFactory サービスおよび指定の SASL 機構の登録済みセキュリティプロバイダから、SaslServerFactory インスタンスのリストを取得します。次に、リストに記載されている各ファクトリインスタンスに対して createSaslServer() を呼び出し、null 以外の SaslServer インスタンスが生成された時点で終了します。終了時には、null 以外の SaslServer インスタンスが返されます。検索の結果、null 以外の SaslServer インスタンスの生成に失敗した場合は null が返されます。

SaslServerFactory のセキュリティプロバイダは、JCA セキュリティプロバイダフレームワーク鍵に、次の形式で登録されます。
SaslServerFactory.mechanism_name
値は、javax.security.sasl.SaslServerFactory の実装のクラス名になります。 たとえば、ファクトリクラス com.wiz.sasl.digest.ServerFactory を含むプロバイダが DIGEST-MD5 機構をサポートしている場合、JCA にはエントリ SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory が登録されます。

セキュリティサービスプロバイダのインストールと構成については、『Java Cryptography Architecture API Specification & Reference』を参照してください。

パラメータ:
mechanism - IANA に登録済みの SASL 機構名。null 以外。GSSAPI や CRAM-MD5 などがある
protocol - 認証対象のプロトコルの文字列名。null 以外。ldap などがある
serverName - サーバの完全修飾ホスト名。null 以外
props - SASL 機構の選択と選択された機構の認証交換の設定に使用されるプロパティのセット。null の可能性もある。たとえば、props に含まれる Sasl.POLICY_NOPLAINTEXT プロパティの値が true の場合、単純な受動的攻撃を受けやすい SASL 機構が選択されることはない。このクラスに宣言されている標準プロパティ以外に、機構固有のプロパティなど、その他のプロパティも含めることができる。選択された機構と関連性のないプロパティは無視される
cbh - SASL 機構が、認証を完了するためにアプリケーションやライブラリからさらに詳しい情報を取得するとき使用するコールバックハンドラ。null の可能性もある。たとえば、呼び出し側の認証 ID、パスワード、およびレルムを要求するような SASL 機構がある。認証 ID の要求には、NameCallback が使用される。パスワードの要求には、PasswordCallback が使用される。レルムの要求には、選択可能なレルムのリストが存在する場合は RealmChoiceCallback、レルムを指定する必要がある場合は RealmCallback が使用される
戻り値:
指定のパラメータで作成された SaslServer で、null の可能性もある。null の場合、SaslServer を作成する SaslServerFactory が見つからない@exception SaslException エラーのため SaslServer を作成できない場合
例外:
SaslException

getSaslClientFactories

public static Enumeration<SaslClientFactory> getSaslClientFactories()
SaslClient を作成するための既知のファクトリの列挙を取得します。このメソッドは、createSaslClient() と同じアルゴリズムを使用してファクトリを検索します。

戻り値:
SaslClient を作成するための既知のファクトリの列挙で、null 以外
関連項目:
createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map, javax.security.auth.callback.CallbackHandler)

getSaslServerFactories

public static Enumeration<SaslServerFactory> getSaslServerFactories()
SaslServer を作成するための既知のファクトリの列挙を取得します。このメソッドは、createSaslServer() と同じアルゴリズムを使用してファクトリを検索します。

戻り値:
SaslServer を作成するための既知のファクトリの列挙で、null 以外
関連項目:
createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map, javax.security.auth.callback.CallbackHandler)

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。