Utiliser l'authentification Identity and Access Management (IAM) avec la base de données Autonomous AI

Vous pouvez configurer une base de données Autonomous AI pour utiliser l'authentification et l'autorisation Oracle Cloud Infrastructure Identity and Access Management (IAM) afin d'autoriser les utilisateurs IAM à accéder à une base de données Autonomous AI avec des informations d'identification IAM.

Remarque : l'intégration d'une base de données Autonomous AI à Oracle Cloud Infrastructure (OCI) IAM est prise en charge dans les locations commerciales avec des domaines d'identité, ainsi que dans l'ancienne instance Oracle Cloud Infrastructure IAM, qui n'inclut pas de domaines d'identité. La version d'Oracle Cloud Infrastructure IAM avec des domaines d'identité est disponible avec les locations OCI créées après le 8 novembre 2021. Autonomous AI Database prend en charge les utilisateurs et les groupes dans les domaines d'identité par défaut et autres.

A propos de l'authentification Identity and Access Management (IAM) avec la base de données Autonomous AI

L'intégration d'Oracle Cloud Infrastructure IAM à Autonomous AI Database prend en charge à la fois l'authentification par mot de passe de base de données et l'authentification basée sur un jeton. Reportez-vous à Authentification et autorisation d'utilisateurs IAM pour les bases de données Oracle Autonomous AI afin d'obtenir des détails complets sur l'architecture permettant d'utiliser des utilisateurs IAM sur la base de données Autonomous AI.

Authentification par mot de passe de base de données IAM

Remarque : tout client de base de données 12c ou supérieure pris en charge peut être utilisé pour l'accès par mot de passe de base de données IAM à la base de données Autonomous AI.

Un mot de passe de base de données Oracle Cloud Infrastructure IAM autorise un utilisateur IAM à se connecter à une instance de base de données Autonomous AI, les utilisateurs Oracle Database se connectent généralement avec un nom utilisateur et une mot de passe. L'utilisateur saisit son nom utilisateur IAM et son mot de passe de base de données IAM. Le mot de passe de base de données IAM est différent du mot de passe de la console Oracle Cloud Infrastructure. L'emploi d'un utilisateur IAM avec le vérificateur de mot de passe vous permet de se connecter à Autonomous AI Database avec n'importe quel client d'une base de données pris en charge.

Authentification basée sur un jeton SSO Identity and Access Management (IAM)

Un client de base de données peut obtenir un jeton de base de données IAM de plusieurs façons :

Si un utilisateur saisit un nom utilisateur/mot de passe afin de se connecter, le pilote de base de données utilise la méthode de vérificateur de mot de passe pour accéder à la base de données, quel que soit le paramètre de jeton de base de données du client.

Prérequis pour l'authentification Identity and Access Management (IAM) sur la base de données Autonomous AI

Avant d'utiliser l'authentification Identity and Access Management (IAM) sur la base de données Autonomous AI, vous devez vous assurer des éléments suivants :

Modification des fournisseurs d'identités externes sur la base de données Autonomous AI

Décrit les étapes à suivre afin de passer l'authentification et de l'autorisation (IAM) à un autre fournisseur d'authentification externe, et vice-versa, pour ce fournisseur.

Par défaut, l'authentification et l'autorisation Oracle Cloud Infrastructure (IAM) pour des utilisateurs sont activées pour des bases de données Autonomous AI et des bases de données Conteneur Autonomous nouvellement provisionnées. Il existe d'autres modèles d'authentification externes, tels que les utilisateurs gérés de manière centralisée avec Active Directory (CMU-AD), Azure AD et Kerberos, que vous pouvez activer pour votre base de données Autonomous AI. Toutefois, un seul modèle d'authentification externe peut être activé à la fois.

