Utilisation de l'authentification Identity and Access Management (IAM) avec Autonomous Database

Vous pouvez configurer Autonomous Database de sorte qu'il utilise l'authentification et l'autorisation Oracle Cloud Infrastructure Identity and Access Management (IAM) afin de permettre aux utilisateurs IAM d'accéder à une base de données autonome avec des informations d'identification IAM.

Remarques :

L'intégration d'Autonomous Database à Oracle Cloud Infrastructure (OCI) IAM est prise en charge dans les locations commerciales avec des domaines d'identité, ainsi que dans Oracle Cloud Infrastructure IAM hérité, 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 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 Autonomous Database

L'intégration d'Oracle Cloud Infrastructure IAM à Autonomous Database prend en charge 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 autonomes Oracle afin d'obtenir des détails complets sur l'architecture permettant d'utiliser des utilisateurs IAM sur Autonomous Database.

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

Remarques :

Tout client de base de données 12c et supérieur pris en charge peut être utilisé pour l'accès par mot de passe de base de données IAM à Autonomous Database.

Un mot de passe de base de données Oracle Cloud Infrastructure IAM permet à un utilisateur IAM de se connecter à une instance Autonomous Database, les utilisateurs Oracle Database se connectant généralement avec un nom utilisateur et un 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 vous connecter à Autonomous Database avec n'importe quel client de 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 :

  • Une application ou un outil client peut demander le jeton de base de données à IAM pour l'utilisateur et le transmettre via l'API client. L'utilisation de l'API pour envoyer le jeton remplace les autres paramètres du client de base de données. Ce type d'utilisation de jeton de base de données IAM est pris en charge pour les clients suivants :

    • JDBC Thin sur toutes les plates-formes
    • Oracle Instant Client OCI-C sur Linux
    • Oracle Data Provider for .NET (ODP.NET) Core
  • Si l'application ou l'outil ne prend pas en charge la demande d'un jeton de base de données IAM via l'API client, l'utilisateur IAM peut dans un premier temps utiliser l'interface de ligne de commande Oracle Cloud Infrastructure pour extraire ce jeton et l'enregistrer dans un emplacement de fichier. Par exemple, pour utiliser SQL*Plus et d'autres applications et outils avec cette méthode de connexion, vous devez d'abord obtenir le jeton de base de données à l'aide de l'interface de ligne de commande Oracle Cloud Infrastructure (OCI). Si le client de base de données est configuré pour les jetons de base de données IAM, lorsqu'un utilisateur se connecte avec le formulaire de connexion à barre oblique, le pilote de base de données utilise le jeton de base de données IAM qui a été enregistré dans l'emplacement de fichier par défaut ou indiqué.

  • Une application ou un outil client peut utiliser un principal de ressource ou d'instance Oracle Cloud Infrastructure IAM pour obtenir un jeton de base de données IAM, et employer ce dernier afin de s'authentifier auprès d'une instance Autonomous Database.

  • Les utilisateurs IAM et les applications OCI peuvent demander un jeton de base de données à IAM avec plusieurs méthodes, y compris l'utilisation d'une clé d'API. Afin d'obtenir un exemple, reportez-vous à Configuration pour SQL*Plus d'une connexion client utilisant un jeton IAM. Reportez-vous à la section A propos de l'authentification et de l'autorisation d'utilisateurs IAM pour Oracle Autonomous Database afin d'obtenir une description d'autres méthodes, telles que l'utilisation d'un jeton de délégation dans OCI Cloud Shell.

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 Autonomous Database

Avant d'utiliser l'authentification Identity and Access Management (IAM) sur Autonomous Database, vous devez vous assurer des éléments suivants :

