Se connecter à une base de données autonome avec l'authentification IAM (Identity and Access Management)

Une fois que l'utilisateur ADMIN a activé le service IAM pour Oracle Cloud Infrastructure sur Autonomous AI Database, les utilisateurs se connectent à l'instance Autonomous AI Database à l'aide de leurs données d'identification IAM pour Oracle Cloud Infrastructure ou accèdent à la base de données au moyen d'un jeton de base de données IAM pour Oracle Cloud Infrastructure.

Après avoir activé l'accès utilisateur IAM pour Oracle Cloud Infrastructure, vous pouvez également vous connecter à la base de données IA autonome à l'aide du nom d'utilisateur et du mot de passe de votre compte de base de données local (compte d'utilisateur de base de données non global).

Vous pouvez utiliser un client de base de données pour accéder à une instance Autonomous AI Database en tant qu'utilisateur IAM d'Oracle Cloud Infrastructure. Pour utiliser un client avec les données d'identification de nom d'utilisateur et de mot de passe IAM pour Oracle Cloud Infrastructure et un vérificateur de mot de passe, le client de base de données doit être 12c ou plus récent.

Vous pouvez également utiliser un jeton de base de données IAM d'Oracle Cloud Infrastructure pour accéder à une instance de base de données du service d'intelligence artificielle autonome. L'utilisation de jetons GIA nécessite le dernier niveau de la version 19c du client Oracle Database (au moins 19.16). Certains clients antérieurs fournissent un jeu limité de capacités pour l'accès aux jetons.

Les exemples qui suivent montrent l'utilisation du vérificateur de mot de passe avec SQL*Plus pour accéder à la base de données avec un nom d'utilisateur et un mot de passe GIA pour Oracle Cloud Infrastructure, ainsi que les étapes requises pour utiliser SQL*Plus avec un jeton de base de données GIA pour Oracle Cloud Infrastructure.

Note

Si votre instance de base de données du service d'intelligence artificielle autonome est en mode restreint, seuls les utilisateurs disposant du privilège RESTRICTED SESSION tels qu'ADMIN peuvent se connecter à la base de données.

Vous pouvez utiliser un jeton de base de données IAM pour Oracle Cloud Infrastructure pour accéder à une instance Autonomous Database avec des clients pris en charge, notamment :

À propos de la connexion à une instance Autonomous AI Database à l'aide d'IAM

Les utilisateurs du service IAM peuvent se connecter à l'instance Autonomous AI Database à l'aide d'un vérificateur de mot de passe de base de données IAM ou d'un jeton IAM.

L'utilisation du vérificateur de mot de passe de base de données GIA est similaire au processus d'authentification par mot de passe d'Oracle Database. Toutefois, au lieu que le vérificateur de mot de passe (hachage chiffré du mot de passe) soit stocké dans la base de données Oracle, il est plutôt stocké dans le cadre du profil d'utilisateur IAM d'Oracle Cloud Infrastructure (OCI).

La seconde méthode de connexion, l'utilisation d'un jeton GIA pour la base de données, est plus moderne. L'utilisation de l'accès basé sur un jeton est plus adaptée aux ressources en nuage comme la base de données autonome d'IA. Le jeton est basé sur la force que le point d'extrémité GIA peut appliquer. Il peut s'agir d'une authentification multifacteur, qui est plus forte que l'utilisation de mots de passe seuls. Un autre avantage de l'utilisation de jetons est que le vérificateur de mot de passe (qui est considéré comme sensible) n'est jamais stocké ni disponible en mémoire. Une connexion TCPS (TLS) est requise lors de l'utilisation de jetons pour l'accès à la base de données.

Note

Vous ne pouvez pas configurer le chiffrement réseau natif lors de la transmission d'un jeton IAM. Seul le protocole TLS (Transport Layer Security) est pris en charge, et non le chiffrement réseau natif ou le chiffrement réseau natif avec TLS.

Connexions de clients qui utilisent un vérificateur de mot de passe de base de données GIA

Après que vous avez configuré l'autorisation requise pour l'utilisateur GIA, celui-ci peut se connecter à l'aide d'une application client existante, telle que SQL*Plus ou SQLcl, sans configuration supplémentaire.

L'utilisateur GIA entre le nom d'utilisateur et le mot de passe de base de données GIA (et non le mot de passe de la console Oracle Cloud Infrastructure) à l'aide d'un client de base de données actuellement pris en charge. La seule contrainte est que la version du client de base de données soit Oracle Database version 12.1.0.2 ou ultérieure pour utiliser les mots de passe Oracle Database 12c. Le client de base de données doit pouvoir utiliser le vérificateur de mot de passe 12C. L'utilisation du chiffrement du vérificateur 11G n'est pas prise en charge avec GIA. Aucune configuration de client ou d'outil spéciale n'est nécessaire pour que l'utilisateur GIA puisse se connecter à l'instance OCI DBaaS.