Pour permettre aux utilisateurs de base de données de se connecter à la base de données Autonomous AI à l'aide d'un autre modèle d'authentification externe, procédez comme suit :

  1. Désactivez l'intégration IAM à l'aide de la procédure DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION :

    Exemple :

     BEGIN
       DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
     END;
     /
    

    Pour en savoir plus, reportez-vous à Procédure DISABLE_EXTERNAL_AUTHENTICATION.

  2. Suivez les étapes décrites dans les pages suivantes pour configurer un autre modèle d'authentification externe de votre choix :

  3. Réactivez les utilisateurs IAM pour qu'ils se connectent à Autonomous AI Database à l'aide de l'authentification et de l'autorisation Oracle Cloud Infrastructure (IAM).

    En tant qu'utilisateur ADMIN, exécutez la procédure DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION avec les paramètres indiqués ci-dessous :

     BEGIN
       DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
    
         type => 'OCI_IAM'
         force => TRUE
         );
     END;
     /
    

    L'exemple ci-dessus désactive tout fournisseur d'authentification externe actuellement activé et active l'authentification et l'autorisation Oracle Cloud Infrastructure (IAM).

    Dans cet exemple :

    • force est défini sur TRUE pour désactiver l'authentification externe actuellement activée.

    • type est défini sur 'OCI_IAM' pour activer et utiliser l'authentification et l'autorisation Oracle Cloud Infrastructure (IAM).

    Remarque : par défaut, le paramètre force est FALSE. Lorsqu'une autre méthode d'authentification externe est activée et que force est FALSE, DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION signale l'erreur suivante : ORA-20004: Another external authentication is already enabled.

    Pour plus d'informations, reportez-vous à la section ENABLE_EXTERNAL_AUTHENTICATION Procedure.

  4. Vérifiez la valeur du paramètre système IDENTITY_PROVIDER_TYPE comme indiqué ci-après :

     SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
     NAME                   VALUE
    
     ---------------------- -------
     identity_provider_type OCI_IAM
    

Création de stratégies et de groupes Identity and Access Management (IAM) pour les utilisateurs IAM

Décrit les étapes permettant d'écrire des instructions de stratégie pour un groupe IAM afin de permettre à des utilisateurs IAM d'accéder aux ressources Oracle Cloud Infrastructure, en particulier les instances de base de données Autonomous AI.

Une stratégie est un groupe d'instructions qui indique qui peut accéder à des ressources données et comment. L'accès peut être accordé pour l'ensemble de la location, des bases de données d'un compartiment ou des bases de données individuelles. Cela signifie que vous écrivez une instruction de stratégie qui accorde à un groupe donné un type d'accès spécifique à un type de ressource spécifique dans un compartiment spécifique.

Remarque : la définition d'une stratégie est requise pour utiliser les jetons IAM afin d'accéder à la base de données Autonomous AI. Aucune stratégie n'est requise lorsque vous utilisez des mots de passe de base de données IAM pour accéder à la base de données Autonomous AI.

Afin d'autoriser les utilisateurs IAM à se connecter à la base de donnée à l'aide de jetons IAM, procédez comme suit :

  1. Effectuez les prérequis d'Oracle Cloud Infrastructure Identity and Access Management en créant un groupe et en y ajoutant des utilisateurs.

    Par exemple, créez le groupe sales_dbusers.

    Pour plus d'informations, reportez-vous à Gestion des groupes.

  2. Ecrivez des instructions de stratégie pour autoriser l'accès aux ressources Oracle Cloud Infrastructure.

    1. Dans la console Oracle Cloud Infrastructure, cliquez sur Identité, sécurité.

    2. Sous Identité et sécurité, cliquez sur Stratégies.

    3. Pour écrire une stratégie, cliquez sur Créer une stratégie.

    4. Dans la page Créer une stratégie, entrez un nom et une description.

    5. Sur la page Créer une stratégie, sélectionnez Afficher l'éditeur manuel.

       [Description of the illustration adb_iam_create_policy_manual.png](img_text/adb_iam_create_policy_manual.html)
      
    6. Utilisez le générateur de stratégie pour créer une stratégie.

      Par exemple, pour créer une stratégie permettant aux utilisateurs du groupe IAM DBUsers d'accéder à n'importe quelle base de données Autonomous AI dans leur location, procédez comme suit :

       Allow group DBUsers to use autonomous-database-family in tenancy
      

      Par exemple, pour créer une stratégie qui limite l'accès des membres du groupe DBUsers aux base de données Autonomous AI du compartiment testing_compartment uniquement :

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment
      

      Par exemple, pour créer une stratégie qui limite l'accès de groupe à une base de données unique d'un compartiment :

       allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'
      

      Pour plus d'informations sur les stratégies IAM permettant d'accéder à la base de données, reportez-vous à Création d'une stratégie IAM pour autoriser les utilisateurs à s'authentifier avec des jetons dans le guide de sécurité de base de données.

    7. Cliquez sur Créer.

      Pour plus d'informations sur les stratégies, reportez-vous à Gestion des stratégies.

