Conexiones JDBC Thin con una cartera (mTLS)
Autonomous Database exige una conexión segura que utilice la seguridad de capa de transporte (TLSv1.2). Según las opciones de configuración de red, Autonomous Database soporta la autenticación mTLS y TLS.
Si utiliza TLS, en lugar de mTLS, para las conexiones que utilizan el controlador ligero JDBC con JDK8u162 o superior, no es necesaria una cartera. Las conexiones TLS están activadas para las siguientes configuraciones de red:
-
Solo acceso de punto final privado: configuración de red con un punto final privado
-
Acceso seguro solo desde IP y VCN permitidas: configuración con una lista de control de acceso (ACL)
If your Autonomous Database is on a public endpoint without any ACL, you can add
0.0.0.0/0
as your CIDR ACL and enable TLS authentication. Agregar0.0.0.0/0
como ACL de CIDR es idéntico a tener Autonomous Database en un punto final público sin ACL.
Consulte Acerca de la autenticación TLS para obtener más información.
- Requisitos de conexión de controlador JDBC Thin para conexiones con carteras (mTLS)
Las aplicaciones que utilizan el controlador JDBC Thin soportan la autenticación TLS y TLS mutua (mTLS). Para utilizar la autenticación mTLS es necesario proporcionar credenciales de base de datos Oracle, incluidas las carteras de Oracle o los archivos KeyStore (JKS) de Java al conectarse a la base de datos. - Uso de una cadena de conexión URL de JDBC con controlador fino JDBC y carteras
La cadena de conexión se encuentra en el archivotnsnames.ora
, que forma parte de la descarga de credenciales de cliente. El archivotnsnames.ora
contiene los nombres de servicio predefinidos. Cada servicio tiene su propio alias TNS y cadena de conexión. - Uso de una conexión JDBC con el controlador JDBC 18.3
Las aplicaciones que utilizan el controlador JDBC Thin se pueden conectar a bases de datos de Autonomous Database mediante carteras de Oracle o Java KeyStore (JKS). - Conexión mediante el controlador JDBC Thin 12.2 o anterior
Si utiliza el controlador JDBC 12.2.0.2 o posterior, defina las propiedades de Java antes de iniciar la aplicación. Normalmente, las propiedades se definen en el script de inicio de la aplicación. - Conexiones JDBC Thin con un proxy HTTP
Si el cliente está protegido por un firewall y la configuración de red requiere un proxy HTTP para conectarse a Internet, debe utilizar JDBC Thin Client 18.1 o superior, lo que permite las conexiones mediante proxies HTTP.
Tema principal: Conexión con el controlador JDBC Thin
Requisitos de conexión de controlador JDBC Thin para conexiones con carteras (mTLS)
Las aplicaciones que utilizan el controlador JDBC Thin soportan la autenticación TLS y TLS mutua (mTLS). Para utilizar la autenticación mTLS es necesario proporcionar credenciales de base de datos Oracle, incluidas las carteras de Oracle o los archivos KeyStore (JKS) de Java al conectarse a la base de datos.
Realice los siguientes pasos antes de conectarse a la base de datos:
Tema principal: Conexiones JDBC Thin con una cartera (mTLS)
Uso de una cadena de conexión URL de JDBC con controlador fino JDBC y carteras
La cadena de conexión se encuentra en el archivo tnsnames.ora
, que forma parte de la descarga de credenciales de cliente. El archivo tnsnames.ora
contiene los nombres de servicio predefinidos. Cada servicio tiene su propio alias TNS y cadena de conexión.
dbname_high
como alias TNS y una cadena de conexión en 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)))
Defina la ubicación de tnsnames.ora
con la propiedad TNS_ADMIN
de una de las siguientes formas:
- Como parte de la cadena de conexión (solo con el controlador JDBC 18.3 o posterior)
- Como propiedad del sistema,
-Doracle.net.tns_admin
- Como propiedad de conexión (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
)
Con el controlador JDBC 18.3, la cadena de conexión incluye el alias TNS y la propiedad de conexión TNS_ADMIN
.
Cadena de conexión de ejemplo con el controlador JDBC 18.3 (Linux)
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Cadena de conexión de ejemplo con el controlador JDBC 18.3 (Windows):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"
En la propiedad de conexión TNS_ADMIN
se especifica lo siguiente:
- La ubicación de
tnsnames.ora
. - La ubicación de los archivos de Oracle Wallet (
ewallet.sso
,ewallet.p12
) o Java KeyStore (JKS) (truststore.jks
,keystore.jks
). - La ubicación de
ojdbc.properties
. Este archivo contiene las propiedades de conexión necesarias para utilizar carteras de Oracle o Java KeyStore (JKS).
Si utiliza controladores JDBC 12.2.0.1 o anteriores, la cadena de conexión solo contiene el alias TNS. Para conectarse con controladores JDBC antiguos:
- Defina la ubicación de
tnsnames.ora
, ya sea como una propiedad del sistema con-Doracle.net.tns_admin
o como una propiedad de conexión (OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
). - Defina las propiedades de conexión relacionadas con la cartera o JKS además de
TNS_ADMIN
.
Por ejemplo, en este caso, define el alias TNS en DB_URL
sin la parte TNS_ADMIN
como:
DB_URL=”jdbc:oracle:thin:@dbname_high”
Consulte Nombres de servicio de base de datos predefinidos para Autonomous Database para obtener más información.
Tema principal: Conexiones JDBC Thin con una cartera (mTLS)
Uso de una conexión JDBC con el controlador JDBC 18.3
Las aplicaciones que utilizan el controlador JDBC Thin se pueden conectar a instancias de Autonomous Database mediante carteras de Oracle o Java KeyStore (JKS).
Uso de Oracle Wallet
Para utilizar Java y el controlador JDBC Thin 18.3 para conectarse a Autonomous Database con Oracle Wallet, haga lo siguiente:
-
Asegurarse de que se cumplen los requisitos: consulte Requisitos de la conexión del controlador JDBC Thin para conexiones con carteras (mTLS) para obtener más información.
-
Verifique la conexión: puede utilizar un programa Java, un servlet o IDE para verificar la conexión a la base de datos. Una prueba sencilla es descargar DataSourceSample.java o UCPSample.java de Ejemplos de código JDBC y actualizar la URL de conexión para que tenga el alias TNS necesario y transfiera
TNS_ADMIN
, proporcionando la ruta paratnsnames.ora
y los archivos de cartera. Además, en el código de origen de ejemplo, actualice el nombre de usuario y la contraseña de la base de datos. Por ejemplo:DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Nota
Si utiliza Microsoft Active Directory con una base de datos, en el código de origen de ejemplo, actualice el nombre de usuario con el nombre de usuario de Active Directory y actualice la contraseña con la contraseña de usuario de Active Directory. Consulte Uso de Microsoft Active Directory con Autonomous Database para obtener más información. -
Definir la ubicación de la cartera: el archivo de propiedades
ojdbc.properties
se carga previamente con la propiedad de conexión relacionada con la cartera.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Nota
El archivoojdbc.properties
no se modifica. El valor deTNS_ADMIN
determina la ubicación de la cartera. -
Crear y ejecutar: compile y ejecute el ejemplo para obtener una conexión correcta. Asegúrese de tener
oraclepki.jar
,osdt_core.jar
yosdt_cert.jar
enclasspath
. Por ejemplo:java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
La parte de la cartera de conexión automática del archivo zip de credenciales de cliente descargado de Autonomous Database elimina la necesidad de que la aplicación utilice la autenticación con nombre de usuario/contraseña.
Uso de Java KeyStore
Para utilizar Java y el controlador ligero JDBC 18.3 para conectarse a Autonomous Database con Java KeyStore (JKS), realice lo siguiente:
-
Asegurarse de que se cumplen los requisitos: consulte Requisitos de la conexión del controlador JDBC Thin para conexiones con carteras (mTLS) para obtener más información.
-
Haga clic en los detalles de la base de datos: puede utilizar un programa Java, un servlet o IDE para comprobar la conexión a la base de datos. Una prueba sencilla es descargar DataSourceSample.java o UCPSample.java de Ejemplos de código JDBC. En este ejemplo, utilice la URL de conexión como se muestra. Tenga en cuenta que la conexión
DB_URL
contiene el alias TNS, por ejemplo,dbname_high
presente entnsnames.ora
. Puede proporcionar la ruta del archivotnsnames.ora
mediante la propiedadTNS_ADMIN
como se muestra en la URL. Asegúrese de utilizar el nombre de usuario y la contraseña de la base de datos relacionados con la base de datos.DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Nota
Si utiliza Microsoft Active Directory con Autonomous Database, asegúrese de cambiar el código de origen de ejemplo para utilizar el nombre de usuario de Active Directory y la contraseña de usuario de Active Directory. Consulte Uso de Microsoft Active Directory con Autonomous Database para obtener más información. -
Defina las propiedades de conexión relacionadas con JKS: agregue las propiedades de conexión relacionadas con JKS al archivo
ojdbc.properties
. Las contraseñas keyStore y truststore son las contraseñas especificadas al descargar el archivo.zip
de credenciales de cliente.Para utilizar la conectividad SSL en lugar de Oracle Wallet, especifique los archivos del almacén de claves y del almacén de confianza y su contraseña respectiva en el archivo
ojdbc.properties
de la siguiente forma:# 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
Nota
Asegúrese de comentar la propiedad relacionada con la cartera enojdbc.properties
. Por ejemplo:# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
-
Crear y ejecutar: compile y ejecute el ejemplo para obtener una conexión correcta. Por ejemplo:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Tema principal: Conexiones JDBC Thin con una cartera (mTLS)
Conexión mediante el controlador JDBC Thin 12.2 o anterior
Si utiliza el controlador JDBC 12.2.0.2 o superior, defina las propiedades de Java antes de iniciar la aplicación. Normalmente, las propiedades se definen en el script de inicio de la aplicación.
Si no puede utilizar los controladores JDBC más recientes de la versión 18.3, puede conectarse a Autonomous Database mediante 12.2.0.2 u otros controladores JDBC anteriores. Los controladores JDBC 12.2 o anteriores no son compatibles con el archivo ojdbc.properties
. Con versiones anteriores del controlador JDBC, debe transferir carteras o propiedades relacionadas con JKS como propiedades del sistema o como propiedades de conexión para establecer una conexión.
Uso de Oracle Wallet
Para utilizar Java y los controladores JDBC 12.2 o anteriores para conectarse a Autonomous Database con Oracle Wallet, haga lo siguiente:
-
Asegurarse de que se cumplen los requisitos: consulte Requisitos de la conexión del controlador JDBC Thin para conexiones con carteras (mTLS) para obtener más información.
-
Verifique la conexión: puede utilizar un programa Java, un servlet o IDE para verificar la conexión a la base de datos. Una prueba sencilla es descargar DataSourceSample.java o UCPSample.java de Ejemplos de código JDBC y actualizar la URL de conexión para que tenga el alias TNS necesario. Además, actualice el código de origen de ejemplo para utilizar el nombre de usuario y la contraseña de la base de datos. Por ejemplo:
DB_URL="jdbc:oracle:thin:@dbname_high”
Nota
Si utiliza Microsoft Active Directory con Autonomous Database, actualice el código de origen de ejemplo para utilizar el nombre de usuario de Active Directory y la contraseña de usuario de Active Directory. Consulte Uso de Microsoft Active Directory con Autonomous Database para obtener más información. -
Defina la ubicación de la cartera: agregue
OraclePKIProvider
al final de la lista de proveedores en el archivojava.security
(este archivo forma parte de la instalación de JRE ubicada en$JRE_HOME/jre/lib/security/java.security
), que normalmente tiene el siguiente aspecto:security.provider.14=oracle.security.pki.OraclePKIProvider
-
Crear y ejecutar: compile y ejecute el ejemplo para obtener una conexión correcta. Asegúrese de tener
oraclepki.jar
,osdt_core.jar
yosdt_cert.jar
enclasspath
. Además, debe transferir las propiedades de conexión. Actualice las propiedades con la ubicación donde se encuentran los archivos de cartera ytnsnames.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
Estos son ejemplos del sistema Windows. Agregue un carácter de continuación
\
si está configurando propiedades –D
en varias líneas en UNIX (Linux o Mac).
Uso de Java KeyStore
Para utilizar Java y los controladores JDBC Thin 12.2 o anteriores para conectarse a Autonomous Database con Java KeyStore (JKS), haga lo siguiente:
-
Asegurarse de que se cumplen los requisitos: consulte Requisitos de la conexión del controlador JDBC Thin para conexiones con carteras (mTLS) para obtener más información.
-
Verifique la conexión: puede utilizar un programa Java, un servlet o IDE para verificar la conexión a la base de datos. Una prueba sencilla es descargar DataSourceSample.java o UCPSample.java de ejemplos de código JDBC y actualizar la URL de conexión para que tenga el alias TNS necesario y transfiera
TNS_ADMIN
, proporcionando la ruta paratnsnames.ora
y actualice la URL de conexión para que tenga el alias TNS necesario. Además, en el código de origen de ejemplo, actualice el nombre de usuario y la contraseña de la base de datos. Por ejemplo:DB_URL="jdbc:oracle:thin:@dbname_high”
Nota
Si utiliza Microsoft Active Directory con Autonomous Database, actualice el código de origen de ejemplo para utilizar el nombre de usuario de Active Directory y la contraseña de usuario de Active Directory. Consulte Uso de Microsoft Active Directory con Autonomous Database para obtener más información. -
Crear y ejecutar: compile y ejecute el ejemplo para obtener una conexión correcta. Debe transferir las propiedades de conexión como se muestra. Actualizar las propiedades con la ubicación donde se colocan los archivos
tnsnames.ora
y JKS. Si desea transferir estas propiedades de conexión mediante programación, consulte DataSourceForJKS.java. Por ejemplo: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
Tema principal: Conexiones JDBC Thin con una cartera (mTLS)
Conexiones JDBC Thin con un proxy HTTP
Si el cliente está protegido por un firewall y la configuración de red requiere un proxy HTTP para conectarse a Internet, debe utilizar JDBC Thin Client 18.1 o superior, lo que permite las conexiones mediante proxies HTTP.
Para conectarse a Autonomous Database mediante un proxy HTTPS, abra y actualice el archivo tnsnames.ora
. Agregue el nombre de host del proxy HTTP (https_proxy) y el puerto (https_proxy_port) a la cadena de conexión. Sustituya los valores por la información de proxy HTTPS. Por ejemplo:
-
Agregue el nombre de host y el puerto del proxy HTTP a las definiciones de conexión en
tnsnames.ora
. Debe agregar los parámetros https_proxy y https_proxy_port en la sección de direcciones de las definiciones de conexión. Por ejemplo, con lo siguiente se define el proxy HTTP enproxyhostname
y el puerto de proxy HTTP en80
; sustituya estos valores por la información de proxy 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)
)
)
-
Las versiones de cliente JDBC Thin anteriores a la 18.1 no admiten conexiones mediante proxy HTTP.
-
La conexión correcta depende de configuraciones de proxy específicas y el rendimiento de las transferencias de datos dependerá de la capacidad de proxy. Oracle no recomienda el uso de esta función en entornos de producción en los que el rendimiento sea fundamental.
-
Puede que la configuración de
tnsnames.ora
para el proxy HTTP no sea suficiente, dependiendo de la configuración de red y las políticas de seguridad de su organización. Por ejemplo, algunas redes necesitan un nombre de usuario y una contraseña para el proxy HTTP. -
En todos los casos, póngase en contacto con el administrador de red para abrir conexiones de salida a hosts en el dominio
oraclecloud.com
mediante el puerto relevante sin pasar por un proxy HTTP.
Tema principal: Conexiones JDBC Thin con una cartera (mTLS)