Connexions de client utilisant un jeton demandé par une application ou un outil client

Pour un accès par jeton IAM à la base de données autonome d'IA, l'application client ou l'outil demande un jeton de base de données à partir d'IAM pour l'utilisateur IAM.

L'application client transmet le jeton de base de données directement au client de base de données au moyen de l'API du client de base de données.

Si l'application ou l'outil n'a pas été mis à jour pour demander un jeton GIA, l'utilisateur GIA peut utiliser l'interface de ligne de commande d'Oracle Cloud Infrastructure pour demander et stocker le jeton de base de données. Vous pouvez demander un jeton d'accès à la base de données (db-token) à l'aide des données d'identification suivantes :

  • Jetons de sécurité (avec authentification GIA), jetons de délégation (dans OCI Cloud Shell) et API-keys (données d'identification qui représentent l'utilisateur GIA pour activer l'authentification)
  • Jetons de principal d'instance, qui permettent aux instances d'être des acteurs (ou principaux) autorisés à effectuer des actions sur les ressources de service après l'authentification
  • Jeton de principal de ressource (données d'identification permettant à l'application de s'authentifier auprès d'autres services Oracle Cloud Infrastructure)
  • Utilisation d'un nom d'utilisateur IAM et d'un mot de passe de base de données IAM (ne peut être demandé que par le client de base de données).

Lorsque les utilisateurs GIA se connectent au client avec une barre oblique / et que le paramètre OCI_IAM est configuré (sqlnet.ora, tnsnames.ora ou dans une chaîne de connexion), le client de base de données extrait le jeton de base de données d'un fichier. Si l'utilisateur GIA soumet un nom d'utilisateur et un mot de passe, la connexion utilise l'accès au vérificateur de base de données GIA décrit pour les connexions de clients qui utilisent des vérificateurs de mot de passe de base de données GIA. Les instructions de ce guide montrent comment utiliser l'interface de ligne de commande OCI comme aide pour le jeton de base de données. Si l'application ou l'outil a été mis à jour pour fonctionner avec GIA, suivez les instructions pour l'application ou l'outil. Voici certains cas d'utilisation courants : SQLPlus sur place, SQLcl sur place, SQL*Plus dans Cloud Shell ou applications qui utilisent des portefeuilles SEP.

Configuration d'une connexion de client pour SQL*Plus utilisant un mot de passe de base de données GIA

Vous pouvez configurer SQL*Plus pour l'utilisation d'un mot de passe de base de données GIA.

  • En tant qu'utilisateur IAM, connectez-vous à l'instance Autonomous AI Database à l'aide de la syntaxe suivante :
    CONNECT user_name@db_connect_string
    Enter password: password

    Dans cette spécification, user_name est le nom d'utilisateur GIA. La combinaison de domain_name/user_name est limitée à 128 octets.

    L'exemple suivant montre comment l'utilisateur IAM peter_fitch peut se connecter à une instance de base de données du service d'intelligence artificielle autonome.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Certains caractères spéciaux nécessitent des guillemets autour de user_name et password. Exemple :

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Configuration d'une connexion de client pour SQL*Plus utilisant un jeton GIA

Vous pouvez configurer une connexion de client pour SQL*Plus utilisant un jeton GIA.

  1. Assurez-vous de disposer d'un compte d'utilisateur GIA.
  2. Vérifiez auprès d'un administrateur IAM et d'un administrateur Oracle Database que vous disposez d'une politique vous permettant d'accéder à la base de données dans le compartiment ou votre location et que vous êtes mappé à un schéma global de la base de données.
  3. Si votre application ou votre outil ne prend pas en charge l'intégration GIA directe, téléchargez, installez et configurez l'interface de ligne de commande OCI. (Voir Démarrage rapide avec l'interface de ligne de commande OCI.) Configurez une clé d'API dans le cadre de la configuration de l'interface de ligne de commande OCI et sélectionnez les valeurs par défaut.
    1. Configurez l'accès à la clé d'API pour l'utilisateur GIA.
    2. Extrayez db-token. Exemple :
      • Extraction de db-token avec API-key à l'aide de l'interface de ligne de commande d'Oracle Cloud Infrastructure (OCI) :
        oci iam db-token get
      • Extraction de db-token avec un jeton de sécurité (ou de session) :
        oci iam db-token get --auth security_token

        Si le jeton de sécurité a expiré, une fenêtre s'affiche pour que l'utilisateur puisse se reconnecter à OCI. Cela génère le jeton de sécurité pour l'utilisateur. L'interface de ligne de commande OCI utilisera ce jeton actualisé pour obtenir db-token.

      • Extraction de db-token avec un jeton de délégation : Lorsque vous vous connectez à Cloud Shell, le jeton de délégation est généré automatiquement et placé dans le répertoire /etc. Pour obtenir ce jeton, exécutez la commande suivante dans l'interpréteur de commandes en nuage :
        oci iam db-token get
      • Extraction d'un jeton d'instance à l'aide de l'interface de ligne de commande OCI :
        oci iam db-token get --auth instance_principal
    3. Le client de base de données peut également être configuré pour extraire un jeton de base de données à l'aide du nom d'utilisateur IAM et du mot de passe de base de données IAM.
    Pour plus d'informations, voir Clés et OCID requis.
  4. Assurez-vous d'utiliser les dernières mises à jour de la version 19c, 21c ou 26ai du client Oracle Database.
    Cette configuration ne fonctionne qu'avec le client Oracle Database version 19c, 21c ou 26ai.
  5. Suivez le processus existant pour télécharger le portefeuille à partir de la base de données autonome avec intelligence artificielle, puis suivez les instructions pour le configurer et l'utiliser avec SQL*Plus.
    1. Vérifiez que la mise en correspondance de nom distinctif est activée en recherchant SSL_SERVER_DN_MATCH=ON dans sqlnet.ora.
      Note

      Une mise en correspondance partielle ou complète du nom distinctif est requise lors de l'envoi d'un jeton du client de base de données vers la base de données IA autonome. Si la base de données autonome avec intelligence artificielle utilise un point d'extrémité privé, vous devez spécifier une valeur d'hôte pour le paramètre de chaîne de connexion. L'utilisation d'une adresse IP pour le paramètre hôte dans la chaîne de connexion ne fonctionnera pas avec la correspondance de nom distinctif et le jeton IAM ne sera pas envoyé à la base de données.

      Voir Exemples de configuration de points d'extrémité privés sur Autonomous Database pour des informations de configuration sur la façon de définir le paramètre d'hôte lors de l'utilisation d'un point d'extrémité privé.

    2. Configurez le client de base de données pour l'utilisation du jeton GIA en ajoutant TOKEN_AUTH=OCI_TOKEN au fichier sqlnet.ora. Comme vous utiliserez l'emplacement par défaut pour le fichier de jeton de base de données, vous n'avez pas besoin d'inclure l'emplacement du jeton.
    Les valeurs TOKEN_AUTH et TOKEN_LOCATION des chaînes de connexion dans tnsnames.ora ont priorité sur les paramètres de sqlnet.ora pour la connexion. Par exemple, pour la chaîne de connexion, en supposant que le jeton se trouve dans l'emplacement par défaut (~/.oci/db-token pour Linux) :
    (description= 
      (retry_count=20)(retry_delay=3)
      (address=(protocol=tcps)(port=1522)
      (host=example.us-phoenix-1.oraclecloud.com))
      (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
      (security=(ssl_server_dn_match=yes)
      (TOKEN_AUTH=OCI_TOKEN)))
    
Une fois la chaîne de connexion mise à jour avec le paramètre TOKEN_AUTH, l'utilisateur IAM peut se connecter à l'instance de base de données du service d'intelligence artificielle autonome en exécutant la commande suivante pour démarrer SQL*Plus. Vous pouvez inclure le descripteur de connexion lui-même ou utiliser le nom du descripteur figurant dans le fichier tnsnames.ora.
connect /@exampledb_high

Ou :

connect /@(description= 
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
     O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

Le client de base de données est déjà configuré pour obtenir db-token, car TOKEN_AUTH a déjà été défini, au moyen du fichier sqlnet.ora ou dans une chaîne de connexion. Le client de base de données obtient db-token et le signe à l'aide de la clé privée, puis envoie le jeton à la base de données IA autonome. Si un nom d'utilisateur GIA et un mot de passe de base de données GIA sont spécifiés au lieu de la barre oblique /, le client de base de données se connecte à l'aide du mot de passe au lieu d'utiliser db-token.

Utiliser le principal d'instance pour accéder à la base de données autonome avec l'authentification IAM (Gestion des identités et des accès)

Une fois que l'utilisateur ADMIN a activé le service IAM pour Oracle Cloud Infrastructure sur Autonomous AI Database, une application peut accéder à la base de données au moyen d'un jeton de base de données IAM pour Oracle Cloud Infrastructure à l'aide d'un principal d'instance.