Remarques concernant la création de stratégies à utiliser avec les utilisateurs IAM sur la base de données Autonomous AI :

Ajout d'utilisateurs IAM sur la base de données Autonomous AI

Pour ajouter des utilisateurs IAM afin qu'ils puissent accéder à Autonomous AI Database, mettez en correspondance des utilisateurs globaux des bases de données avec les groupes ou utilisateurs IAM à l'aide d'instructions CREATE USER ou ALTER USER (avec une clause IDENTIFIED GLOBALLY AS).

L'autorisation d'utilisateurs IAM pour une instance Autonomous AI Database fonctionne par le mapping d'utilisateurs globaux IAM (schémas) avec des utilisateurs IAM (correspondance exclusive) ou de groupes IAM (correspondance de schéma partagée).

Pour autoriser les utilisateurs IAM sur une instance de base de données Autonomous AI, procédez comme suit :

  1. Connectez-vous en tant qu'utilisateur ADMIN à la base de données qui peut utiliser IAM (l'utilisateur ADMIN dispose des privilèges système CREATE USER et ALTER USER requis dont vous avez besoin pour ces étapes).

  2. Créez une correspondance avec l'utilisateur Autonomous AI Database (schéma) à l'aide d'instructions CREATE USER ou ALTER USER. Incluez la clause IDENTIFIED GLOBALLY AS pour préciser le nom de groupe IAM.

    Utilisez la syntaxe suivante pour mettre en correspondance un utilisateur global avec un groupe IAM :

     CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';
    

    Par exemple, pour mettre en correspondance un groupe IAM nommé db_sales_group avec un utilisateur global de base de données partagé nommé sales_group :

     CREATE USER sales_group IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=db_sales_group';
    

    Vous créez ainsi une correspondance d'utilisateur global partagé. La correspondance, avec l'utilisateur global sales_group, s'applique à tous les utilisateurs du groupe IAM. Ainsi, tout membre de db_sales_group peut se connecter à la base de données à l'aide de ses informations d'identification IAM (via la correspondance partagée de l'utilisateur global sales_group).

    L'exemple suivant montre comment procéder pour un domaine autre que celui par défaut :

     CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/db_sales_group';
    
  3. Si vous voulez créer des correspondances d'utilisateur global supplémentaires pour d'autres groupes ou utilisateurs IAM, suivez ces étapes pour chaque groupe ou utilisateur IAM.

Remarque : les utilisateurs de base de données qui ne sont pas IDENTIFIED GLOBALLY peuvent continuer à se connecter comme avant, même lorsque la base de données Autonomous AI est activée pour l'authentification IAM.

