前提条件 Oracleコネクタを使用すると、Oracleデータベース認証またはKerberos認証を使用して、SSL対応のOracleデータベースに接続できます。
SSLが有効なOracleデータベースに接続するには、
SSL設定 を参照してください。
Kerberos認証を使用してOracleデータベースに接続するには、
Kerberos認証 を参照してください。
SSL設定 Oracleデータベース認証またはKerberos認証を使用した安全なOracle接続を使用して、SSL対応のOracleデータベースに接続する前に、組織管理者は前提条件のタスクを実行する必要があります。
1 トラストストア証明書を作成します。2 キーストア証明書を作成します。Oracleデータベースでクライアント認証が有効になっている場合にのみ、この操作を実行します。トラストストアへのサーバー証明書の追加 サーバー証明書をクライアントのトラストストアに追加して、安全なOracle接続を確立します。
次のkeytoolコマンドを使用して、サーバー証明書をクライアントのトラストストアに追加します。
keytool -import -trustcacerts -alias ca -file <server certificate with path> -keystore <name of truststore to be generated with extension> -storepass <password for truststore> -storetype <store type>
例として、C:\SSL\oracle にサーバー証明書oratls_server.cert があるとします。
1 次のコマンドを実行し、トラストパスワード「password」を使用してトラストストア truststore.jks を作成します。
C:\SSL\oracle> keytool -import -trustcacerts -alias ca -file oratls_server.cert -keystore truststore.jks -storepass password -storetype JKS
2 次のコマンドを実行し、トラストストアパスワード「password」を使用してPKCS12トラストストア truststore.p12 を作成します。
C:\SSL\oracle> keytool -import -trustcacerts -alias ca -file oratls_server.cert -keystore truststore.p12 -storepass password -storetype PKCS12
キーストア証明書の作成 Oracleサーバーでクライアント認証が有効になっている場合にキーストア証明書を作成します。Oracle接続を確立するため、クライアント証明書をすべて含むキーストア証明書を作成する必要があります。
次の手順を実行してキーストア証明書を作成します。
1 OracleクライアントをOracleのWebサイトからダウンロードし、インストールします。
2 次のコマンドを実行してOracleウォレットを作成します。
orapki wallet create -wallet <Path where wallet is to be created> -auto_login -pwd <wallet password>
3 次のコマンドを実行して、Oracleウォレットへの自己署名クライアント証明書を作成します。
orapki wallet add -wallet <Path where wallet is to be created> -dn "CN=<common name>, OU=<organization unit>, O=<organization>, L=<locality>, ST=<state>, C=<country>" -keysize <key size in bits> -self_signed-validity <number of days> -pwd <wallet password>
コマンドが実行され、指定された場所にpkcs12証明書が作成されます。
サーバー証明書から、CN=<共通名>、OU=<組織単位>, O=<組織>、L=<市区町村>、ST=<都道府県>、C=<国>、keysize <キーサイズ(ビット)>、self_signed -validity <日数>、およびpwd <ウォレットパスワード> の値を指定する必要があります。
4 次のorapkiコマンドを実行して自己署名クライアント証明書をエクスポートします。
orapki wallet export -wallet <wallet path> -dn "CN=<common name>, OU=<organization unit>, O=<organization>, L=<locality>, ST=<state>, C=<country>" -cert <Name of the exported certificate with path>
-dn コマンドでクライアント証明書を一意に特定します。サーバーウォレットにはインストール済みのクライアント証明書が複数含まれているためです。
5 自己署名クライアント証明書をサーバーOracleウォレットにインストールします。
注: 自己署名クライアント証明書をサーバーデータベースOracleウォレットに追加しないと、クライアント認証は失敗します。
6 サーバー証明書を、信頼されている証明書としてOracleウォレットに追加します。
次のコマンドを実行してサーバー証明書を追加します。
orapki wallet add -wallet <wallet path> -trusted_cert -cert <Name of the server certificate with path> -pwd <wallet password>
注: すべてのorapkiコマンドに同じウォレットパスワードを使用する必要があります。
サンプルタスク
次のタスクを実行してキーストア証明書を作成します。
a 次のコマンドを実行してOracleウォレットを作成します。C:\app\client\ksuwalka\product\12.1.0\client_1\BIN>orapki wallet create -wallet C:\app\client\ksuwalka\product\12.1.0\client_1\owm\wallet -auto_login -pwd oracle4u
b 次のコマンドを実行して、Oracleウォレットへの自己署名クライアント証明書を作成します。C:\app\client\ksuwalka\product\12.1.0\client_1\BIN>orapki wallet add -wallet C:\app\client\ksuwalka\product\12.1.0\client_1\owm\wallet -dn "CN=inw1pc07_kriti, OU=DEV, O=infa,L=blr, ST=ka, C=IN" -keysize 2048 -self_signed -validity 3650 -pwd oracle4u
ewallet.p12 証明書が次の場所に作成されます。C:\app\client\ksuwalka\product\12.1.0\client_1\owm\wallet
c 次のorapkiコマンドを実行して自己署名クライアント証明書をエクスポートします。C:\app\client\ksuwalka\product\12.1.0\client_1\BIN>orapki wallet export -wallet C:\app\client\ksuwalka\product\12.1.0\client_1\owm\wallet -dn "CN=inw1pc07_kriti, OU=DEV, O=infa,L=blr, ST=ka, C=IN" -cert C:\Users\ksuwalka\Desktop\client_inw1pc07.cert
d サーバー証明書を、信頼されている証明書としてOracleウォレットに追加します。次のコマンドを実行してサーバー証明書を追加します。C:\app\client\ksuwalka\product\12.1.0\client_1\BIN>orapki wallet add -wallet C:\app\client\ksuwalka\product\12.1.0\client_1\owm\wallet -trusted_cert -cert C:\SSL\oracle\oratls_server.cert -pwd oracle4u
キーストアC:\app\client\ksuwalka\product\12.1.0\client_1\owm\wallet\ewallet.p12 を、キーストアパスワードoracle4u で使用できるようになりました。
Kerberos認証 必要な構成ファイルをSecure Agentマシンに配置することで、Kerberos認証を使用してOracleデータベースに接続できます。また、Kerberos認証を使用して、SSL対応のOracleデータベースに接続することもできます。
Oracleに接続するためにKerberos認証を設定する場合は、次のガイドラインを考慮してください。
• ホステッドエージェントまたはサーバーレスランタイム環境は使用できません。• 使用するSecure AgentとデータベースサーバーがKDCサーバーに登録されていることを確認してください。• krb5.confファイルに複数のKDCを追加することはできません。• 複数のKerberosプリンシパルユーザーに対して資格情報キャッシュファイルを生成することはできません。Kerberos認証の設定 Kerberos認証を使用してLinuxまたはWindows上のOracleに接続する前に、組織の管理者は前提条件のタスクを実行する必要があります。
1 Java Authentication and Authorization Service構成ファイル(JAAS)を設定するには、次のタスクを実行します。a Secure Agentマシン上にJAAS構成ファイルを作成します。b 以下のエントリをJAAS構成ファイルに追加します。JDBC_DRIVER_01 { com.sun.security.auth.module.Krb5LoginModule required useTicketCache=true; };
2 krb5.conf ファイルを設定するには、次のタスクを実行します。a Secure Agentマシン上にkrb5.conf ファイルを作成します。b Key Distribution Center(KDC)と管理サーバーの詳細を、次の形式でkrb5.conf ファイルに追加します。[libdefaults] default_realm = <Realm name> forwardable = true ticket_lifetime = 24h [realms] <REALM NAME> = { kdc = <Location where KDC is installed> admin_server = <Location where KDC is installed> } [domain_realm] <domain name or host name> = <Domain name or host name of Kerberos> <domain name or host name> = <Domain name or host name of Kerberos>
3 Secure Agentマシン上で次の環境変数を設定します。必要な環境変数については、
環境変数の設定 を参照してください。
4 Secure Agentを再起動します。5 Secure Agentマシン上で資格情報キャッシュファイルを生成し、Kerberos認証を使用してOracleに接続するには、次のタスクを実行します。a Secure Agentマシンで次のコマンドを実行し、Oracleユーザー名とレルム名を指定します。Kinit <user name>@<realm_name>
b 要求されたら、Kerberosプリンシパルユーザーのパスワードを入力します。環境変数の設定 Kerberos認証を使用してOracleに接続するには、Secure Agentマシン上で必要な環境変数を設定する必要があります。
以下の環境変数を設定します。
• setenv KRB5CCNAME <資格情報キャッシュファイルの絶対パスとファイル名> • setenv KRB5_CONFIG <Kerberos構成ファイルの絶対パス>\krb5.conf • setenv JAASCONFIG <JAAS構成ファイルの絶対パス>\<ファイル名>.conf 環境変数を設定した後に、Secure Agentを再起動する必要があります。
または、Oracle接続の作成時に環境変数を追加することもできます。
接続を設定してKerberos認証を使用する場合に環境変数を追加するには、Oracle接続の[メタデータの詳細接続プロパティ] フィールドにKRB5CONFIG 、KRB5CCNAME 、およびJAASCONFIG プロパティを追加する必要があります。
例えば、次の形式でプロパティを追加します。
KRB5_CONFIG=<Absolute path of the Kerberos configuration file>\krb5.conf;KRB5CCNAME=<Absolute path of the credential cache file>/<File name>;JAASCONFIG=<Absolute path of the JAAS config file>\<File name>.conf
注: キーと値のペアはそれぞれセミコロンで区切ってください。