機械翻訳について

ウォレット(mTLS)を使用したJDBC Thin接続

Autonomous Databaseでは、トランスポート・レイヤー・セキュリティ(TLSv1.2)を使用するセキュアな接続が必要です。 ネットワーク構成オプションに応じて、Autonomous DatabaseはmTLSおよびTLS認証をサポートしています。

ノート:

JDK8u162以上のJDBC Thinドライバを使用する接続に、mTLSではなくTLSを使用する場合、ウォレットは必要ありません。 TLS接続は、次のネットワーク構成に対して有効です: 


  • プライベート・エンドポイント・アクセスのみ: プライベート・エンドポイントを使用したネットワーク構成

  • 許可されたIPおよびVCNからのアクセスのみを保護: アクセス制御リスト(ACL)を使用した構成

    Autonomous DatabaseがACLを使用しないパブリック・エンドポイント上にある場合は、CIDR ACLとして0.0.0.0/0を追加し、TLS認証を有効にできます。 CIDR ACLとして0.0.0.0/0を追加することは、ACLを使用しないパブリック・エンドポイントでAutonomous Databaseを使用することと同じです。

詳細については、「mTLSまたはTLSを使用したAutonomous Databaseへのセキュアな接続」を参照してください。

JDBC Thinドライバ接続前提条件ウォレット(mTLS)接続

JDBC Thinドライバを使用するアプリケーションは、TLSおよび相互TLS (mTLS)認証をサポートします。 mTLS認証を使用するには、データベースへの接続時にOracleウォレットまたはJava KeyStore (JKS)ファイルを含むOracleデータベース資格証明を指定する必要があります。

データベースに接続する前に、次のステップを実行します:

  1. プロビジョニングAutonomous Database: データベースを作成し、データベース資格証明(ユーザー名とパスワード)を取得します。

    詳細については、「Autonomous Databaseインスタンスのプロビジョニング」を参照してください。

  2. 相互TLS接続の場合、クライアント資格証明をダウンロード: wallet_ databasename .zipを安全なロケーションに解凍します。 認可されたユーザーのみがこれらのファイルにアクセスできることを確認してください。

    Autonomous Database用のクライアント資格証明のダウンロードの詳細は、「クライアント資格証明(ウォレット)のダウンロード」を参照してください。

  3. JDKのバージョンでセキュリティを確認してください: JDK11、JDK10またはJDK9を使用している場合、このステップを行う必要はありません。 JDKバージョンがJDK8u162より小さい場合は、JCE Unlimited Strength Jurisdiction Policy Filesをダウンロードする必要があります。 インストール・ノートについては、READMEファイルを参照してください。 「Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8ダウンロード」からJCEファイルをダウンロードします。
  4. JDBCドライバ・バージョンの確認: サポートされているJDBC Thinドライバ(ojdbc8.jarおよびucp.jar)をダウンロードします。 追加のjarも必要です: Oracleウォレットで使用するためのoraclepki.jarosdt_core.jarおよびosdt_cert.jar

    サポートされているバージョンは次のとおりです:

    • JDBC Thin: 11.2.0.4(または、バグ28492769の個別パッチで後)、12.2 (またはバグ28492769の個別パッチで後)、18 (バグ28492769の個別パッチでベース・リリース以降)、19 (ベース・リリース以降)、または21 (ベース・リリース以降)

    JDBCのUniversal Connection Pool (UCP)機能を使用するアプリケーションでは、19.13以上のバージョン、または21.3以上のバージョンのJDBCドライバを使用することを強くお薦めします。 これらのバージョンには、計画メンテナンスがAutonomous Databaseで実行されたときにアプリケーションへの影響を最小限に抑えるための適切なドレイン動作が含まれています。 UCPは、アクティブ接続がメンテナンスの影響を受けないように、プール内の接続をプロアクティブに補充します。

    古いバージョンのドライバでは、サービス・リクエストを提出して「バグ31112088」のパッチをリクエストすることもできます。

    サポートされているバージョンをダウンロード: Oracle Database JDBCドライバおよびコンパニオンJarのダウンロード

JDBC ThinドライバおよびウォレットでのJDBC URL接続文字列の使用

接続文字列は、クライアント資格証明のダウンロードの一部であるファイルtnsnames.oraにあります。 tnsnames.oraファイルには、事前定義済のサービス名が含まれています。 各サービスには、それぞれ独自のTNS別名と接続文字列があります。