Utilisez le service Networking pour ajouter une passerelle de service, une règle de routage et une règle de sécurité sortante au VCN (réseau cloud virtuel) et aux sous-réseaux sur lesquels résident vos ressources Autonomous Database.

  1. Créez une passerelle de service dans le réseau cloud virtuel sur lequel résident vos ressources Autonomous Database en suivant les instructions de Tâche 1 : créer la passerelle de service dans la documentation Oracle Cloud Infrastructure.
  2. Après avoir créé la passerelle de service, ajoutez une règle de routage et une règle de sécurité sortante à chaque sous-réseau (dans le réseau cloud virtuel) sur lequel résident les ressources Autonomous Database afin que ces ressources puissent utiliser la passerelle pour recourir à l'authentification Identity and Access Management (IAM) :
    1. Accédez à la page Détails du sous-réseau.
    2. Dans l'onglet Informations sur le sous-réseau, cliquez sur le nom de la table de routage du sous-réseau pour afficher la page Détails de la table de routage correspondante.
    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
      • Destination : tous les services IAD dans Oracle Services Network
      • Type de cible : passerelle de service
      • Cible : nom de la passerelle de service que vous venez de créer dans le VCN

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles de routage et ajoutez une règle possédant ces caractéristiques.

    4. Revenez à la page Détails du sous-réseau.
    5. Dans la table Listes de sécurité du sous-réseau, cliquez sur le nom de la liste de sécurité du sous-réseau pour afficher la page Détails de la liste de sécurité correspondante.
    6. Dans le menu latéral, sous Resources, cliquez sur Egress Rules.
    7. Dans la table des règles sortantes existantes, vérifiez s'il existe déjà une règle avec les caractéristiques suivantes :
      • Sans conservation de statut : non
      • Destination : tous les services IAD dans Oracle Services Network
      • Protocole IP : TCP
      • Plage de ports source : tous
      • Plage de ports de destination : 443
    8. Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle présentant ces caractéristiques.

Les paramètres de proxy HTTP de votre environnement doivent permettre à la base de données d'accéder au fournisseur de services cloud.

Ces paramètres sont définis par l'administrateur de parc lors de la création de l'infrastructure Exadata Cloud@Customer, comme décrit dans Utilisation de la console pour provisionner Exadata Database Service on Cloud@Customer.

Remarques :

La configuration réseau, y compris le proxy HTTP, ne peut être modifiée que jusqu'à ce que l'infrastructure Exadata présente l'état Activation requise. Une fois activé, vous ne pouvez plus modifier ces paramètres.

La configuration d'un proxy HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service (SR) dans My Oracle Support. Pour plus d'informations, reportez-vous à Création d'une demande d'assistance dans My Oracle Support.

Modification des fournisseurs d'identités externes sur Autonomous Database

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

Par défaut, l'authentification et l'autorisation Oracle Cloud Infrastructure (IAM) pour les utilisateurs sont activées pour les instances Autonomous Database et les bases de données Conteneur Autonomous nouvellement provisionnées. 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, peuvent être activés pour votre instance Autonomous Database. Cependant, un seul modèle d'authentification externe peut être activé à la fois.

Pour permettre aux utilisateurs de base de données de se connecter à Autonomous Database à 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 plus d'informations, 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 la possibilité pour les utilisateurs IAM de se connecter à Autonomous 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).

    Remarques :

    Par défaut, le paramètre force est FALSE. Lorsqu'une autre méthode d'authentification externe est activée et que le paramètre force est défini sur 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 à Procédure ENABLE_EXTERNAL_AUTHENTICATION.

  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 aux utilisateurs IAM d'accéder aux ressources Oracle Cloud Infrastructure, en particulier aux instances Autonomous Database.

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.

Remarques :

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

Afin qu'Autonomous Database autorise les utilisateurs IAM à se connecter à la base de données à 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é et sécurité.
    2. Sous Identité et sécurité, cliquez sur Règles.
    3. Pour écrire une stratégie, cliquez sur Créer une stratégie.
    4. Sur 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.
    6. Utilisez le générateur de stratégies 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 autonome de leur location :

      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 bases de données autonomes 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 à l'aide de 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 relatives à la création de stratégies à utiliser avec des utilisateurs IAM sur Autonomous Database :

  • Les stratégies permettent aux utilisateurs IAM d'accéder aux instances Autonomous Database de l'ensemble de la location ou d'un compartiment. Vous pouvez aussi limiter l'accès à une instance Autonomous Database unique.

  • Vous pouvez utiliser le principal d'instance ou de ressource pour extraire des jetons de base de données afin d'établir une connexion entre votre application et une instance Autonomous Database. Si vous utilisez un principal d'instance ou de ressource, vous devez mettre un groupe dynamique en correspondance. Par conséquent, vous ne pouvez pas établir de correspondance exclusive entre des principaux d'instance et de ressource. Vous pouvez uniquement les mettre en correspondance via une correspondance partagée et placer l'instance ou l'instance de ressource dans un groupe dynamique IAM.

    Vous pouvez créer des groupes dynamiques et les référencer dans les stratégies que vous créez pour accéder à Oracle Cloud Infrastructure. Pour plus d'informations, reportez-vous à Planification des contrôles d'accès et création des ressources de prise en charge et à Gestion des groupes dynamiques.

