JavaTM Platform
Standard Ed. 6

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 CREDENTIALS
          使用する資格を指定するプロパティーの名前です。
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
使用する保護品質を指定するプロパティーの名前です。このプロパティーには、クライアントまたはサーバーがサポートする保護品質値を順番にコンマで区切って並べたリストが含まれます。qop 値は、次のいずれかです。 リスト内の先頭に近いクライアントまたはサーバーほど、優先順位が高くなります。このプロパティーが設定されない場合、デフォルトの 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 です。

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

CREDENTIALS

public static final String CREDENTIALS
使用する資格を指定するプロパティーの名前です。プロパティーは、機構固有の Java 資格オブジェクトを含んでいます。機構の実装がサポートするクラスかどうかはこのプロパティーの値を判定して検証します。プロパティーを使用して、委譲された認証をサポートする機構の資格を与えます。
この定数の値は javax.security.sasl.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 以外。いずれも IANA に登録された SASL 機構名。GSSAPI や CRAM-MD5 などがある
authorizationId - 承認に使用されるプロトコル依存の識別情報で、 null の可能性もある。 null または空の場合、サーバーは クライアントの認証資格から承認 ID を得る。 SASL 認証に成功すると、 指定されたエントリにアクセスが許可される
protocol - 認証対象のプロトコルの文字列名。null 以外。 ldap などがある
serverName - 認証情報を要求するサーバーの完全指定ホスト名。 null 以外
props - SASL 機構の選択と、 選択された SASL 機構の認証交換の設定を行うプロパティーのセット。 null の可能性もある。 たとえば、props に含まれる Sasl.POLICY_NOPLAINTEXT プロパティーの値が true の場合、 単純な受動的攻撃を受けやすい SASL 機構が選択されることはない。 このクラスに宣言されている標準プロパティー以外に、 機構固有のプロパティーなど、その他のプロパティーも含めることができる。 選択された機構と関連性のないプロパティー (String 形式でない鍵を持つマップエントリを含む) は無視される
cbh - SASL 機構が、認証を完了するために アプリケーションやライブラリからさらに詳しい情報を取得するとき使用するコールバックハンドラ。 null の可能性もある。たとえば、 呼び出し側の認証 ID、パスワード、および領域を要求するような SASL 機構がある。 認証 ID の要求には、NameCallback が使用される。 パスワードの要求には、PasswordCallback が使用される。 領域の要求には、選択可能な領域のリストが存在する場合は RealmChoiceCallback、 領域を指定する必要がある場合は RealmCallback が使用される
戻り値:
指定されたパラメータを使用する SaslClient。null の場合もある。null の場合、SaslServer を作成する SaslClientFactory が見つからない。
例外:
エラーのため - SaslClient を作成できない場合、SaslException をスローする
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 - null 以外。IANA に登録された SASL 機構名。GSSAPI や CRAM-MD5 などがある
protocol - 認証対象のプロトコルの文字列名。null 以外。 ldap などがある
serverName - サーバーの完全指定のホスト名。 null 以外
props - SASL 機構の選択と、 選択された SASL 機構の認証交換の設定を行うプロパティーのセット。 null の可能性もある。 たとえば、props に含まれる Sasl.POLICY_NOPLAINTEXT プロパティーの値が true の場合、 単純な受動的攻撃を受けやすい SASL 機構が選択されることはない。 このクラスに宣言されている標準プロパティー以外に、 機構固有のプロパティーなど、その他のプロパティーも含めることができる。 選択された機構と関連性のないプロパティー (String 形式でない鍵を持つマップエントリを含む) は無視される
cbh - SASL 機構が、認証を完了するために アプリケーションやライブラリからさらに詳しい情報を取得するとき使用するコールバックハンドラ。 null の可能性もある。たとえば、 呼び出し側の認証 ID、パスワード、および領域を要求するような SASL 機構がある。 認証 ID の要求には、NameCallback が使用される。 パスワードの要求には、PasswordCallback が使用される。 領域の要求には、選択可能な領域のリストが存在する場合は RealmChoiceCallback、 領域を指定する必要がある場合は RealmCallback が使用される
戻り値:
指定されたパラメータを使用する SaslServer。null の場合もある。null の場合、SaslServer を作成する SaslServerFactory が見つからない。
例外:
エラーのため - SaslServer を作成できない場合、SaslException をスローする
SaslException

getSaslClientFactories

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

戻り値:
SaslServer を作成するための既知のファクトリの列挙で、 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 Platform
Standard Ed. 6

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

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