dbname_highをTNS別名として、接続文字列をtnsnames.oraのサンプル・エントリを次に示します:
dbname_high= (description=
      (address=(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com))
      (connect_data=(service_name=dbname_high.oraclecloud.com))(security=(ssl_server_dn_match=yes)))

次のいずれかの方法で、プロパティTNS_ADMINを使用してtnsnames.oraのロケーションを設定します:

  • 接続文字列の一部として(18.3以上のJDBCドライバの場合のみ)
  • システム・プロパティとしての-Doracle.net.tns_admin
  • 接続プロパティ(OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN)として

18.3 JDBCドライバを使用すると、接続文字列にはTNS別名とTNS_ADMIN接続プロパティが含まれます。

18.3 JDBCドライバを使用するサンプルの接続文字列(Linux):

DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"

18.3 JDBCドライバを使用するサンプルの接続文字列(Windows):

DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"

TNS_ADMIN接続プロパティでは、次の内容を指定します:

  • tnsnames.oraのロケーション。
  • Oracle Wallet (ewallet.ssoewallet.p12)またはJava KeyStore (JKS)ファイル(truststore.jkskeystore.jks)のロケーション。
  • ojdbc.propertiesのロケーション。 このファイルには、Oracle WalletsまたはJava KeyStore (JKS)の使用に必要な接続プロパティが含まれています。

ノート:

12.2.0.1または以前JDBCドライバを使用している場合、接続文字列にはTNSの別名のみが含まれます。 古いJDBCドライバを使用して接続するには:

  • tnsnames.oraのロケーションを、-Doracle.net.tns_adminを含むシステム・プロパティまたは接続プロパティ(OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN)として設定します。
  • TNS_ADMINに加えて、ウォレットまたはJKSに関連する接続プロパティを設定します。

たとえば、この場合、TNS_ADMIN部分を含まないDB_URLでTNS別名を次のように設定します:

DB_URL=”jdbc:oracle:thin:@dbname_high”

詳細は、「Autonomous Databaseのデータベース・サービス名」を参照してください。

18.3 JDBCドライバとのJDBC接続の使用

JDBCシン・ドライバを使用するアプリケーションは、Oracle WalletsまたはJava KeyStore (JKS)を使用してAutonomous Databaseに接続できます。

Oracle Walletの使用

Javaおよび18.3 JDBC Thin Driverを使用してOracle WalletでAutonomous Databaseに接続するには、次の手順を実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続前提条件ウォレット(mTLS)接続を参照してください。

  2. 接続の確認: Javaプログラム、サーブレットまたはIDEを使用して、データベースへの接続を検証できます。 単純なテストでは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードし、必要なTNS別名を持つように接続URLを更新して、TNS_ADMINを渡し、tnsnames.oraおよびウォレット・ファイルのパスを提供します。 また、サンプル・ソース・コード内では、データベースのユーザー名とパスワードが更新されます。 たとえば:

    DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"

    ノート:

    Microsoft Active Directoryを「データベース」とともに使用している場合、サンプル・ソース・コードでは、ユーザー名をActive Directoryユーザー名で更新し、パスワードをActive Directoryユーザー・パスワードで更新します。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. ウォレットのロケーションの設定: プロパティ・ファイルojdbc.propertiesは、ウォレット関連の接続プロパティを使用して事前にロードされています。

    oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))

    ノート:

    ojdbc.propertiesファイルは変更しません。 TNS_ADMINの値によってウォレットのロケーションが決定されます。
  4. コンパイルおよび実行: サンプルをコンパイルおよび実行して、接続を成功させます。 classpathoraclepki.jarosdt_core.jarおよびosdt_cert.jarがあることを確認してください。 たとえば:

    java –classpath
          ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample

ノート:

Autonomous Databaseダウンロード済クライアント資格証明zipファイルの自動ログイン・ウォレット部分により、アプリケーションでユーザー名/パスワード認証を使用する必要がなくなります。

Java KeyStoreの使用

