クライアント・サーバ・アクセス・モードでは、クライアント・アプリケーションをホストしているマシンにユーザの認証情報が存在します。この場合は、クライアントが以下のいずれの接続方法を使用しているかによって、認証情報の入手方法を指定する形式が異なります。
ODBC および Telnet
これらの接続ツールで使用される基盤の InterSystems IRIS コードでは、エンドユーザが既に資格情報を持っていることが前提となっています。したがって、プロンプトの表示は不要です。
Windows では、ドメインにログオンしているすべてのユーザごとに資格情報キャッシュがあります。
Windows 以外のオペレーティング・システムでは、そのユーザに対してオペレーティング・システムで Kerberos 認証を実行済みである場合、またはユーザが明示的に kinit を実行済みである場合に、そのユーザの認証情報キャッシュが存在します。 それ以外の場合は、キャッシュにユーザの資格情報が存在しないので、接続ツールは認証に失敗します。
Note:
オペレーティング・システムによっては、一部の接続ツールが使用できないことがあります。
Java および JDBC
Java および JDBC を使用する際には、2 つの異なる Java 実装 (Oracle による実装と IBM による実装) があります。2 つの実装に共通する動作もあれば、互いに異なる動作もあります。
どちらの実装でも、java.util.Properties クラスのインスタンスのプロパティに接続情報が格納されます。以下のプロパティがあります。
-
user — InterSystems IRIS サーバに接続しているユーザの名前。この値は特定の接続動作に対してのみ設定されます。
-
password — そのユーザのパスワード。この値は特定の接続動作に対してのみ設定されます。
-
service principal name — InterSystems IRIS サーバの Kerberos プリンシパル名。この値はすべての接続動作に対して設定されます。
-
connection security level — この接続に対して Kerberos が提供する保護のタイプ。1 は認証のみに Kerberos を使用すること、2 は認証およびクライアントとサーバ間で受け渡されるすべてのパケットの整合性の確保に Kerberos を使用すること、3 は認証、パケットの整合性、およびすべてのメッセージの暗号化に Kerberos を使用することをそれぞれ指定します。この値はすべての接続動作に対して設定されます。
以下の説明では、java.util.Properties クラスのインスタンスを connection_properties オブジェクトとして指定しています。各プロパティの値は、次のような connection_properties.put メソッドの呼び出しによって設定されます。
String principalName = "MyServer";
connection_properties.put("service principal name",principalName);
どちらの実装でも、認証情報に関連する動作は isclogin.conf ファイル内の特定のパラメータの値で決まります (このファイルの詳細は、"Kerberos で使用する Java クライアントまたは JDBC クライアントの設定" を参照)。
2 つの Java 実装の動作には、次の 2 つの相違点があります。
IBM の実装を使用しているクライアントに対する動作の指定
オプションは以下のとおりです。
-
認証情報のキャッシュを使用するには、useDefaultCcache パラメータの値を True に設定し、user プロパティと password プロパティには値を設定しません。資格情報キャッシュが使用できない場合は、例外が発生します。
-
プログラムによる処理で渡されるユーザ名とパスワードを使用するには、useDefaultCcache パラメータの値を False に設定し、user プロパティと password プロパティに該当の値を設定します。
-
ユーザにユーザ名とパスワードを要求するには、useDefaultCcache パラメータの値を False に設定し、user プロパティと password プロパティには値を設定しません。これらのプロパティに値を設定しないことにより、InterSystems IRIS に付属するライブラリのクラスを使用して、ユーザ名とパスワードを要求するプロンプトを生成できます。
Oracle の実装を使用しているクライアントに対する動作の指定
オプションは、以下のとおりです。
-
プログラムによる処理で渡されるユーザ名とパスワードを排他的に使用するには、useTicketCache パラメータの値を False に設定し、user プロパティと password プロパティに該当の値を設定します。
-
ユーザにユーザ名とパスワードを排他的に要求するには、useTicketCache パラメータの値を False に設定し、user プロパティと password プロパティには値を設定しません。これらのプロパティに値を設定しないことにより、InterSystems IRIS に付属するライブラリのクラスを使用して、ユーザ名とパスワードを要求するプロンプトを生成できます。
-
認証情報キャッシュを排他的に使用するには、useTicketCache パラメータの値を True に設定します。余分なアクションが発生しないようにするには、user プロパティと password プロパティに、存在しない値を設定します。これによってプロンプトが表示されなくなり、このプロパティの値に基づいて認証しようとしても必ず失敗するようになります。
-
認証情報キャッシュの使用を試し、それが使用できなかった場合にプログラムによる処理で渡されるユーザ名とパスワードを使用するには、useTicketCache パラメータの値を True に設定し、user プロパティと password プロパティに該当の値を設定します。資格情報キャッシュが存在しない場合は、これらのプロパティの値が使用されます。
-
認証情報キャッシュを試し、それが使用できなかった場合にユーザ名とパスワードを要求するには、useTicketCache パラメータを True に設定し、user プロパティと password プロパティには値を設定しません。資格情報キャッシュが存在しない場合は、InterSystems IRIS に付属するライブラリのクラスを使用して、ユーザ名とパスワードを要求するプロンプトを生成できます。