Pour établir une correspondance exclusive d'un utilisateur IAM local et d'un utilisateur global Oracle Database :

  1. Connectez-vous en tant qu'utilisateur ADMIN à la base de données qui peut utiliser IAM (l'utilisateur ADMIN dispose des privilèges système CREATE USER et ALTER USER requis dont vous avez besoin pour ces étapes).

  2. Créez une mise en correspondance entre l'utilisateur de base de données Autonomous AI (schéma) et les instructions CREATE USER ou ALTER USER, et incluez la clause IDENTIFIED GLOBALLY AS, en indiquant le nom utilisateur IAM local IAM.

    Par exemple, pour créer un utilisateur global de base de données nommé peter_fitch et le mettre en correspondance avec un utilisateur IAM local existant nommé peterfitch :

     CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'
    

    L'exemple suivant montre comment créer l'utilisateur en spécifiant un domaine autre que par défaut, sales_domain :

     CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
     'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';
    

Ajouter des rôles IAM sur une base de données d'IA autonome

Vous pouvez éventuellement créer des rôles globaux pour fournir des privilèges et des rôles de base de données supplémentaires aux utilisateurs IAM lorsque plusieurs utilisateurs IAM sont mis en correspondance avec le même utilisateur global partagé.

L'utilisation de rôles globaux est facultative lors de l'utilisation d'une mise en correspondance IAM exclusive avec un utilisateur (schéma) ou d'une mise en correspondance utilisateur partagée sur une base de données Autonomous AI. Tous les privilèges et rôles peuvent par exemple être accordés au schéma partagé. Les utilisateurs IAM mis en correspondance avec le schéma partagé se voient alors tous accorder les privilèges et rôles affectés à ce schéma.

Vous pouvez utiliser un rôle global pour éventuellement différencier les utilisateurs qui emploient le même schéma partagé. Par exemple, tout un ensemble d'utilisateurs peut disposer du même schéma partagé, qui comporte le privilège CREATE SESSION. Les rôles globaux peuvent alors être utilisés pour affecter des privilèges et des rôles différenciés à différents groupes d'utilisateurs qui utilisent tous le même schéma partagé.

L'octroi de rôles supplémentaires aux utilisateurs IAM dans la base de données Autonomous AI fonctionne par la mise à correspondance des rôles globaux Autonomous AI Database avec des groupes IAM.

Afin de mettre en correspondance des rôles globaux de base de données Autonomous AI avec des groupes IAM, procédez ainsi :

  1. Connectez-vous en tant qu'utilisateur ADMIN à la base de données qui peut utiliser IAM (l'utilisateur ADMIN dispose des privilèges système CREATE USER et ALTER USER requis dont vous avez besoin pour ces étapes).

  2. Définissez l'autorisation de base de données pour les rôles de base de données Autonomous AI à l'aide d'instructions CREATE ROLE ou ALTER ROLE. Incluez la clause IDENTIFIED GLOBALLY AS pour préciser le nom de groupe IAM.

    Utilisez la syntaxe suivante pour mettre en correspondance un rôle global et un groupe IAM :

     CREATE ROLE global_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';
    

    Par exemple, pour mettre en correspondance un groupe IAM nommé ExporterGroup avec un rôle global de base de données partagé nommé export_role :

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=ExporterGroup';
    

    L'exemple suivant montre comment créer le rôle en spécifiant un domaine autre que par défaut, sales_domain :

     CREATE ROLE export_role IDENTIFIED GLOBALLY AS
          'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    Tous les membres de ExporterGroup dans le domaine sales_domain sont autorisés avec le rôle global de base de données export_role lorsqu'ils se connectent à la base de données.

  3. Utilisez des instructions GRANT pour accorder les privilèges requis ou d'autres rôles au rôle global.

     GRANT CREATE SESSION TO export_role;
     GRANT DWROLE TO export_role;
    
  4. Si vous voulez qu'un rôle de base de données existant soit associé à un groupe IAM, utilisez l'instruction ALTER ROLE pour modifier le rôle de base de données existant afin de le mettre en correspondance avec un groupe IAM. Utilisez la syntaxe suivante pour modifier un rôle de base de données existant afin de le mettre en correspondance avec un groupe IAM :

     ALTER ROLE existing_database_role
        IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';
    

Si vous voulez ajouter des correspondances de rôle global supplémentaires pour d'autres groupes IAM, suivez ces étapes pour chaque groupe IAM.