Javaおよび18.3 JDBCシン・ドライバを使用してJava KeyStore (JKS)でAutonomous Databaseに接続するには、次の手順を実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続前提条件ウォレット(mTLS)接続を参照してください。

  2. データベース詳細の準備完了: Javaプログラム、サーブレットまたはIDEを使用して、データベースへの接続をチェックできます。 簡単なテストとは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードすることです。 このサンプルでは、次に示すように接続URLを使用します。 接続DB_URLには、tnsnames.oraに存在するdbname_highなど、TNS別名が含まれていることに注意してください。 URLに示すように、TNS_ADMINプロパティを介してtnsnames.oraファイルのパスを指定できます。 データベースに関連するデータベース・ユーザー名およびパスワードを使用してください。

    DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"

    ノート:

    Autonomous DatabaseでMicrosoft Active Directoryを使用している場合は、必ずActive Directoryユーザー名とActive Directoryユーザー・パスワードを使用するようにサンプル・ソース・コードを変更してください。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. JKSに関連する接続プロパティを設定: JKSに関連する接続プロパティをojdbc.propertiesファイルに追加します。 keyStoreおよびトラストストア・パスワードは、クライアント資格証明.zipファイルのダウンロード時に指定されたパスワードです。

    Oracle WalletではなくSSL接続を使用するには、次のように、キーストアおよびトラストストアのファイルおよびそのパスワードをojdbc.propertiesファイルで指定します:

    
    # Properties for using Java KeyStore (JKS)
    oracle.net.ssl_server_dn_match=true
    javax.net.ssl.trustStore==${TNS_ADMIN}/truststore.jks
    javax.net.ssl.trustStorePassword=password
    javax.net.ssl.keyStore==${TNS_ADMIN}/keystore.jks
    javax.net.ssl.keyStorePassword=password

    ノート:

    ojdbc.propertiesでは、ウォレット関連のプロパティにコメントを付けてください。 たとえば:
    
    # Property for using Oracle Wallets
    # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
  4. コンパイルおよび実行: サンプルをコンパイルおよび実行して、接続を成功させます。 たとえば:

    java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample

JDBC Thinドライバ12.2または以前を使用した接続

JDBCドライバの12.2.0.2または以前を使用している場合は、アプリケーションを起動する前にJavaプロパティを設定します。 通常、アプリケーション起動スクリプトでプロパティを設定します。

最新のJDBCドライバを使用できない場合は、12.2.0.2またはその他の古いJDBCドライバを使用してAutonomous Databaseに接続できます。 12.2または以前のJDBCドライバでは、ojdbc.propertiesファイルがサポートされません。 より古いJDBCドライバ・バージョンでは、ウォレットまたはJKS関連プロパティをシステム・プロパティとして渡すか、接続を確立する接続プロパティとして渡す必要があります。

Oracle Walletの使用

Javaおよび12.2以前のJDBCドライバを使用してOracle WalletでAutonomous Databaseに接続するには、次の手順を実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続前提条件ウォレット(mTLS)接続を参照してください。

  2. 接続の確認: Javaプログラム、サーブレットまたはIDEを使用して、データベースへの接続を検証できます。 簡単なテストは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードし、必要なTNS別名を使用するように接続URLを更新することです。 また、データベースのユーザー名とパスワードを使用するようにサンプル・ソース・コードを更新します。 たとえば:

    DB_URL="jdbc:oracle:thin:@dbname_high”

    ノート:

    Microsoft Active DirectoryをAutonomous Databaseと一緒に使用している場合は、Active Directoryユーザー名およびActive Directoryユーザー・パスワードを使用するようにサンプル・ソース・コードを更新します。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. ウォレットのロケーションの設定 : 一般的に次のようなファイルjava.security (このファイルは、$JRE_HOME/jre/lib/security/java.securityにあるJREインストールの一部)で、プロバイダ・リストの末尾にOraclePKIProviderを追加します:

    security.provider.14=oracle.security.pki.OraclePKIProvider
  4. コンパイルおよび実行: サンプルをコンパイルおよび実行して、接続を成功させます。 classpathoraclepki.jarosdt_core.jarおよびosdt_cert.jarがあることを確認してください。 また、接続プロパティを渡す必要があります。 tnsnames.oraおよびウォレット・ファイルがあるロケーションでプロパティを更新します。

    java –classpath 
    ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:.
    -Doracle.net.tns_admin=/users/test/wallet_dbname  
    -Doracle.net.ssl_server_dn_match=true  
    -Doracle.net.ssl_version=1.2  (Not required for 12.2)
    -Doracle.net.wallet_location= “(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/users/test/wallet_dbname)))” 
    UCPSample

ノート:

これらはWindowsシステムの例です。 UNIX (LinuxまたはMac)の複数の行で-Dプロパティを設定している場合は、\続き文字を追加します。

