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』を参照してください。
メカニズムがjdk.sasl.disabledMechanismsセキュリティ・プロパティにリストされている場合、そのメカニズムは無視され、ネゴシエーションは行われません。
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がjdk.sasl.disabledMechanismsセキュリティ・プロパティにリストされている場合、これは無視され、このメソッドはnullを返します。
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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。