Connexions JDBC Thin avec un portefeuille (mTLS)
Autonomous Database exige une connexion sécurisée qui utilise TLSv1.2 (Transport Layer Security). En fonction des options de configuration réseau, Autonomous Database prend en charge l'authentification TLS et mTLS.
Si vous utilisez TLS, au lieu de mTLS, pour vos connexions à l'aide du pilote léger JDBC avec JDK8u162 ou une version supérieure, aucun portefeuille n'est requis. Les connexions TLS sont activées pour les configurations réseau suivantes :
-
Accès aux adresses privées uniquement : configuration réseau avec une adresse privée
-
Accès sécurisé à partir des adresses IP et des réseaux cloud virtuels autorisés uniquement : configuration avec une liste de contrôle d'accès
Si votre instance Autonomous Database se trouve sur une adresse publique sans liste de contrôle d'accès, vous pouvez ajouter
0.0.0.0/0
en tant que liste de contrôle d'accès CIDR et activer l'authentification TLS. L'ajout de0.0.0.0/0
en tant que liste de contrôle d'accès CIDR est identique au fait que votre instance Autonomous Database soit sur une adresse publique sans liste de contrôle d'accès.
Pour plus d'informations, reportez-vous à Connexions sécurisées à Autonomous Database avec mTLS ou TLS.
- Connexions avec des portefeuilles (mTLS) prérequises pour la connexion au pilote léger JDBC
Les applications qui utilisent le pilote léger JDBC prennent en charge l'authentification TLS et TLS mutuelle (mTLS). L'authentification mTLS nécessite que vous fournissiez les informations d'identification de base de données Oracle, y compris les portefeuilles Oracle ou les fichiers Java KeyStore (JKS) lors de la connexion à la base de données. - Utilisation d'une chaîne de connexion d'URL JDBC avec le pilote léger et les portefeuilles JDBC
La chaîne de connexion se trouve dans le fichiertnsnames.ora
, qui fait partie du téléchargement des informations d'identification client. Le fichiertnsnames.ora
contient les noms de service prédéfinis. Chaque service possède son propre alias TNS et sa propre chaîne de connexion. - Utilisation d'une connexion JDBC avec le pilote JDBC 18.3
Les applications qui utilisent le pilote léger JDBC peuvent se connecter à des bases de données autonomes à l'aide de portefeuilles Oracle ou de Java KeyStore (JKS). - Connexion à l'aide du pilote léger JDBC version 12.2 ou antérieure
Si vous utilisez le pilote JDBC version 12.2.0.2 ou antérieure, définissez les propriétés Java avant de démarrer l'application. En général, vous définissez les propriétés dans le script de démarrage de l'application. - Connexions JDBC Thin avec un proxy HTTP
Si le client est derrière un pare-feu et que votre configuration réseau nécessite un proxy HTTP pour se connecter à Internet, vous devez utiliser le client JDBC Thin 18.1 ou une version ultérieure qui active les connexions via des proxies HTTP.
Rubrique parent : Connexion avec le pilote JDBC Thin
Connexion de pilote léger JDBC - Prérequis Connexions avec des portefeuilles (mTLS)
Les applications qui utilisent le pilote léger JDBC prennent en charge l'authentification TLS et TLS mutuelle (mTLS). L'authentification mTLS nécessite que vous fournissiez les informations d'identification de base de données Oracle, y compris les portefeuilles Oracle ou les fichiers Java KeyStore (JKS) lors de la connexion à la base de données.
Avant de vous connecter à la base de données, procédez comme suit :
Rubrique parent : Connexions JDBC Thin avec un portefeuille (mTLS)
Utiliser une chaîne de connexion d'URL JDBC avec un pilote et des portefeuilles JDBC Thin
La chaîne de connexion se trouve dans le fichier tnsnames.ora
, qui fait partie du téléchargement des informations d'identification client. Le fichier tnsnames.ora
contient les noms de service prédéfinis. Chaque service possède son propre alias TNS et sa propre chaîne de connexion.
dbname_high
comme alias TNS et une chaîne de connexion dans 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)))
Définissez l'emplacement de tnsnames.ora
avec la propriété TNS_ADMIN
de l'une des manières suivantes :
- Dans le cadre de la chaîne de connexion (uniquement avec le pilote JDBC version 18.3 ou ultérieure)
- Comme propriété système,
-Doracle.net.tns_admin
- En tant que propriété de connexion (
OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
)
Avec le pilote JDBC 18.3, la chaîne de connexion inclut l'alias TNS et la propriété de connexion TNS_ADMIN
.
Exemple de chaîne de connexion utilisant le pilote JDBC 18.3 (Linux) :
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Exemple de chaîne de connexion utilisant le pilote JDBC 18.3 (Windows) :
DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=C:\\Users\\test\\wallet_dbname"
La propriété de connexion TNS_ADMIN
indique les éléments suivants :
- Emplacement de
tnsnames.ora
. - Emplacement des fichiers Oracle Wallet (
ewallet.sso
,ewallet.p12
) ou Java KeyStore (JKS) (truststore.jks
,keystore.jks
). - Emplacement de
ojdbc.properties
. Ce fichier contient les propriétés de connexion requises pour utiliser les portefeuilles Oracle ou Java KeyStore (JKS).
Si vous utilisez des pilotes JDBC 12.2.0.1 ou plus anciens, la chaîne de connexion contient uniquement l'alias TNS. Pour vous connecter à l'aide d'anciens pilotes JDBC :
- Définissez l'emplacement de
tnsnames.ora
, en tant que propriété système avec-Doracle.net.tns_admin
ou en tant que propriété de connexion (OracleConnection.CONNECTION_PROPERTY_TNS_ADMIN
). - Définissez les propriétés de connexion associées au portefeuille ou à JKS en plus de
TNS_ADMIN
.
Par exemple, dans ce cas, vous définissez l'alias TNS dans DB_URL
sans la partie TNS_ADMIN
comme suit :
DB_URL=”jdbc:oracle:thin:@dbname_high”
Pour plus de détails, reportez-vous à Noms des services de base de données pour Autonomous Database.
Rubrique parent : Connexions JDBC Thin avec un portefeuille (mTLS)
Utilisation d'une connexion JDBC avec le pilote JDBC 18.3
Les applications qui utilisent le pilote léger JDBC peuvent se connecter à des bases de données autonomes à l'aide de portefeuilles Oracle ou de Java KeyStore (JKS).
Utiliser Oracle Wallet
Pour utiliser Java et le pilote léger JDBC 18.3 pour se connecter à Autonomous Database avec Oracle Wallet, procédez comme suit :
-
Assurez-vous que les prérequis sont respectés : pour plus d'informations, reportez-vous à Prérequis de connexion au pilote léger JDBC - Connexions avec des portefeuilles (mTLS).
-
Vérifier la connexion : vous pouvez utiliser un programme Java, un servlet ou des IDE pour vérifier la connexion à la base de données. Un test simple consiste à télécharger DataSourceSample.java ou UCPSample.java à partir d'échantillons de code JDBC et à mettre à jour l'URL de connexion pour obtenir l'alias TNS requis et transmettre
TNS_ADMIN
, en fournissant le chemin d'accès pourtnsnames.ora
et les fichiers de portefeuille. Dans l'exemple de code source, mettez à jour le nom utilisateur et le mot de passe de la base de données. Par exemple :DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Remarque
Si vous utilisez Microsoft Active Directory avec une base de données, mettez à jour le nom utilisateur avec le nom utilisateur Active Directory dans l'exemple de code source et mettez à jour le mot de passe avec le mot de passe utilisateur Active Directory. Pour plus d'informations, reportez-vous à Utilisation de Microsoft Active Directory avec Autonomous Database. -
Définir l'emplacement du portefeuille : le fichier de propriétés
ojdbc.properties
est préchargé avec la propriété de connexion associée au portefeuille.oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
Remarque
Vous ne modifiez pas le fichierojdbc.properties
. La valeur deTNS_ADMIN
détermine l'emplacement du portefeuille. -
Compiler et exécuter : compilez et exécutez l'exemple pour obtenir une connexion réussie. Assurez-vous d'avoir
oraclepki.jar
,osdt_core.jar
etosdt_cert.jar
dansclasspath
. Par exemple :java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar:./lib/oraclepki.jar:./lib/osdt_core.jar:./lib/osdt_cert.jar:. UCPSample
La partie de portefeuille de connexion automatique du fichier ZIP d'informations d'identification client téléchargé dans Autonomous Database supprime la nécessité pour votre application d'utiliser l'authentification par nom utilisateur/mot de passe.
Utilisation de Java KeyStore
Pour utiliser Java et le pilote léger JDBC 18.3 pour se connecter à Autonomous Database avec Java KeyStore (JKS), procédez comme suit :
-
Assurez-vous que les prérequis sont respectés : pour plus d'informations, reportez-vous à Prérequis de connexion au pilote léger JDBC - Connexions avec des portefeuilles (mTLS).
-
Prêt pour les détails de la base de données : vous pouvez utiliser un programme Java, un servlet ou des IDE pour vérifier la connexion à la base de données. Un test simple consiste à télécharger DataSourceSample.java ou UCPSample.java à partir d'exemples de code JDBC. Dans cet exemple, utilisez l'URL de connexion comme indiqué. La connexion
DB_URL
contient l'alias TNS, par exempledbname_high
présent danstnsnames.ora
. Vous pouvez indiquer le chemin d'accès du fichiertnsnames.ora
via la propriétéTNS_ADMIN
, comme indiqué dans l'URL. Veillez à utiliser le nom utilisateur et le mot de passe de la base de données.DB_URL="jdbc:oracle:thin:@dbname_high?TNS_ADMIN=/Users/test/wallet_dbname"
Remarque
Si vous utilisez Microsoft Active Directory avec Autonomous Database, veillez à modifier l'exemple de code source afin d'utiliser le nom utilisateur Active Directory et le mot de passe utilisateur Active Directory. Pour plus d'informations, reportez-vous à Utilisation de Microsoft Active Directory avec Autonomous Database. -
Définir les propriétés de connexion associées à JKS : ajoutez les propriétés de connexion associées à JKS au fichier
ojdbc.properties
. Le mot de passe keyStore et le mot de passe du truststore sont le mot de passe indiqué lorsque vous téléchargez le fichier.zip
des informations d'identification client.Pour utiliser la connectivité SSL au lieu d'Oracle Wallet, indiquez le fichier de clés d'accès et les fichiers de truststore, ainsi que leur mot de passe respectif dans le fichier
ojdbc.properties
, comme suit :# 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
Remarque
Veillez à mettre en commentaire la propriété associée au portefeuille dansojdbc.properties
. Par exemple :# Property for using Oracle Wallets # oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
-
Compiler et exécuter : compilez et exécutez l'exemple pour obtenir une connexion réussie. Par exemple :
java –classpath ./lib/ojdbc8.jar:./lib/ucp.jar UCPSample
Rubrique parent : Connexions JDBC Thin avec un portefeuille (mTLS)
Connexion à l'aide du pilote léger JDBC 12.2 ou version antérieure
Si vous utilisez le pilote JDBC 12.2.0.2 ou une version antérieure, définissez les propriétés Java avant de démarrer l'application. En général, vous définissez les propriétés dans le script de démarrage de l'application.
Si vous ne pouvez pas utiliser les derniers pilotes JDBC, vous pouvez vous connecter à Autonomous Database à l'aide de 12.2.0.2 ou d'autres pilotes JDBC plus anciens. Les pilotes JDBC 12.2 ou antérieurs ne prennent pas en charge le fichier ojdbc.properties
. Avec les anciennes versions de pilote JDBC, vous devez transmettre des portefeuilles ou des propriétés associées à JKS en tant que propriétés système ou en tant que propriétés de connexion pour établir une connexion.
Utiliser Oracle Wallet
Pour utiliser Java et les pilotes JDBC de version 12.2 ou antérieure pour se connecter à Autonomous Database avec Oracle Wallet, procédez comme suit :
-
Assurez-vous que les prérequis sont respectés : pour plus d'informations, reportez-vous à Prérequis de connexion au pilote léger JDBC - Connexions avec des portefeuilles (mTLS).
-
Vérifier la connexion : vous pouvez utiliser un programme Java, un servlet ou des IDE pour vérifier la connexion à la base de données. Un test simple consiste à télécharger DataSourceSample.java ou UCPSample.java à partir d'exemples de code JDBC et à mettre à jour l'URL de connexion pour disposer de l'alias TNS requis. Mettez également à jour l'exemple de code source pour utiliser le nom utilisateur et le mot de passe de la base de données. Par exemple :
DB_URL="jdbc:oracle:thin:@dbname_high”
Remarque
Si vous utilisez Microsoft Active Directory avec Autonomous Database, mettez à jour l'exemple de code source afin d'utiliser le nom utilisateur Active Directory et le mot de passe utilisateur Active Directory. Pour plus d'informations, reportez-vous à Utilisation de Microsoft Active Directory avec Autonomous Database. -
Définir l'emplacement du portefeuille : ajoutez
OraclePKIProvider
à la fin de la liste des fournisseurs dans le fichierjava.security
(ce fichier fait partie de votre installation JRE située à l'emplacement$JRE_HOME/jre/lib/security/java.security
), qui se présente généralement comme suit :security.provider.14=oracle.security.pki.OraclePKIProvider
-
Compiler et exécuter : compilez et exécutez l'exemple pour obtenir une connexion réussie. Assurez-vous d'avoir
oraclepki.jar
,osdt_core.jar
etosdt_cert.jar
dansclasspath
. Vous devez également transmettre les propriétés de connexion. Mettez à jour les propriétés avec l'emplacement où se trouvent les fichierstnsnames.ora
et de portefeuille.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
Voici des exemples de système Windows. Ajoutez un caractère de continuation
\
si vous définissez les propriétés –D
sur plusieurs lignes sous UNIX (Linux ou Mac).
Utilisation de Java KeyStore
Pour utiliser Java et les pilotes JDBC Thin de version 12.2 ou antérieure afin de se connecter à Autonomous Database avec Java KeyStore (JKS), procédez comme suit :
-
Assurez-vous que les prérequis sont respectés : pour plus d'informations, reportez-vous à Prérequis de connexion au pilote léger JDBC - Connexions avec des portefeuilles (mTLS).
-
Vérifier la connexion : vous pouvez utiliser un programme Java, un servlet ou des IDE pour vérifier la connexion à la base de données. Un test simple consiste à télécharger DataSourceSample.java ou UCPSample.java à partir d'échantillons de code JDBC et à mettre à jour l'URL de connexion pour obtenir l'alias TNS requis et transmettre
TNS_ADMIN
, en fournissant le chemin pourtnsnames.ora
et en mettant à jour l'URL de connexion pour qu'elle dispose de l'alias TNS requis. Dans l'exemple de code source, mettez à jour le nom utilisateur et le mot de passe de la base de données. Par exemple :DB_URL="jdbc:oracle:thin:@dbname_high”
Remarque
Si vous utilisez Microsoft Active Directory avec Autonomous Database, mettez à jour l'exemple de code source afin d'utiliser le nom utilisateur Active Directory et le mot de passe utilisateur Active Directory. Pour plus d'informations, reportez-vous à Utilisation de Microsoft Active Directory avec Autonomous Database. -
Compiler et exécuter : compilez et exécutez l'exemple pour obtenir une connexion réussie. Vous devez transmettre les propriétés de connexion comme indiqué. Mettez à jour les propriétés avec l'emplacement où les fichiers
tnsnames.ora
et JKS sont placés. Si vous souhaitez transmettre ces propriétés de connexion par programmation, reportez-vous à DataSourceForJKS.java. Par exemple :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
Rubrique parent : Connexions JDBC Thin avec un portefeuille (mTLS)
Connexions JDBC Thin avec un proxy HTTP
Si le client se trouve derrière un pare-feu et que votre configuration réseau nécessite un proxy HTTP pour se connecter à Internet, vous devez utiliser le client léger JDBC 18.1 ou version ultérieure qui active les connexions via des proxies HTTP.
Pour vous connecter à Autonomous Database via un proxy HTTPS, ouvrez et mettez à jour le fichier tnsnames.ora
. Ajoutez le nom d'hôte du proxy HTTP (https_proxy) et le port (https_proxy_port) à la chaîne de connexion. Remplacez les valeurs par vos informations de proxy HTTPS. Par exemple :
-
Ajoutez le nom d'hôte et le port du proxy HTTP aux définitions de connexion dans
tnsnames.ora
. Vous devez ajouter les paramètres https_proxy et https_proxy_port dans la section d'adresse des définitions de connexion. Par exemple, la commande suivante définit le proxy HTTP surproxyhostname
et le port proxy HTTP sur80
. Remplacez ces valeurs par vos informations 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)
)
)
-
Les versions de client léger JDBC antérieures à la version 18.1 ne prennent pas en charge les connexions via le proxy HTTP.
-
Une connexion réussie dépend de configurations de proxy spécifiques et les performances des transferts de données dépendent de la capacité du proxy. Oracle ne recommande pas d'utiliser cette fonctionnalité dans les environnements de production où les performances sont essentielles.
-
La configuration de
tnsnames.ora
pour le proxy HTTP peut ne pas être suffisante en fonction de la configuration réseau et des règles de sécurité de votre organisation. Par exemple, certains réseaux nécessitent un nom utilisateur et un mot de passe pour le proxy HTTP. -
Dans tous les cas, contactez l'administrateur réseau pour ouvrir les connexions sortantes aux hôtes du domaine
oraclecloud.com
à l'aide du port approprié sans passer par un proxy HTTP.
Rubrique parent : Connexions JDBC Thin avec un portefeuille (mTLS)