Java KeyStoreの使用

Javaおよび12.2以前のJDBCシン・ドライバを使用して、Java KeyStore (JKS)でAutonomous Databaseに接続するには、次の手順を実行します:

  1. 前提条件が満たされていることを確認してください: 詳細については、JDBC Thinドライバ接続前提条件ウォレット(mTLS)接続を参照してください。

  2. 接続の確認: Javaプログラム、サーブレットまたはIDEを使用して、データベースへの接続を検証できます。 簡単なテストは、DataSourceSample.javaまたはUCPSample.java「JDBCコード・サンプル」からダウンロードし、必要なTNS別名を持つように接続URLを更新し、TNS_ADMINを渡してtnsnames.oraのパスを提供し、必要なTNS別名を持つように接続URLを更新することです。 また、サンプル・ソース・コード内では、データベースのユーザー名とパスワードが更新されます。 たとえば:

    DB_URL="jdbc:oracle:thin:@dbname_high”

    ノート:

    Microsoft Active DirectoryをAutonomous Databaseと一緒に使用している場合は、Active Directoryユーザー名およびActive Directoryユーザー・パスワードを使用するようにサンプル・ソース・コードを更新します。 詳細については、「Microsoft Active DirectoryとAutonomous Databaseの使用」を参照してください。
  3. コンパイルと実行: サンプルをコンパイルおよび実行して、接続を成功させます。 接続プロパティを次のように渡す必要があります。 tnsnames.oraおよびJKSファイルが配置されるロケーションでプロパティを更新します。 これらの接続プロパティをプログラムで渡す場合は、DataSourceForJKS.javaを参照してください。 たとえば:

    java 
    -Doracle.net.tns_admin=/users/test/wallet_dbname
    -Djavax.net.ssl.trustStore=truststore.jks
    -Djavax.net.ssl.trustStorePassword=**********
    -Djavax.net.ssl.keyStore=keystore.jks    
    -Djavax.net.ssl.keyStorePassword=************   
    -Doracle.net.ssl_server_dn_match=true    
    -Doracle.net.ssl_version=1.2 // Not required for 12.2

HTTPプロキシを使用したJDBC Thin接続

クライアントがファイアウォールの内側にあり、ネットワーク構成でインターネットへの接続にHTTPプロキシが必要な場合は、HTTPプロキシを介した接続を可能にするJDBC Thinクライアント18.1以上を使用する必要があります。

HTTPSプロキシを介してAutonomous Databaseに接続するには、tnsnames.oraファイルを開いて更新します。 HTTPプロキシhostname(https_proxy)とポート(https_proxy_port)を接続文字列に追加します。 値をHTTPSプロキシ情報で置き換えます。 たとえば:

  1. tnsnames.oraの接続定義にHTTPプロキシのホスト名とポートを追加します。 接続定義のアドレス・セクションにhttps_proxyおよびhttps_proxy_portパラメータを追加する必要があります。 たとえば、次の例では、HTTPプロキシをproxyhostnameに設定し、HTTPプロキシ・ポートを80に設定します。これらの値を実際のHTTPプロキシ情報に置き換えてください。

db2022adb_high =
       (description=
             (address=
                   (https_proxy=proxyhostname)(https_proxy_port=80)(protocol=tcps)(port=1522)(host=adb.example.oraclecloud.com)
             )
             (connect_data=(service_name=db2022adb_high.adb.oraclecloud.com)
             )
             (security=security=(ssl_server_dn_match=yes)
             )
       )

ノート:

  • 18.1より前のJDBC Thinクライアント・バージョンでは、HTTPプロキシを介した接続はサポートされません。

  • 正常な接続は特定のプロキシ構成に依存し、データ転送のパフォーマンスはプロキシ容量に依存します。 Oracleは、パフォーマンスがクリティカルな本番環境ではこの機能の使用をお薦めしません。

  • tnsnames.oraをHTTPプロキシ用に構成しても、組織のネットワーク構成とセキュリティ・ポリシーによっては十分でない場合があります。 たとえば、一部のネットワークでは、HTTPプロキシのユーザー名とパスワードが必要です。

  • いずれの場合も、ネットワーク管理者に連絡し、HTTPプロキシを介さずに、関連するポートを使用してoraclecloud.comドメインのホストへのアウトバウンド接続をオープンしてください。