Ajout d'utilisateurs IAM sur Autonomous Database

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

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

Pour autoriser les utilisateurs IAM sur une instance Autonomous Database, 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 Database (schéma) à l'aide d'instructions CREATE USER ou ALTER USER. Incluez la clause IDENTIFIED GLOBALLY AS pour préciser le nom du 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.

Remarques :

Les utilisateurs de base de données qui ne sont pas IDENTIFIED GLOBALLY peuvent continuer à se connecter comme auparavant, même lorsque l'authentification IAM est activée pour Autonomous Database.

Procédure de mise en correspondance exclusive d'un utilisateur IAM local avec 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 correspondance avec l'utilisateur Autonomous Database (schéma) à l'aide d'instructions CREATE USER ou ALTER USER. Incluez la clause IDENTIFIED GLOBALLY AS pour préciser le nom de l'utilisateur IAM local.

    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 indiquant un domaine autre que celui par défaut, sales_domain :

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

Ajout de rôles IAM sur Autonomous Database

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 correspondance IAM exclusive avec l'utilisateur (schéma) ou d'une correspondance avec l'utilisateur partagé sur Autonomous Database. 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 utilisent 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 à des utilisateurs IAM dans Autonomous Database fonctionne par la mise en correspondance de rôles globaux Autonomous Database avec des groupes IAM.

Pour mettre en correspondance des rôles globaux Autonomous Database avec des groupes IAM, 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. Définissez l'autorisation de base de données des rôles Autonomous Database à l'aide d'instructions CREATE ROLE ou ALTER ROLE. Incluez la clause IDENTIFIED GLOBALLY AS pour préciser le nom du 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 indiquant un domaine autre que celui 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 seront autorisés avec le rôle global de base de données export_role lorsqu'ils se connecteront à 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 l'autoriser à se connecter à Autonomous Database en fournissant 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 à Autonomous Database avec l'authentification Identity and Access Management (IAM)

Une fois que l'utilisateur ADMIN de base de données a mis en correspondance les utilisateurs et les rôles globaux avec les utilisateurs et les groupes IAM, les utilisateurs se connectent à l'instance Autonomous Database à 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 autonome à 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 Autonomous Database en tant qu'utilisateur Oracle Cloud Infrastructure IAM. Pour utiliser un client avec des informations d'identification de nom utilisateur et de mot de passe Oracle Cloud Infrastructure IAM 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 Oracle Cloud Infrastructure IAM pour accéder à une instance Autonomous Database avec des clients pris en charge :

Remarques :

Si votre instance Autonomous Database 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 instance Autonomous Database on Dedicated Exadata Infrastructure à l'aide d'IAM

Les utilisateurs IAM peuvent se connecter à l'instance Autonomous Database on Dedicated Exadata Infrastructure à 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 IAM est semblable au processus d'authentification par mot de passe Oracle Database. Toutefois, plutôt que d'être stocké dans Autonomous Database on Dedicated Exadata Infrastructure, le vérificateur de mot de passe (hachage crypté du mot de passe) est stocké avec le profil utilisateur Oracle Cloud Infrastructure (OCI) IAM.

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 un jeton convient mieux aux ressources cloud telles qu'Autonomous Database on Dedicated Exadata Infrastructure. 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 client ou outil n'est nécessaire pour que l'utilisateur IAM se connecte à l'instance Autonomous Database on Dedicated Exadata Infrastructure.

Connexions client utilisant un jeton

