Connessioni sottili JDBC con un wallet (mTLS)
Autonomous AI Database richiede una connessione sicura che utilizza TLSv1.2 (Transport Layer Security). A seconda delle opzioni di configurazione di rete, Autonomous AI 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 AI Database si trova su un endpoint pubblico senza ACL, è possibile aggiungere
0.0.0.0/0come ACL CIDR e abilitare l'autenticazione TLS. L'aggiunta di0.0.0.0/0come ACL CIDR è identica alla presenza di Autonomous AI Database nell'endpoint pubblico senza ACL.
Per ulteriori informazioni, vedere Connessioni sicure ad Autonomous AI 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.orache fa parte del download delle credenziali client. Il filetnsnames.oracontiene 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 AI 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.oracome proprietà di sistema con-Doracle.net.tns_admino 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, vedere Nomi dei servizi di database per Autonomous AI 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 AI 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 a Autonomous AI 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.orae 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 AI 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.propertiesnon viene modificato. Il valoreTNS_ADMINdetermina 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.jareosdt_cert.jarinclasspath. 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 da Autonomous AI 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 a Autonomous AI 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_URLcontiene l'alias TNS, ad esempiodbname_highpresente intnsnames.ora. È possibile fornire il percorso per il filetnsnames.oratramite 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 AI 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 AI 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.zipdelle credenziali client.Per utilizzare la connettività SSL anziché Oracle Wallet, specificare i file keystore e truststore e la rispettiva password nel file
ojdbc.propertiescome 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=passwordNota
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 si è in grado di utilizzare i driver JDBC più recenti, è possibile connettersi ad Autonomous AI 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 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 a Autonomous AI 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 AI Database, aggiornare 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 AI Database. -
Impostare la posizione del wallet: aggiungere
OraclePKIProvideralla 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.jareosdt_cert.jarinclasspath. Inoltre, è necessario passare le proprietà di connessione. Aggiornare le proprietà con la posizione in cui si trovano i filetnsnames.orae 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 a Autonomous AI 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.orae 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 AI Database, aggiornare 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 AI 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.orae 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 AI 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 suproxyhostnamee 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.oraper 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.comutilizzando la porta pertinente senza passare attraverso un proxy HTTP.
Argomento padre: Connessioni sottili JDBC con un wallet (mTLS)