Création d'un mot de passe de base de données IAM pour les utilisateurs IAM

Pour ajouter un utilisateur IAM et autoriser l'utilisateur IAM à se connecter à la base de données Autonomous AI en indiquant un nom utilisateur et un mot de passe, vous devez créer un mot de passe de base de données IAM.

Pour plus d'informations, reportez-vous à Utilisation des mots de passe de base de données IAM.

Connexion à la base de données Autonomous AI avec l'authentification Identity and Access Management (IAM)

Une fois que l'utilisateur ADMIN de base de données met en correspondance les utilisateurs globaux et les rôles globaux avec les utilisateurs IAM et les groupes IAM, les utilisateurs se connectent à l'instance de base de données Autonomous AI à l'aide de leurs informations d'identification Oracle Cloud Infrastructure IAM ou accèdent à la base de données via un jeton de base de données Oracle Cloud Infrastructure IAM.

Vous pouvez toujours vous connecter à la base de données Autonomous AI à l'aide du nom utilisateur et du mot de passe de votre compte de base de données local (compte utilisateur de base de données non global).

Vous pouvez utiliser un client de base de données pour accéder à une instance de base de données Autonomous AI en tant qu'utilisateur Oracle Cloud Infrastructure IAM. Pour qu'un client puisse utiliser des informations d'identification de nom d'utilisateur et de mot de passe Oracle Cloud Infrastructure IAM, le client de base de données doit être de version12c ou ultérieure.

Vous pouvez également utiliser un jeton de base de données Oracle Cloud Infrastructure IAM pour accéder à une instance de base de données Autonomous AI avec les clients pris en charge :

Remarque : si l'instance de base de données Autonomous AI est en mode restreint, seuls les utilisateurs disposant du privilège RESTRICTED SESSION (par exemple ADMIN) peuvent se connecter à la base de données.

A propos de la connexion à une base de données Autonomous AI sur une instance d'infrastructure Exadata dédiée à l'aide d'IAM

Les utilisateurs IAM peuvent se connecter à l'instance de base de données Autonomous AI sur une infrastructure Exadata dédiée à l'aide d'un vérificateur du 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 IAM est semblable au processus d'authentification par mot de passe Oracle Database. Toutefois, plutôt que d'être stocké dans la base de donnée Autonomous AI sur une infrastructure Exadata dédiée, le vérificatrice est stocké avec le profil utilisateur Oracle Cloud Infrastructure (OCI) IAM au lieu de l'être.

La seconde méthode de connexion, qui consiste à utiliser un jeton IAM pour la base de données, est plus moderne. L'utilisation de l'accès basé sur des jetons convient mieux aux ressources cloud telles que la base de données Autonomous AI sur une infrastructure Exadata dédiée. Le jeton est basé sur la sécurité appliquée par l'adresse IAM. Il peut s'agir d'une authentification à plusieurs facteurs, plus forte que les simples mots de passe. L'utilisation de jetons présente un autre avantage : le vérificateur de mot de passe (considéré comme sensible) n'est jamais stocké ni disponible en mémoire.

Connexions client utilisant un vérificateur de mot de passe de base de données IAM

Une fois que vous avez configuré l'autorisation nécessaire pour l'utilisateur IAM, ce dernier peut se connecter à l'aide d'une application client existante, telle que SQL*Plus ou SQLcl, sans configuration supplémentaire.

L'utilisateur IAM saisit le nom utilisateur IAM et le mot de passe de base de données IAM (et non le mot de passe de la console Oracle Cloud Infrastructure (OCI)) à l'aide de n'importe quel client de base de données pris en charge. La seule contrainte est que la version du client de base de données soit au moins Oracle Database 12.1.0.2 afin d'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 cryptage du vérificateur 11G n'est pas prise en charge avec IAM. Aucune configuration spéciale du client ou de l'outil n'est nécessaire pour que l'utilisateur IAM se connecte à l'instance d'infrastructure Exadata dédiée.

