アプリケーションでトラステッド・コンテキストを使用可能にして、
アプリケーション・サーバーと DB2® データベース・サーバーとの対話方法を改善します。
アプリケーションを介して DB2 データベースに接続するクライアントの
ID レコードを保持するには、
トラステッド接続を使用します。トラステッド接続では、ユーザーの
ID を基にアクセスの許可が行われるので、よりセキュアな環境を提供することができます。DB2 では、
ユーザー ID を切り替えるときにパスワードが必要なトラステッド接続のオプションが提供されています。認証が必要なトラステッド接続を使用できるようにアプリケーション・サーバーを構成したり、
認証が必要なトラステッド・コンテキストを利用するための独自のコードをプラグインしたりできます。
始める前に
アプリケーション・サーバーでトラステッド接続を正しく構成するために、DB2 データベースのトラステッド・コンテキストの使用可能化に関するトピックを参照してください。
このタスクについて
トラステッド・コンテキストを作成するときに WITH AUTHENTICATION オプションが指定されている場合、
データベースでは、認証トークンにエンド・ユーザーの ID
を指定する必要があります。データベースは、エンド・ユーザーを認証し、
要求の処理を許可する前に、
データベースにアクセスするためのユーザー許可を検証します。
エンド・ユーザーの ID は、RACF® ID である必要があります。
手順
- DB2 データ・ソースで
useTrustedContextWithAuthentication カスタム・プロパティーを true に設定します。
- とクリックします。
- 構成するデータ・ソースの名前をクリックします。
- 「追加プロパティー」見出しで、「カスタム・プロパティー」を
クリックします。
- 「新規」をクリックします。
- 必要なフィールドに入力します。 以下の情報を使用してください。
名前 |
値 |
useTrustedContextWithAuthentication |
true |
useTrustedContextWithAuthentication カスタム・プロパティーが true に設定されていない場合、
アプリケーション・サーバーは、実行時に認証を行うことなく、DB2
トラステッド接続の再利用の実装を提供します。この場合、
トラステッド・コンテキスト・フィーチャーを使用するためにユーザーが何かを提供する必要はありません。
- DB2 データベースでのトラステッド・コンテキストの使用可能化に関するトピックでの説明に従って、TrustedConnectionMapping のログイン構成を使用します。
- カスタム DataStoreHelper クラスの開発に関するトピックの説明に従って、DataStoreHelper
クラスを拡張し、getPasswordForUseWithTrustedContextWithAuthentication
メソッドの実装を提供します。 実行時に、
アプリケーション・サーバーはこのメソッドを呼び出して、
認証を行うトラステッド・コンテキストを使用可能に設定してあるときに、
トラステッド・コンテキスト
ID を切り替えるためにアプリケーション・サーバーが使用する必要のあるパスワードを戻します。このメソッドによって戻されるパスワードは、
アプリケーション・サーバーがトラステッド・コンテキスト ID を切り替えるときにデータベースに送信され、
パスワードはアプリケーション・サーバーで保存されません。
アプリケーション・サーバーは以下が
true である場合にのみ、このメソッドを呼び出します。
- useTrustedContextWithAuthentication データ・ソースのカスタム・プロパティーを true に設定します。
- TrustedConnectionMapping ログイン構成を使用します。
以下に、getPasswordForUseWithTrustedContextWithAuthentication メソッドの例を示します。public String getPasswordForUseWithTrustedContextWithAuthentication(String identityname, String realm)
throws SQLException
{
return customersOwnUtility().getPassword(identityname) // customers use their own
// implementation to get the password
}
トラブルの回避 (Avoid trouble): トラステッド接続の
ID を切り替えるパスワードを取得するために
DataStoreHelper クラスの getPasswordForUseWithTrustedContextWithAuthentication メソッドを上書きすることなく、
データ・ソースの useTrustedContextWithAuthentication カスタム・プロパティーを使用可能にすることはできません。getPasswordForUseWithTrustedContextWithAuthentication メソッドの実装を提供しない場合、
アプリケーション・サーバーにより実行時に例外がスローされ、以下のメッセージが表示されます。
TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR=DSRA7033E:
You cannot enable the useTrustedContextWithAuthentication custom property
for the data source without overwriting the getPasswordForUseWithTrustedContextWithAuthentication
DataStoreHelper. TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR.explanation=The useTrustedContextWithAuthentication custom property is enabled, but the implementation code for the DataStoreHelper method that will return the password that the application server will use to switch the identity is not provided.
TRUSTED_WITH_AUTHENTICATION_IMPLEMENTATION_ERROR.useraction=Overwrite
the getPasswordForUseWithTrustedContextWithAuthentication DataStoreHelper
method and provide the implementation code that will return the password,
or set the useTrustedContextWithAuthentication custom property for
the data source to false.
gotcha