public class Sasl extends Object
このクラスは、SASLクライアントおよびサーバーの検索、ロード、インスタンス化のポリシーを定義します。
たとえば、アプリケーションやライブラリは、次のような処理によりSASLクライアントを取得します。
これで、インスタンスを使用して認証接続を作成する準備ができました。SaslClient sc = Sasl.createSaslClient(mechanisms, authorizationId, protocol, serverName, props, callbackHandler);
同様に、サーバーは次のようなコードを使用してSASLサーバーを取得します。
SaslServer ss = Sasl.createSaslServer(mechanism, protocol, serverName, props, callbackHandler);
修飾子と型 | フィールドと説明 |
---|---|
static String |
BOUND_SERVER_NAME
バインドされていないサーバーのバインド・サーバー名を指定するプロパティの名前です。
|
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 を作成するための既知のファクトリの列挙を取得します。 |
public static final String QOP
「auth」
- 認証のみ「auth-int」
- 認証に加え、整合性の保護「auth-conf」
- 認証に加え、整合性と機密性の保護「auth」
になります。この定数の値はjavax.security.sasl.qop
です。public static final String STRENGTH
low
medium
high
「high,medium,low」
になります。この定数の値はjavax.security.sasl.strength
です。public static final String SERVER_AUTH
true
が設定されます。それ以外の場合はfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.server.authentication
です。public static final String BOUND_SERVER_NAME
createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)
のserverName
引数にnullを設定した場合です。このプロパティには認証交換完了後のバインド先のホスト名が含まれます。これを使用できるのはサーバー側のみです。javax.security.sasl.bound.server.name
です。public static final String MAX_BUFFER
SaslClient
/SaslServer
のバイト数で指定するプロパティの名前です。このプロパティには、整数の文字列表現が含まれます。javax.security.sasl.maxbuffer
です。public static final String RAW_SEND_SIZE
SaslClient
/SaslServer
のバイト数で指定するプロパティの名前です。このプロパティには、整数の文字列表現が含まれます。このプロパティの値は、認証交換中にクライアント・サーバー間でネゴシエートされます。javax.security.sasl.rawsendsize
です。public static final String REUSE
public static final String POLICY_NOPLAINTEXT
true
、許可されている場合にはfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.policy.noplaintext
です。public static final String POLICY_NOACTIVE
true
、許可されている場合にはfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.policy.noactive
です。public static final String POLICY_NODICTIONARY
true
、許可されている場合にはfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.policy.nodictionary
です。public static final String POLICY_NOANONYMOUS
true
、許可されている場合にはfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.policy.noanonymous
です。public static final String POLICY_FORWARD_SECRECY
true
、不要な場合にはfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.policy.forward
です。public static final String POLICY_PASS_CREDENTIALS
true
、不要な場合にはfalse
が設定されます。デフォルトは"false"
です。javax.security.sasl.policy.credentials
です。public static SaslClient createSaslClient(String[] mechanisms, String authorizationId, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
SaslClient
を作成します。このメソッドは、「Java Cryptography Architecture API Specification & Reference」で説明されたJCAセキュリティ・プロバイダ・フレームワークを使用してSaslClient
実装の特定や選択を行います。まずこれは、SaslClientFactoryサービスおよび指定のSASLメカニズムの登録済セキュリティ・プロバイダから、SaslClientFactory
インスタンスの順序付けされたリストを取得します。次に、null以外のSaslClient
インスタンスが生成されるまで、リスト内の各ファクトリ・インスタンスに対してcreateSaslClient()
を呼び出します。これは、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以外。それぞれSASLメカニズムのIANA登録名(「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の場合は、SaslClientを作成するSaslClientFactory
が見つからないことを表す。SaslException
- エラーのためにSaslClient
を作成できない場合。public static SaslServer createSaslServer(String mechanism, String protocol, String serverName, Map<String,?> props, CallbackHandler cbh) throws SaslException
SaslServer
を作成します。このメソッドは、「Java Cryptography Architecture API Specification & Reference」で説明されたJCAセキュリティ・プロバイダ・フレームワークを使用して、SaslServer
実装の特定や選択を行います。まずこれは、SaslServerFactoryサービスおよび指定のメカニズムの登録済セキュリティ・プロバイダから、SaslServerFactory
インスタンスの順序付けられたリストを取得します。次に、null以外のSaslServer
インスタンスが生成されるまで、リスト内の各ファクトリ・インスタンスに対してcreateSaslServer()
を呼び出します。これは、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以外のメカニズム名。SASLメカニズムのIANA登録名(「GSSAPI」や「CRAM-MD5」など)である必要がある。protocol
- 認証対象のプロトコルの文字列名。null以外。ldapなどがある。serverName
- サーバーの完全修飾ホスト名またはnull(サーバーが特定のホスト名にバインドされていない場合)。バインドされていないサーバーをメカニズムが許可しない場合はSaslException
がスローされる。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
が見つからないことを表す。SaslException
- エラーのためにSaslServer
を作成できない場合。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<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)
public static Enumeration<SaslServerFactory> getSaslServerFactories()
SaslServer
を作成するための既知のファクトリの列挙を取得します。このメソッドは、createSaslServer()
と同じアルゴリズムを使用してファクトリを検索します。SaslServer
を作成するための既知のファクトリの列挙で、null以外。createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.