Connexions client utilisant un jeton

Pour l'accès par jeton IAM à la base de donnée Autonomous AI sur une infrastructure Exadata dédiée, l'application ou l'outil client demande un jeton de base de donnée à IAM pour l'utilisateur IAM.

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

Si l'application ou l'outil n'a pas été mis à jour et ne peut pas demander de jeton IAM, l'utilisateur IAM peut employer l'interface de ligne de commande Oracle Cloud Infrastructure (OCI) 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 informations d'identification suivantes :

Lorsque les utilisateurs IAM se connectent au client avec une connexion à barre oblique (/) et que le paramètre OCI_IAM est configuré (sqlnet.ora, tnsnames.ora ou dans le cadre d'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 IAM soumet un nom utilisateur et un mot de passe, la connexion utilise l'accès de vérificateur de base de données IAM décrit pour les connexions client qui emploient des vérificateurs de mot de passe de base de données IAM. Les instructions de ce guide indiquent comment utiliser l'interface de ligne de commande OCI en tant qu'application d'aide pour le jeton de base de données. Si l'application ou l'outil a été mis à jour pour fonctionner avec IAM, suivez les instructions de l'application ou de l'outil. Voici quelques cas d'emploi courants : SQL*Plus sur site, SQLcl sur site, SQL*Plus dans Cloud Shell ou applications utilisant des portefeuilles SEP.

Les rubriques suivantes expliquent ces procédures :

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

Vous pouvez configurer SQL*Plus en vue de l'utilisation d'un mot de passe de base de données IAM.

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

Vous pouvez configurer une connexion client pour SQL*Plus en vue de l'utilisation d'un jeton IAM.

  1. Assurez-vous que vous disposez d'un compte utilisateur IAM.

  2. Vérifiez auprès d'un administrateur IAM et d'un administrateur Oracle Database que vous disposez d'une stratégie vous permettant d'accéder à la base de données dans le compartiment ou dans la location, et que vous avez été mise en correspondance avec un schéma global dans la base de données.

  3. Si votre application ou outil ne prend pas en charge l'intégration IAM directe, téléchargez, installez et configurez l'interface de ligne de commande OCI. (Reportez-vous à Démarrage rapide de 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 des valeurs par défaut.

    1. Configurez l'accès à la clé d'API de l'utilisateur IAM.

    2. Extrayez la valeur db-token. Exemple :

      • Extraction d'une valeur db-token avec API-key à l'aide de l'interface de ligne de commande Oracle Cloud Infrastructure (OCI) :

        oci iam db-token get
        
      • Extraction d'une valeur 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 apparaît afin que l'utilisateur puisse de nouveau se connecter à OCI. Cela génère le jeton de sécurité de l'utilisateur. L'interface de ligne de commande OCI utilise ce jeton actualisé pour obtenir la valeur db-token.

      • Extraction d'une valeur db-token avec un jeton de délégation : lorsque vous vous connectez à Cloud Shell, le jeton de délégation est automatiquement généré et placé dans le répertoire /etc. Pour obtenir ce jeton, exécutez la commande suivante dans Cloud Shell :

        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. The database client can also be configured to retrieve a database token using the IAM username and IAM database password.

      Pour plus d'informations, reportez-vous à Connexions client utilisant un jeton demandé par le nom utilisateur et le mot de passe des bases de données IAM.

    Pour plus d'informations, reportez-vous à Clés et OCID requis.

  4. Vérifiez que vous utilisez les dernières mises à jour de version du client Oracle Database 19c et 21c.

    Cette configuration fonctionne uniquement avec le client Oracle Database 19c ou 21c.

  5. Suivez le processus existant pour télécharger le portefeuille à partir de la base de données Autonomous AI. Ensuite, suivez les instructions permettant du configurer en Vue d'une utilisation avec SQL*Plus.

    1. Recherchez SSL_SERVER_DN_MATCH=ON dans sqlnet.ora pour vérifier que la correspondance de nom distinctif est activée.

    2. Ajoutez TOKEN_AUTH=OCI_TOKEN au fichier sqlnet.ora pour configurer le client de base de données de sorte qu'il utilise le jeton IAM. Etant donné que vous utiliserez les emplacements par défaut pour le fichier de jeton de base de données, vous n'avez pas besoin d'inclure d'emplacement de jeton.

    Les valeurs TOKEN_AUTH et TOKEN_LOCATION des chaînes de connexion tnsnames.ora sont prioritaires sur les paramètres sqlnet.ora de la connexion. Par exemple, pour la chaîne de connexion, en supposant que le jeton se trouve à 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_cert_dn="CN=example.uscom-east-1.oraclecloud.com,
          OU=Oracle BMCS US, O=Example Corporation,
          L=Redwood City, ST=California, C=US")
       (TOKEN_AUTH=OCI_TOKEN)))
    