Pour l'accès par jeton IAM à Autonomous Database on Dedicated Exadata Infrastructure, l'application ou l'outil client demande à IAM un jeton de base de données 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 :

  • Jetons de sécurité (avec l'authentification IAM), jetons de délégation (dans OCI Cloud Shell) et clés d'API, à savoir des informations d'identification représentant l'utilisateur IAM pour permettre l'authentification
  • Jetons de principal d'instance, qui permettent aux instances d'être des acteurs autorisés (ou des principaux) et d'effectuer des actions sur les ressources du service après authentification
  • Jeton de principal de ressource, à savoir des informations d'identification permettant à l'application de s'authentifier auprès d'autres services Oracle Cloud Infrastructure

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 d'une connexion client pour SQL*Plus en vue de l'utilisation d'un mot de passe de base de données IAM

  • Configuration d'une connexion client pour SQL*Plus en vue de l'utilisation d'un jeton IAM

  • Accès à la base de données via un jeton de base de données Oracle Cloud Infrastructure IAM à l'aide d'un principal d'instance

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.

  • As the IAM user, log in to the Autonomous Database instance by using the following syntax:
    CONNECT user_name@db_connect_string
    Enter password: password

    Dans cet exemple, user_name est le nom utilisateur IAM. Il existe une limite de 128 octets pour la combinaison domain_name/user_name.

    L'exemple suivant montre comment l'utilisateur IAM peter_fitch peut se connecter à une instance Autonomous Database.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Certains caractères spéciaux requièrent l'utilisation de guillemets autour du nom utilisateur et du mot de passe. Exemple :

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

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 la location, et que vous avez été mis 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. Par 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. Le client de base de données peut également être configuré pour extraire un jeton de base de données à l'aide du nom utilisateur IAM et du mot de passe de base 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 l'instance Autonomous Database. Ensuite, suivez les instructions permettant de le 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 de connexion mise à jour avec le paramètre TOKEN_AUTH, l'utilisateur IAM peut se connecter à l'instance Autonomous Database 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 la signe à l'aide de la clé privée. Il envoie ensuite le jeton à l'instance Autonomous Database. 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 à Autonomous Database avec l'authentification Identity and Access Management (IAM)

Une fois que l'utilisateur ADMIN a activé Oracle Cloud Infrastructure IAM sur Autonomous Database, une application peut accéder à la base de données via un jeton de base de données Oracle Cloud Infrastructure IAM à l'aide d'un principal 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.

Configuration de 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 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 Database en tant qu'utilisateur disposant des privilèges système CREATE USER et ALTER USER.

  2. 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"
    • Pour l'authentification par jeton :
      CONNECT [hrapp]/@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP "
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "TOKEN_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 Database à une autre en tant qu'utilisateur Oracle Cloud Infrastructure IAM.

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

Remarques :

Le lien de base de données d'utilisateur en cours n'est pas pris en charge pour la connexion à Autonomous Database en tant qu'utilisateur Oracle Cloud Infrastructure IAM.
  • Lien de base de données d'utilisateur connecté : pour un lien de base de données d'utilisateur connecté, un utilisateur IAM doit être mis en correspondance avec un schéma dans les bases de données source et cible connectées par le lien de base de données. Vous pouvez utiliser un vérificateur de mot de passe de base de données ou un jeton de base de données IAM pour employer un lien de base de données d'utilisateur connecté.

  • Lien de base de données d'utilisateur fixe : un lien de base de données d'utilisateur fixe peut être créé à l'aide d'un utilisateur de base de données ou IAM. Lorsque vous utilisez un utilisateur IAM en tant que lien de base de données d'utilisateur fixe, l'utilisateur IAM doit disposer d'une correspondance de schéma dans la base de données cible. L'utilisateur IAM d'un lien de base de données peut être configuré uniquement avec un vérificateur de mot de passe.

Désactivation de l'authentification Identity and Access Management (IAM) sur Autonomous Database

Décrit les étapes permettant de désactiver l'accès utilisateur d'authentification externe IAM pour Autonomous Database.

Vous pouvez désactiver l'accès utilisateur IAM sur l'instance Autonomous Database à 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, c'est-à-dire la base de données Conteneur Autonomous ou la base de données autonome, vous devrez peut-être enlever ou modifier le groupe IAM et les stratégies configurées pour autoriser l'accès à IAM à partir de ces ressources.

Remarques relatives à l'utilisation des outils Autonomous Database avec l'authentification Identity and Access Management (IAM)

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