IBM Data Server Driver for JDBC and SQLJ 使用時のセキュリティー
IBM® Data Server Driver for JDBC and SQLJ を使用する際には、 securityMechanism、 Connection 、 DataSource プロパティ、または db2.jcc.securityMechanism グローバル構成プロパティの値を指定して、セキュリティメカニズムを選択します。
- DriverManager インターフェースを使用している場合は、 java.util.Properties パラメータを含む getConnection メソッドのフォームを呼び出す前に、 java.util.Properties オブジェクトに
securityMechanismを設定してください。 - DataSource インターフェースを使用しており、独自の DataSource オブジェクトを作成およびデプロイしている場合、DataSource オブジェクトを作成した後で DataSource.setSecurityMechanism メソッドを呼び出します。
DB2Connection.getDB2SecurityMechanism メソッドを呼び出すことにより、接続に有効なセキュリティー・メカニズムを判別できます。
以下の表は、サポートされているセキュリティメカニズムと、 IBM Data Server Driver for JDBC and SQLJ サポートするセキュリティメカニズムと、それらのセキュリティメカニズムをサポートするデータソースを
| セキュリティー・メカニズム | Linux、UNIX、Windowsシステム上の Db2 でサポートされています | 支援を受けている Db2 for z/OS® | 支援を受けている IBM Informix® | Db2 for IBM i でサポート |
|---|---|---|---|---|
| ユーザー ID およびパスワード | はい | はい | はい | はい |
| ユーザー ID のみ | はい | はい | はい | はい |
| ユーザーIDと暗号化されたパスワード 1 | はい | はい | はい | はい4 |
| 暗号化されたユーザー ID 1 | はい2 | はい | いいえ | いいえ |
| 暗号化されたユーザーIDと暗号化されたパスワード 1 | はい | はい | 第5 | はい4 |
| 暗号化されたユーザーIDおよび暗号化されたセキュリティ上重要なデータ1 | いいえ | はい | いいえ | いいえ |
| 暗号化されたユーザーID、暗号化されたパスワード、暗号化されたセキュリティ上重要なデータ1 | はい | はい | いいえ | いいえ |
| Kerberos3 | はい | はい | いいえ | はい |
| プラグイン3 | はい | いいえ | いいえ | いいえ |
| 証明書認証 3 | いいえ | はい | いいえ | いいえ |
| トークン認証 | はい | いいえ | いいえ | いいえ |
注:
|
||||
次の表は、 IBM Data Server Driver for JDBC and SQLJ がサポートするセキュリティー・メカニズムと、 securityMechanism 各セキュリティ メカニズムを指定するためのプロパティ。
- セキュリティメカニズムを
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9)に明示的に設定し、代替のセキュリティメカニズムによる再試行プロセスが定義されていない場合、ドライバはCLEAR_TEXT_PASSWORD_SECURITY(3)を使用して接続を再試行しません。 ドライバーはReason: Security mechanism not supportedで例外をスローします。 - データサーバーが稼働している z/OS システム上でICSFまたは暗号プロセッサが有効になっていない場合、 Db2 for z/OS データサーバーが実行されている
Reason: Local security service non-retryable errorシステム上で、ICSFまたは暗号プロセッサが有効になっていない場合、ドライバは とともにエラーを返します。 ドライバーは、CLEAR_TEXT_PASSWORD_SECURITY(3) を使用して新しいソケットを開くことで、接続を再試行します。 - Java ランタイム環境または Java SDK で FIPS 140-3 暗号化セキュリティが有効になっており、データサーバーへの接続にデフォルトで
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9) が使用されている場合、ドライバーはCaused by: java.lang.ExceptionInInitializerErrorの例外をスローします。 ドライバーはCLEAR_TEXT_PASSWORD_SECURITY(3)で接続を再試行します。 - Javaランタイム環境またはJava SDKのバージョンが8以下の場合、ポリシーファイルが期限切れとなり、データサーバーへの接続に
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9)がデフォルトで使用されると、ドライバーがjava.security.InvalidKeyExceptionをスローします。 ドライバーはCLEAR_TEXT_PASSWORD_SECURITY(3)で接続を再試行します。 - Db2 for z/OS または Db2 on Linux、UNIX、Windowsシステムデータサーバーへの接続でSSLが使用される場合、接続では
CLEAR_TEXT_PASSWORD_SECURITY(3)デフォルト。 セキュリティメカニズムを明示的に別の値に設定した場合、ドライバは明示的に設定された値を使用します。
- デフォルトのセキュリティー・メカニズムは
ENCRYPTED_USER_AND_PASSWORD_SECURITYです。 データサーバーがENCRYPTED_USER_AND_PASSWORD_SECURITYをサポートしていないが、CLEAR_TEXT_PASSWORD_SECURITYをサポートしている場合、ドライバーはセキュリティメカニズムをCLEAR_TEXT_PASSWORD_SECURITYに変更し、データサーバーへの接続を試みます。CLEAR_TEXT_PASSWORD_SECURITYを使用してドライバーが接続を再試行すると、パフォーマンスが低下する可能性があります。 パフォーマンスへの影響を最小限に抑えるには、以下のいずれかの操作を行ってください- クライアント側でセキュリティメカニズムを CLEAR_TEXT_PASSWORD_SECURITY に明示的に設定します。
- ENCRYPTED_USER_AND_PASSWORD_SECURITYをサポートするようにデータサーバーの設定を変更します。
CLEAR_TEXT_PASSWORD_SECURITYとENCRYPTED_USER_AND_PASSWORD_SECURITY以外のリクエスト側とデータサーバー側でセキュリティメカニズムのサポートに不一致がある場合、エラーが発生します。 - サブシステムまたはデータ共有グループへの接続は、 Db2 for z/OS
ENCRYPTED_USER_AND_PASSWORD_SECURITY(9)のデフォルトのセキュリティメカニズムを使用するサブシステムまたはデータ共有グループへの接続は、 z/OS 統合暗号サービス機能(ICSF)が、各サブシステムまたはデータ共有メンバーがインストールされている z/OS システム上で有効になっている場合にのみ成功します。 ICSFは、ユーザーIDとパスワードの復号化に必要です。 ICSFがインストールされていない場合は、セキュリティメカニズムをCLEAR_TEXT_PASSWORD_SECURITY(3)に設定する必要があります。
バージョン 4.33 より前の IBM Data Server Driver for JDBC and SQLJ、デフォルトのセキュリティメカニズムは CLEAR_TEXT_PASSWORD_SECURITY (3)です。 データサーバーが CLEAR_TEXT_PASSWORD_SECURITY (3) をサポートせず、 ENCRYPTED_USER_AND_PASSWORD_SECURITY (9) をサポートしている場合、ドライバーはセキュリティメカニズムを ENCRYPTED_USER_AND_PASSWORD_SECURITY (9) に変更し、データサーバーへの接続を試みます。 リクエスト側とデータサーバー側でセキュリティメカニズムのサポートにその他の不一致がある場合、エラーが発生します。
| セキュリティー・メカニズム | securityMechanismプロパティー値 |
|---|---|
| ユーザー ID およびパスワード | DB2BaseDataSource.CLEAR_TEXT_PASSWORD_SECURITY (3) |
| ユーザー ID のみ | DB2BaseDataSource.USER_ONLY_SECURITY (4) |
| ユーザーIDと暗号化されたパスワード 1 | DB2BaseDataSource.ENCRYPTED_PASSWORD_SECURITY (7) |
| 暗号化されたユーザー ID 1 | DB2BaseDataSource.ENCRYPTED_USER_ONLY_SECURITY (16) |
| 暗号化されたユーザーIDと暗号化されたパスワード1, 2 | DB2BaseDataSource.ENCRYPTED_USER_AND_PASSWORD_SECURITY (9) |
| 暗号化されたユーザーIDおよび暗号化されたセキュリティ上重要なデータ1 | DB2BaseDataSource.ENCRYPTED_USER_AND_DATA_SECURITY (12) |
| 暗号化されたユーザーID、暗号化されたパスワード、暗号化されたセキュリティ上重要なデータ1 | DB2BaseDataSource.ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY (13) |
| Kerberos | DB2BaseDataSource.KERBEROS_SECURITY (11) |
| プラグイン | DB2BaseDataSource.PLUGIN_SECURITY (15) |
| 証明書認証 | DB2BaseDataSource.TLS_CLIENT_CERTIFICATE_SECURITY (18) |
| トークン認証 | DB2BaseDataSource.TOKEN_SECURITY (19) |
注:
|
|