Une fois la chaîne des connexions mise à jour avec le paramètre TOKEN_AUTH, l'utilisateur IAM peut Se connecter à l'instance de base de donnée Autonomous AI 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, qui figure 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,
     OU=Oracle BMCS US, 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 une valeur db-token car TOKEN_AUTH a déjà été défini, via le fichier sqlnet.ora ou dans une chaîne de connexion. Le client de base de données obtient la valeur db-token et le signe à l'aide de La clé privée. Le jeton est ensuite envoyé à la base de données Autonomous AI. Si un nom utilisateur et un mot de passe de base de données IAM sont indiqués au lieu de la barre oblique (/), le client de base de données se connecte à l'aide du mot de passe au lieu de la valeur db-token.

Utilisation du principal d'instance pour accéder à la base de données Autonomous AI avec l'authentification Identity and Access Management (IAM)

Une fois que l'utilisateur ADMIN a activé l'instance Oracle Cloud Infrastructure IAM sur Autonomous AI Database, une application peut accéder à la base d'informations via un jeton de base d'informations Oracle Cloud Infrastructure IAM à l'aide d'un principal d'instance.

Pour plus d'informations, reportez-vous à Accès à l'API Oracle Cloud Infrastructure à l'aide de principaux d'instance.

Configuration de l'authentification par proxy

L'authentification par proxy permet à un utilisateur IAM d'accéder via un proxy à un schéma de base de données pour des tâches telles que la maintenance d'application.

L'authentification par proxy est généralement utilisée afin d'authentifier l'utilisateur réel, puis de l'autoriser à utiliser un schéma de base de données, avec les rôles et privilèges associés, pour gérer une application. Les alternatives telles que le partage du mot de passe de schéma d'application sont considérées comme non sécurisées et ne permettant pas d'auditer l'utilisateur réel qui a effectué une action.

Exemple de cas d'emploi : environnement où un utilisateur IAM nommé, qui est administrateur de base de données d'application, peut s'authentifier à l'aide de ses informations d'identification, puis accéder via un proxy à un utilisateur de schéma de base de données (par exemple, hrapp). Cette authentification permet à l'administrateur IAM d'utiliser, en tant qu'utilisateur hrapp, les privilèges et rôles hrapp afin d'effectuer la maintenance d'application, tout en se servant de ses informations d'identification IAM pour l'authentification. Un administrateur de base de données d'application peut se connecter à la base de données, puis accéder via un proxy à un schéma d'application pour le gérer.

Vous pouvez configurer l'authentification par proxy pour les méthodes d'authentification par mot de passe et par jeton.

Configurer l'authentification par proxy pour l'utilisateur IAM

Afin que vous puissiez configurer l'authentification par proxy pour un utilisateur IAM, ce dernier doit déjà disposer d'une correspondance (exclusive ou partagée) avec un schéma global. Un schéma de base de données distinct, auquel l'utilisateur IAM accédera via un proxy, doit également être disponible.

