Connessioni thin JDBC con un wallet (mTLS)
Autonomous Database richiede una connessione sicura che utilizza TLSv1.2 (Transport Layer Security). A seconda delle opzioni di configurazione di rete, Autonomous Database supporta l'autenticazione mTLS e TLS.
Se si utilizza TLS anziché mTLS per le connessioni che utilizzano il driver thin JDBC con JDK8u162 o versione successiva, non è necessario un wallet. Le connessioni TLS sono abilitate per le seguenti configurazioni di rete:
-
Solo accesso endpoint privato: configurazione di rete con un endpoint privato
-
Accesso sicuro solo da IP e VCN consentiti: configurazione con una lista di controllo dell'accesso (ACL, Access Control List)
Se Autonomous Database si trova in un endpoint pubblico senza ACL, è possibile aggiungere
0.0.0.0/0
come ACL CIDR e abilitare l'autenticazione TLS. L'aggiunta di0.0.0.0/0
come ACL CIDR è identica a quella di Autonomous Database nell'endpoint pubblico senza ACL.
Per ulteriori informazioni, vedere Secure Connections to Autonomous Database con mTLS o con TLS.
- Connessioni dei prerequisiti per la connessione al driver JDBC Thin con i wallet (mTLS)
Le applicazioni che utilizzano il driver JDBC Thin supportano l'autenticazione TLS e l'autenticazione TLS reciproca (mTLS). L'utilizzo dell'autenticazione mTLS richiede di fornire le credenziali del database Oracle, inclusi i wallet Oracle o i file JKS (Java KeyStore) durante la connessione al database. - Utilizzo di una stringa di connessione URL JDBC con driver e wallet thin JDBC
La stringa di connessione si trova nel filetnsnames.ora
che fa parte del download delle credenziali client. Il filetnsnames.ora
contiene i nomi di servizio predefiniti. Ogni servizio ha il proprio alias TNS e la stringa di connessione. - Uso di una connessione JDBC con il driver JDBC 18.3
Le applicazioni che utilizzano il driver JDBC Thin possono connettersi ad Autonomous Databases utilizzando i wallet Oracle o JKS (Java KeyStore). - Connessione mediante il driver thin JDBC 12.2 o versione precedente
Se si utilizza il driver JDBC 12.2.0.2 o versione precedente, impostare le proprietà Java prima di avviare l'applicazione. In genere si impostano le proprietà nello script di avvio dell'applicazione. - Connessioni JDBC Thin con un proxy HTTP
Se il client è protetto da un firewall e la configurazione di rete richiede un proxy HTTP per la connessione a Internet, è necessario utilizzare il thin client JDBC 18.1 o versione successiva che abilita le connessioni tramite proxy HTTP.
Argomento padre: Connetti con driver thin JDBC
Connessioni dei prerequisiti per la connessione al driver thin JDBC con i wallet (mTLS)
Le applicazioni che utilizzano il driver JDBC Thin supportano l'autenticazione TLS e mTLS (Mutual TLS). L'utilizzo dell'autenticazione mTLS richiede di fornire le credenziali del database Oracle, inclusi i wallet Oracle o i file JKS (Java KeyStore) durante la connessione al database.
Eseguire i passi riportati di seguito prima di connettersi al database.
Argomento padre: Connessioni JDBC Thin con un wallet (mTLS)
Utilizzo di una stringa di connessione URL JDBC con il driver e i wallet Thin JDBC
La stringa di connessione si trova nel file tnsnames.ora
che fa parte del download delle credenziali client. Il file tnsnames.ora
contiene i nomi di servizio predefiniti. Ogni servizio ha il proprio alias TNS e la stringa di connessione.
dbname_high
come alias TNS e una stringa di connessione in 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)))
Impostare la posizione di tnsnames.ora
con la proprietà TNS_ADMIN
in uno dei modi seguenti:
- Come parte della stringa di connessione (solo con il driver JDBC 18.3 o più recente)
- Come proprietà di sistema,
-Doracle.net.tns_admin
- Come proprietà di connessione (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
)
Utilizzando il driver JDBC 18.3, la stringa di connessione include l'alias TNS e la proprietà di connessione TNS_ADMIN
.
Stringa di connessione di esempio che utilizza il driver JDBC 18.3 (Linux):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Stringa di connessione di esempio che utilizza il driver JDBC 18.3 (Windows):
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"
La proprietà di connessione TNS_ADMIN
specifica quanto segue:
- La posizione di
tnsnames.ora
. - La posizione dei file Oracle Wallet (
ewallet.sso
,ewallet.p12
) o Java KeyStore (JKS) (truststore.jks
,keystore.jks
). - La posizione di
ojdbc.properties
. Questo file contiene le proprietà di connessione necessarie per utilizzare i wallet Oracle o JKS (Java KeyStore).
Se si utilizzano driver JDBC 12.2.0.1 o precedenti, la stringa di connessione contiene solo l'alias TNS. Per connettersi utilizzando driver JDBC meno recenti:
- Impostare la posizione di
tnsnames.ora
come proprietà di sistema con-Doracle.net.tns_admin
o come proprietà di connessione (OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
). - Impostare le proprietà di connessione correlate al wallet o a JKS oltre a
TNS_ADMIN
.
Ad esempio, in questo caso si imposta l'alias TNS nel file DB_URL
senza la parte TNS_ADMIN
come indicato di seguito.
DB_URL=”jdbc:oracle:thin:@dbname_high”
Per ulteriori dettagli, vedere Nomi dei servizi di database per Autonomous Database.
Argomento padre: Connessioni JDBC Thin con un wallet (mTLS)
Uso di una connessione JDBC con il driver JDBC 18.3
Le applicazioni che utilizzano il driver JDBC Thin possono connettersi ad Autonomous Database utilizzando i wallet Oracle o JKS (Java KeyStore).
Uso di Oracle Wallet
Per utilizzare Java e il driver thin JDBC 18.3 per connettersi ad Autonomous Database con Oracle Wallet, effettuare le operazioni riportate di seguito.
-
Assicurarsi che i prerequisiti vengano soddisfatti: per ulteriori informazioni, vedere JDBC Thin Driver Connection Prerequisites Connections With Wallets (mTLS).
-
Verificare la connessione: è possibile utilizzare un programma Java, un servlet o IDE per verificare la connessione al database. Un test semplice consiste nel scaricare DataSourceSample.java o UCPSample.java da esempi di codice JDBC e aggiornare l'URL di connessione in modo da disporre dell'alias TNS richiesto e passare
TNS_ADMIN
, fornendo il percorso pertnsnames.ora
e i file del wallet. Inoltre, nel codice sorgente di esempio aggiornare il nome utente e la password del database. Ad esempio:DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Nota
Se si utilizza Microsoft Active Directory con un database, nel codice sorgente di esempio il nome utente viene aggiornato con il nome utente di Active Directory e la password viene aggiornata con la password utente di Active Directory. Per ulteriori informazioni, vedere Usa Microsoft Active Directory con Autonomous Database. -
Impostare la posizione del wallet: il file delle proprietà
ojdbc.properties
viene precaricato con la proprietà di connessione correlata al wallet.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Nota
Non si modifica il fileojdbc.properties
. Il valoreTNS_ADMIN
determina la posizione del wallet. -
Compila ed esegui: compilare ed eseguire l'esempio per ottenere una connessione riuscita. Assicurarsi di disporre di
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
nel fileclasspath
. Ad esempio:java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
La parte del wallet di login automatico del file zip delle credenziali client scaricato di Autonomous Database elimina la necessità che l'applicazione utilizzi l'autenticazione nome utente/password.
Uso di Java KeyStore
Per utilizzare Java e il driver thin JDBC 18.3 per connettersi ad Autonomous Database con JKS (Java KeyStore), effettuare le operazioni riportate di seguito.
-
Assicurarsi che i prerequisiti vengano soddisfatti: per ulteriori informazioni, vedere JDBC Thin Driver Connection Prerequisites Connections With Wallets (mTLS).
-
Preparare i dettagli del database: è possibile utilizzare un programma Java, un servlet o IDE per controllare la connessione al database. Un semplice test consiste nel scaricare DataSourceSample.java o UCPSample.java da esempi di codice JDBC. In questo esempio, utilizzare l'URL di connessione come mostrato. Si noti che la connessione
DB_URL
contiene l'alias TNS, ad esempiodbname_high
presente intnsnames.ora
. È possibile fornire il percorso per il filetnsnames.ora
tramite la proprietàTNS_ADMIN
come mostrato nell'URL. Assicurarsi di utilizzare il nome utente e la password del database correlati al database.DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Nota
Se si utilizza Microsoft Active Directory con Autonomous Database, assicurarsi di modificare il codice sorgente di esempio in modo che utilizzi il nome utente di Active Directory e la password utente di Active Directory. Per ulteriori informazioni, vedere Usa Microsoft Active Directory con Autonomous Database. -
Imposta proprietà di connessione correlate a JKS: aggiungere le proprietà di connessione correlate a JKS al file
ojdbc.properties
. La password keyStore e il truststore sono la password specificata durante il download del file delle credenziali client.zip
.Per utilizzare la connettività SSL anziché Oracle Wallet, specificare i file keystore e truststore e la rispettiva password nel file
ojdbc.properties
come indicato di seguito.# 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
Assicurarsi di commentare la proprietà relativa al wallet inojdbc.properties
. Ad esempio:# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
-
Compila ed esegui: compilare ed eseguire l'esempio per ottenere una connessione riuscita. Ad esempio:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Argomento padre: Connessioni JDBC Thin con un wallet (mTLS)
Connessione mediante JDBC Thin Driver 12.2 o precedente
Se si utilizza il driver JDBC 12.2.0.2 o una versione precedente, impostare le proprietà Java prima di avviare l'applicazione. In genere si impostano le proprietà nello script di avvio dell'applicazione.
Se non si è in grado di utilizzare i driver JDBC più recenti, è possibile connettersi ad Autonomous Database utilizzando 12.2.0.2 o altri driver JDBC precedenti. I driver JDBC 12.2 o precedenti non supportano il file ojdbc.properties
. Con le versioni precedenti del driver JDBC, è necessario passare i wallet o le proprietà correlate a JKS come proprietà di sistema o come proprietà di connessione per stabilire una connessione.
Uso di Oracle Wallet
Per utilizzare i driver JDBC Java e 12.2 o precedenti per connettersi ad Autonomous Database con Oracle Wallet, effettuare le operazioni riportate di seguito.
-
Assicurarsi che i prerequisiti vengano soddisfatti: per ulteriori informazioni, vedere JDBC Thin Driver Connection Prerequisites Connections With Wallets (mTLS).
-
Verificare la connessione: è possibile utilizzare un programma Java, un servlet o IDE per verificare la connessione al database. Un test semplice consiste nel scaricare DataSourceSample.java o UCPSample.java da esempi di codice JDBC e aggiornare l'URL di connessione in modo da disporre dell'alias TNS richiesto. Aggiornare inoltre il codice sorgente di esempio per utilizzare il nome utente e la password del database. Ad esempio:
DB_URL="jdbc:oracle:thin:@dbname_high”
Nota
Se si utilizza Microsoft Active Directory con Autonomous Database, aggiornare il codice sorgente di esempio in modo che utilizzi il nome utente di Active Directory e la password utente di Active Directory. Per ulteriori informazioni, vedere Usa Microsoft Active Directory con Autonomous Database. -
Impostare la posizione del wallet: aggiungere
OraclePKIProvider
alla fine dell'elenco dei provider nel filejava.security
(questo file fa parte dell'installazione JRE in$JRE_HOME/jre/lib/security/java.security
) che in genere ha l'aspetto seguente:security.provider.14=oracle.security.pki.OraclePKIProvider
-
Compila ed esegui: compilare ed eseguire l'esempio per ottenere una connessione riuscita. Assicurarsi di disporre di
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
nel fileclasspath
. È inoltre necessario passare le proprietà di connessione. Aggiornare le proprietà con la posizione in cui si trovano i filetnsnames.ora
e wallet.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
Di seguito sono riportati alcuni esempi di sistema Windows. Aggiungere un carattere di continuazione
\
se si impostano le proprietà –D
su più righe in UNIX (Linux o Mac).
Uso di Java KeyStore
Per utilizzare Java e i driver thin JDBC 12.2 o precedenti per connettersi ad Autonomous Database con Java KeyStore (JKS), effettuare le operazioni riportate di seguito.
-
Assicurarsi che i prerequisiti vengano soddisfatti: per ulteriori informazioni, vedere JDBC Thin Driver Connection Prerequisites Connections With Wallets (mTLS).
-
Verificare la connessione: è possibile utilizzare un programma Java, un servlet o IDE per verificare la connessione al database. Un test semplice consiste nel scaricare DataSourceSample.java o UCPSample.java da esempi di codice JDBC e aggiornare l'URL di connessione in modo da disporre dell'alias TNS richiesto e passare
TNS_ADMIN
, fornendo il percorso pertnsnames.ora
e aggiornare l'URL di connessione in modo che disponga dell'alias TNS richiesto. Inoltre, nel codice sorgente di esempio aggiornare il nome utente e la password del database. Ad esempio:DB_URL="jdbc:oracle:thin:@dbname_high”
Nota
Se si utilizza Microsoft Active Directory con Autonomous Database, aggiornare il codice sorgente di esempio in modo che utilizzi il nome utente di Active Directory e la password utente di Active Directory. Per ulteriori informazioni, vedere Usa Microsoft Active Directory con Autonomous Database. -
Compila ed esegui: compilare ed eseguire l'esempio per ottenere una connessione riuscita. È necessario passare le proprietà di connessione come mostrato. Aggiornare le proprietà con la posizione in cui vengono posizionati i file
tnsnames.ora
e JKS. Se si desidera passare queste proprietà di connessione a livello di programmazione, fare riferimento a DataSourceForJKS.java. Ad esempio: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
Argomento padre: Connessioni JDBC Thin con un wallet (mTLS)
Connessioni thin JDBC con proxy HTTP
Se il client è protetto da un firewall e la configurazione di rete richiede un proxy HTTP per la connessione a Internet, è necessario utilizzare il thin client JDBC 18.1 o versione successiva che abilita le connessioni tramite proxy HTTP.
Per connettersi ad Autonomous Database tramite un proxy HTTPS, aprire e aggiornare il file tnsnames.ora
. Aggiungere il nome host (https_proxy) e la porta (https_proxy_port) del proxy HTTP alla stringa di connessione. Sostituire i valori con le informazioni sul proxy HTTPS. Ad esempio:
-
Aggiungere il nome host e la porta del proxy HTTP alle definizioni di connessione in
tnsnames.ora
. È necessario aggiungere i parametri https_proxy e https_proxy_port nella sezione degli indirizzi delle definizioni di connessione. Ad esempio, quanto segue imposta il proxy HTTP suproxyhostname
e la porta del proxy HTTP su80
; sostituire questi valori con le informazioni sul 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)
)
)
-
Le versioni Thin client JDBC precedenti alla 18.1 non supportano le connessioni tramite proxy HTTP.
-
La connessione riuscita dipende da configurazioni proxy specifiche e le prestazioni dei trasferimenti di dati dipendono dalla capacità proxy. Oracle sconsiglia di utilizzare questa funzione in ambienti di produzione in cui le prestazioni sono fondamentali.
-
La configurazione di
tnsnames.ora
per il proxy HTTP potrebbe non essere sufficiente a seconda dei criteri di configurazione e sicurezza della rete dell'organizzazione. Ad esempio, alcune reti richiedono un nome utente e una password per il proxy HTTP. -
In tutti i casi, contattare l'amministratore di rete per aprire le connessioni in uscita agli host nel dominio
oraclecloud.com
utilizzando la porta pertinente senza passare attraverso un proxy HTTP.
Argomento padre: Connessioni JDBC Thin con un wallet (mTLS)