Connecter des applications Python à l'aide de mTLS
S'APPLIQUE À : Exadata Cloud@Customer seulement
Vous pouvez connecter des applications Python à votre instance Autonomous Database à l'aide de mTLS.
Le "mode léger" par défaut du pilote python-oracledb se connecte directement à Oracle Database. Le pilote peut éventuellement utiliser les bibliothèques du client Oracle, "mode lourd", pour certaines fonctionnalités supplémentaires. Les bibliothèques du client Oracle peuvent être celles d'Oracle Instant Client, du client Oracle complet ou d'une installation d'Oracle Database.
Suivez ces étapes pour connecter votre application Python à une instance Autonomous Database à l'aide du protocole mTLS :
- Installer Python et le pilote python-oracledb
- Obtenir des données d'identification de sécurité (Oracle Wallet) et activer la connectivité réseau
- Effectuez cette étape pour vous connecter uniquement en mode léger : Exécuter une application Python en mode léger python-oracledb (mTLS)
- Effectuez cette étape pour vous connecter en mode lourd : Exécuter une application Python en mode lourd python-oracledb (mTLS)
Rubriques connexes
Installer Python et le pilote python-oracledb
Pour vous connecter à Autonomous Database à partir de votre application Python, installez Python et le pilote python-oracledb.
Obtenir des données d'identification de sécurité (Oracle Wallet) et activer la connectivité réseau
Obtenez les données d'identification de sécurité du client pour la connexion à une instance de base de données autonome.
Exécuter l'application Python en mode léger python-oracledb (mTLS)
Par défaut, python-oracledb utilise le mode léger pour se connecter directement à votre instance de base de données autonome.
En mode léger, seuls deux fichiers du fichier zip du portefeuille sont nécessaires :
-
tnsnames.ora
: Mappe les noms de service de réseau utilisés pour les chaînes de connexion d'application à vos services de base de données. -
ewallet.pem
: Active les connexions SSL/TLS en mode léger.
Pour vous connecter en mode léger :
Si vous êtes derrière un pare-feu, vous pouvez tunneliser les connexions TLS/SSL au moyen d'un mandataire à l'aide de HTTPS_PROXY dans le descripteur de connexion ou en définissant des attributs de connexion. La connexion réussie dépend de configurations de mandataire spécifiques. Oracle ne recommande pas l'utilisation d'un mandataire dans un environnement de production, en raison de l'incidence possible sur les performances. Pour plus d'informations, voir HTTPS_PROXY dans Informations de référence sur les services nets de base de données pour Oracle Database 19c ou Informations de référence sur les services nets de base de données pour Oracle Database 23ai.
En mode léger, vous pouvez spécifier un mandataire en ajoutant les paramètres https_proxy
et http_proxy_port
.
Par exemple, sous Linux :
connection=oracledb.connect(
config_dir="/opt/OracleCloud/MYDB",
user="admin",
password=password,
dsn="db2024_low",
wallet_location="/opt/OracleCloud/MYDB",
wallet_password=wallet_pw,
https_proxy='myproxy.example.com',
https_proxy_port=80)
Par exemple, sous Windows :
connection=oracledb.connect(
config_dir=r"C:\opt\OracleCloud\MYDB",
user="admin",
password=password,
dsn="db2024_low",
wallet_location=r"C:\opt\OracleCloud\MYDB",
wallet_password=wallet_pw,
https_proxy='myproxy.example.com',
https_proxy_port=80)
Exécuter l'application Python en mode lourd python-oracledb (mTLS)
Note :
Le mode lourd nécessite que les bibliothèques du client Oracle soient installées là où vous exécutez Python. Vous devez également appeleroracledb.init_oracle_client()
dans votre code Python.
En mode lourd, les trois fichiers suivants du fichier zip de portefeuille sont requis :
-
tnsnames.ora
: Contient les noms de service de réseau utilisés pour les chaînes de connexion d'application et mappe ces chaînes à vos services de base de données. -
sqlnet.ora
: Spécifie la configuration SQL*Net côté client. cwallet.sso
: Contient le portefeuille d'authentification unique à ouverture automatique.
Pour vous connecter en mode lourd :
Si vous êtes derrière un pare-feu, vous pouvez tunneliser les connexions TLS/SSL au moyen d'un mandataire à l'aide de HTTPS_PROXY dans le descripteur de connexion ou en définissant des attributs de connexion. La connexion réussie dépend de configurations de mandataire spécifiques. Oracle ne recommande pas l'utilisation d'un mandataire dans un environnement de production, en raison de l'incidence possible sur les performances. Pour plus d'informations, voir HTTPS_PROXY dans Informations de référence sur les services nets de base de données pour Oracle Database 19c ou Informations de référence sur les services nets de base de données pour Oracle Database 23ai.
En mode lourd, vous pouvez spécifier un mandataire en modifiant le fichier sqlnet.ora
et en ajoutant une ligne :
SQLNET.USE_HTTPS_PROXY=on
En outre, modifiez tnsnames.ora
et ajoutez un nom de mandataire HTTPS_PROXY
et un port HTTPS_PROXY_PORT
à la liste d'adresses de descripteur de connexion de tout nom de service que vous souhaitez utiliser.
Par exemple :
mydb_high=(description=
(address=(https_proxy=myproxy.example.com)
(https_proxy_port=80)
(protocol=tcps)(port=1522)(host=...)
Voir Activation du mode lourd python-oracledb pour plus d'informations sur le mode lourd.