Après avoir vérifié que vous disposez de ce type d'utilisateur, modifiez l'utilisateur de base de données afin d'autoriser l'utilisateur IAM à y accéder via un proxy.

  1. Connectez-vous à l'instance Autonomous AI Database en tant qu'utilisateur disposant des privilèges système ALTER USER.

  2. Autorisez l'utilisateur IAM à accéder via un proxy au compte utilisateur de base de données local. Vous ne pouvez pas référencer d'utilisateur IAM dans la commande. Le proxy doit donc être créé entre l'utilisateur global de base de données (mis en correspondance avec l'utilisateur IAM) et l'utilisateur de base de données cible. Dans l'exemple suivant, hrapp est le schéma de base de données auquel accéder via un proxy et peterfitch_schema l'utilisateur global de base de données en correspondance exclusive avec l'utilisateur peterfitch.

     ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;
    

A ce stade, l'utilisateur IAM peut se connecter à l'instance de base de données à l'aide du proxy. Exemple :

Pour vous connecter à l'aide d'un vérificateur de mot de passe :

CONNECT peterfitch[hrapp]@connect_string
Enter password: password

Pour vous connecter à l'aide d'un jeton :

CONNECT [hrapp]/@connect_string

Validation de l'authentification par proxy d'utilisateur IAM

Vous pouvez valider la configuration de proxy d'utilisateur IAM pour les méthodes d'authentification par mot de passe et par jeton. 1. Connectez-vous à l'instance Autonomous AI Database en tant qu'utilisateur disposant de privilèges système CREATE USER et ALTER USER.

  1. Connectez-vous en tant qu'utilisateur IAM et exécutez les commandes SHOW USER et SELECT SYS_CONTEXT. Par exemple, supposons que vous vouliez vérifier l'authentification par proxy de l'utilisateur IAM peterfitch lorsqu'il accède via un proxy à l'utilisateur de base de données hrapp. Vous devez vous connecter à la base de données à l'aide des différents types de méthode d'authentification indiqués ici. Toutefois, la sortie des commandes que vous exécutez sera la même pour tous les types.

    • Pour l'authentification par mot de passe :
CONNECT peterfitch[hrapp]/password!@connect_string
SHOW USER;

--The output should be USER is "HRAPP"
SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;

--The output should be "PASSWORD_GLOBAL"
SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;

--The output should be "PETERFITCH_SCHEMA"
SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;

--The output should be "HRAPP"

Utilisation du lien de base de données avec des utilisateurs authentifiés IAM

Vous pouvez utiliser un lien de base de Données pour vous connecter d'une instance Autonomous AI Database à une autre en tant qu'utilisateur Oracle Cloud Infrastructure IAM.

Vous pouvez utiliser un lien de base de données utilisateur connecté ou utilisateur fixe pour vous connecter à une base de données Autonomous AI en tant qu'utilisateur Oracle Cloud Infrastructure IAM.

Remarque : le lien de base de données utilisateur en cours n'est pas pris en charge pour la connexion à une base de données Autonomous AI en tant qu'utilisateur Oracle Cloud Infrastructure IAM.

Désactivation de l'identification Identity and Access Management (IAM) sur la base de données Autonomous AI

Examinez les étapes permettant de désactiver l'accès utilisateur d'authentification externe IAM pour la base de données Autonomous AI.

Vous pouvez désactiver l'accès utilisateur IAM sur l'instance de base de données Autonomous AI à l'aide de la commande ALTER SYSTEM, comme indiqué ci-après :

ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

Si vous voulez également mettre à jour l'accès à IAM à partir de la ressource, à savoir la base de données Conteneur Autonomous ou la base de données AI Autonomous, vous devrez peut-être enlever ou modifier le groupe IAM et les stratégies que vous configurez pour autoriser l'accès à IAM à partir de ces ressources.

Remarques relatives à l'utilisation des outils de base de données Autonomous AI avec l'authentification Identity and Access Management (IAM)

Fournit des remarques sur l'utilisation des outils Autonomous AI Database avec l'authentification IAM activée.