Connessioni sottili 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 configurazioni di rete seguenti:
-
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 su 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 all'avere Autonomous Database sull'endpoint pubblico senza ACL.
Per ulteriori informazioni, vedere Secure Connections to Autonomous Database con mTLS o con TLS.
- JDBC Thin Driver Connection Prerequisiti Connections with Wallets (mTLS)
Applicazioni che utilizzano driver JDBC Thin supportano l'autenticazione TLS e TLS (mTLS) reciproca. L'uso dell'autenticazione mTLS richiede la fornitura delle 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 propria stringa di connessione. - Uso di una connessione JDBC con il driver JDBC 18.3
Le applicazioni che utilizzano il driver Thin JDBC possono connettersi ai database autonomi utilizzando i wallet Oracle o Java KeyStore (JKS). - Connessione mediante driver Thin JDBC 12.2 o precedente
Se si utilizza il driver JDBC 12.2.0.2 o 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 si trova dietro un firewall e la configurazione di rete richiede un proxy HTTP per la connessione a Internet, è necessario utilizzare JDBC Thin Client 18.1 o versione successiva che abilita le connessioni tramite proxy HTTP.
Argomento padre: Connettersi al driver Thin JDBC
Connessioni ai prerequisiti di connessione del driver thin JDBC con wallet (mTLS)
Le applicazioni che utilizzano il driver Thin JDBC supportano l'autenticazione TLS e TLS (mTLS) reciproca. L'uso dell'autenticazione mTLS richiede la fornitura delle 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 sottili JDBC con un wallet (mTLS)
Utilizzo di una stringa di connessione URL JDBC con driver e 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 propria 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 riportati di seguito.
- 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:
- 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 Java KeyStore (JKS).
Se si utilizzano driver JDBC 12.2.0.1 o precedenti, la stringa di connessione contiene solo l'alias TNS. Per connettersi utilizzando i 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 in DB_URL
senza la parte TNS_ADMIN
come segue:
DB_URL=”jdbc:oracle:thin:@dbname_high”
Per ulteriori dettagli, consulta la sezione relativa ai nomi dei servizi di database per Autonomous Database.
Argomento padre: Connessioni sottili JDBC con un wallet (mTLS)
Utilizzo di una connessione JDBC con driver JDBC 18.3
Le applicazioni che utilizzano il driver Thin JDBC possono connettersi ai database autonomi utilizzando i wallet Oracle o Java KeyStore (JKS).
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 siano 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 gli IDE per verificare la connessione al database. Un test semplice consiste nel scaricare DataSourceSample.java o UCPSample.java da campioni di codice JDBC e aggiornare l'URL di connessione in modo che disponga dell'alias TNS richiesto e passi
TNS_ADMIN
, fornendo il percorso pertnsnames.ora
e i file 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 aggiornare il nome utente con il nome utente di Active Directory e aggiornare la password 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
è precaricato con la proprietà di connessione correlata al wallet.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Nota
Il fileojdbc.properties
non viene modificato. Il valoreTNS_ADMIN
determina la posizione del wallet. -
Compilazione ed esecuzione: compilare ed eseguire l'esempio per ottenere una connessione riuscita. Assicurarsi di disporre di
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
inclasspath
. 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 di nome utente/password.
Utilizzo di Java KeyStore
Per utilizzare Java e il driver Thin JDBC 18.3 per connettersi ad Autonomous Database con Java KeyStore (JKS), effettuare le operazioni riportate di seguito.
-
Assicurarsi che i prerequisiti siano soddisfatti: per ulteriori informazioni, vedere JDBC Thin Driver Connection Prerequisites Connections with Wallets (mTLS).
-
Pronto per i dettagli del database: è possibile utilizzare un programma Java, un servlet o un 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 per utilizzare 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 truststore sono la password specificata durante il download del file.zip
delle credenziali client.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})))
-
Compilazione ed esecuzione: compilare ed eseguire l'esempio per ottenere una connessione riuscita. Ad esempio:
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Argomento padre: Connessioni sottili JDBC con un wallet (mTLS)
Connessione mediante il driver Thin JDBC 12.2 o 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.
Se non è possibile utilizzare i driver JDBC più recenti, è possibile connettersi ad Autonomous Database utilizzando 12.2.0.2 o altri driver JDBC meno recenti. I driver JDBC 12.2 o precedenti non supportano il file ojdbc.properties
. Con le versioni precedenti dei 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 Java e i driver JDBC 12.2 o precedenti per connettersi ad Autonomous Database con Oracle Wallet, effettuare le operazioni riportate di seguito.
-
Assicurarsi che i prerequisiti siano 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 gli IDE per verificare la connessione al database. Un semplice test consiste nel scaricare DataSourceSample.java o UCPSample.java da campioni di codice JDBC e aggiornare l'URL di connessione in modo che disponga dell'alias TNS richiesto. Inoltre, aggiornare 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 di origine di esempio per utilizzare 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 di provider nel filejava.security
(questo file fa parte dell'installazione JRE disponibile all'indirizzo$JRE_HOME/jre/lib/security/java.security
) che in genere ha l'aspetto seguente:security.provider.14=oracle.security.pki.OraclePKIProvider
-
Compilazione ed esecuzione: compilare ed eseguire l'esempio per ottenere una connessione riuscita. Assicurarsi di disporre di
oraclepki.jar
,osdt_core.jar
eosdt_cert.jar
inclasspath
. 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
Si tratta di esempi di sistema Windows. Aggiungere un carattere di continuazione
\
se si impostano le proprietà –D
su più righe in UNIX (Linux o Mac).
Utilizzo 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 siano 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 gli IDE per verificare la connessione al database. Un test semplice consiste nel scaricare DataSourceSample.java o UCPSample.java da campioni di codice JDBC e aggiornare l'URL di connessione in modo che disponga dell'alias TNS richiesto e passi
TNS_ADMIN
, fornendo il percorso pertnsnames.ora
e aggiornando 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 di origine di esempio per utilizzare il nome utente di Active Directory e la password utente di Active Directory. Per ulteriori informazioni, vedere Usa Microsoft Active Directory con Autonomous Database. -
Compilazione ed esecuzione: 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 sottili JDBC con un wallet (mTLS)
Connessioni Thin JDBC 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.
Per connettersi ad Autonomous Database tramite un proxy HTTPS, aprire e aggiornare il file tnsnames.ora
. Aggiungere il nome host proxy HTTP (https_proxy) e la porta (https_proxy_port) alla stringa di connessione. Sostituire i valori con le informazioni sul proxy HTTPS. Ad esempio:
-
Aggiungere il nome host e la porta proxy HTTP alle definizioni di connessione in
tnsnames.ora
. È necessario aggiungere i parametri https_proxy e https_proxy_port nella sezione dell'indirizzo delle definizioni di connessione. Ad esempio, il proxy HTTP viene impostato suproxyhostname
e la porta proxy HTTP su80
; sostituire questi valori con le informazioni 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 specifiche configurazioni proxy e le prestazioni dei trasferimenti di dati dipendono dalla capacità proxy. Oracle sconsiglia di utilizzare questa funzione negli ambienti di produzione in cui le prestazioni sono fondamentali.
-
La configurazione di
tnsnames.ora
per il proxy HTTP potrebbe non essere sufficiente a seconda della configurazione di rete e dei criteri di sicurezza 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 sottili JDBC con un wallet (mTLS)