Utiliser l'authentification du service de gestion des identités et des accès (GIA) avec une base de données autonome

Vous pouvez configurer la base de données autonome pour qu'elle utilise l'authentification et l'autorisation du service de gestion des identités et des accès (GIA) pour Oracle Cloud Infrastructure afin de permettre aux utilisateurs GIA d'accéder à une base de données autonome à l'aide des données d'identification GIA.

Note :

L'intégration d'Autonomous Database avec IAM pour Oracle Cloud Infrastructure (OCI) est prise en charge dans les locations commerciales avec des domaines d'identité, ainsi que dans le service IAM pour Oracle Cloud Infrastructure existant, qui n'inclut pas les domaines d'identité. Le service GIA pour Oracle Cloud Infrastructure avec des domaines d'identité a été introduit avec les nouvelles 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 non par défaut.

À propos de l'authentification du service de gestion des identités et des accès (GIA) avec une base de données autonome

L'intégration du service GIA pour Oracle Cloud Infrastructure avec les bases de données autonomes prend en charge l'authentification par mot de passe de base de données et par jeton. Voir Authentification et autorisation des utilisateurs GIA pour les bases de données autonomes Oracle pour des informations détaillées sur l'architecture requise pour utiliser des utilisateurs GIA dans une base de données autonome.

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

Note :

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 GIA pour Oracle Cloud Infrastructure permet à un utilisateur GIA de se connecter à une instance de base de données autonome comme les utilisateurs Oracle Database se connectent généralement, avec un nom d'utilisateur et un mot de passe. L'utilisateur entre son nom d'utilisateur GIA et son mot de passe de base de données GIA. Le mot de passe de base de données GIA est différent du mot de passe de la console Oracle Cloud Infrastructure. À l'aide d'un utilisateur GIA avec le vérificateur de mot de passe, vous pouvez vous connecter à une base de données autonome avec n'importe quel client de base de données pris en charge.

Authentification basée sur un jeton d'authentification unique du service de gestion des identités et des accès (GIA)

Il existe plusieurs façons pour un client de base de données d'obtenir un jeton de base de données GIA :

  • Une application ou un outil client peut demander le jeton de base de données à GIA pour l'utilisateur et le transmettre au moyen de 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 d'un jeton de base de données GIA est pris en charge pour les clients suivants :

    • JDBC léger 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 de jeton de base de données GIA au moyen de l'API client, l'utilisateur GIA peut d'abord utiliser l'interface de ligne de commande d'Oracle Cloud Infrastructure pour extraire le jeton de base de données GIA et l'enregistrer dans un fichier. Par exemple, pour utiliser SQL*Plus et d'autres applications et outils à l'aide de 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 d'Oracle Cloud Infrastructure. Si le client de base de données est configuré pour les jetons de base de données GIA, lorsqu'un utilisateur se connecte avec une barre oblique, le pilote de base de données utilise le jeton de base de données GIA qui a été enregistré dans un fichier par défaut ou spécifié.

  • Une application ou un outil client peut utiliser un principal d'instance ou un principal de ressource GIA d'Oracle Cloud Infrastructure pour obtenir un jeton de base de données GIA et utiliser ce jeton pour s'authentifier auprès d'une instance de base de données autonome.

  • Les utilisateurs GIA et les applications OCI peuvent demander un jeton de base de données à GIA à l'aide de plusieurs méthodes, notamment une clé d'API. Voir Configuration d'une connexion de client pour SQL*Plus utilisant un jeton GIA pour obtenir un exemple. Voir À propos de l'authentification et de l'autorisation des utilisateurs GIA pour une base de données Oracle autonome pour 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 entre un nom d'utilisateur/mot de passe pour se connecter, le pilote de base de données utilise la méthode de vérification du 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éalables à l'authentification GIA dans une base de données autonome

Avant d'utiliser l'authentification par le service de gestion des identités et des accès (IAM) sur Autonomous Database, vous devez vous assurer des éléments suivants :

Utilisez le service de réseau pour ajouter une passerelle de service, une règle de routage et une règle de sécurité de trafic sortant au VCN (réseau en nuage virtuel) et aux sous-réseaux où résident vos ressources Autonomous Database.

  1. Créez une passerelle de service dans le réseau en nuage virtuel où résident vos ressources de base de données autonome en suivant les instructions sous Tâche 1 : Créer la passerelle de service dans la documentation sur 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é de trafic sortant à chaque sous-réseau (dans le VCN) où résident des ressources de base de données autonome afin que ces ressources puissent utiliser la passerelle pour utiliser l'authentification GIA :
    1. Allez à la page Détails du sous-réseau correspondante.
    2. In the Subnet Information tab, click the name of the subnet's Route Table to display its Route Table Details page.
    3. Dans la table des règles de routage existantes, vérifiez s'il existe déjà une règle présentant 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 de routage avec ces caractéristiques.

    4. Retournez à 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é.
    6. Dans le menu latéral, sous Ressources, cliquez sur Règles de trafic sortant.
    7. Dans la table des règles de trafic sortant existantes, vérifiez s'il existe déjà une règle présentant les caractéristiques suivantes :
      • Sans état : Non
      • Destination : Tous les services IAD dans Oracle Services Network
      • Protocole IP : TCP
      • Intervalle de ports sources : Tous
      • Intervalle de ports de destination : 443
    8. Si une telle règle n'existe pas, cliquez sur Ajouter des règles de trafic sortant et ajoutez une règle de trafic sortant avec ces caractéristiques.

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

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

Note :

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

La configuration d'un mandataire HTTP pour une infrastructure Exadata déjà provisionnée nécessite une demande de service dans My Oracle Support. Pour plus de détails, voir Créer une demande de service dans My Oracle Support.

Modifier les fournisseurs d'identités externes dans la base de données autonome

Décrit les étapes de modification du fournisseur d'identités externe de l'authentification et de l'autorisation (IAM) à un autre fournisseur d'authentification externe et vice-versa.

L'authentification et l'autorisation pour les utilisateurs d'Oracle Cloud Infrastructure (IAM) sont activées pour les nouvelles bases de données Autonomous Database et conteneur autonomes provisionnées, par défaut. 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 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 :
  1. Désactivez l'intégration IAM à l'aide de la procédure DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION :
    Par exemple :
    BEGIN    
      DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /
    Pour des informations supplémentaires, voir 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 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 qui active l'authentification et l'autorisation pour Oracle Cloud Infrastructure (IAM).

    Dans cet exemple :
    • force est réglé à TRUE pour désactiver l'authentification externe actuellement activée.
    • type est réglé à 'OCI_IAM' pour activer et utiliser l'authentification et l'autorisation Oracle Cloud Infrastructure (IAM).

    Note :

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

    Voir Procédure ENABLE_EXTERNAL_AUTHENTICATION pour plus de référence.

  4. Vérifiez la valeur du paramètre système IDENTITY_PROVIDER_TYPE comme indiqué ci-dessous :
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    NAME                   VALUE   
    ---------------------- ------- 
    identity_provider_type OCI_IAM 

Créer des groupes et des politiques de gestion des identités et des accès pour les utilisateurs GIA

Décrit les étapes pour écrire des énoncés de politique pour un groupe GIA afin de permettre aux utilisateurs GIA d'accéder aux ressources Oracle Cloud Infrastructure, en particulier aux instances de base de données autonome.

Une politique est un groupe d'énoncés spécifiant qui peut accéder à quelles ressources, et comment. L'accès peut être accordé pour l'ensemble de la location, des bases de données dans un compartiment ou des bases de données individuelles. Autrement dit, vous écrivez un énoncé de politique qui donne à un groupe spécifique un type d'accès spécifique à un type de ressource spécifique dans un compartiment spécifique.

Note :

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

Pour que la base de données autonome autorise la connexion des utilisateurs GIA à l'aide de jetons GIA :

  1. Effectuez les préalables du service de gestion des identités et des accès pour Oracle Cloud Infrastructure en créant un groupe et en ajoutant des utilisateurs au groupe.

    Par exemple, créez le groupe sales_dbusers.

    Pour plus d'informations, voir Gestion des groupes.

  2. Écrivez des énoncés de politique pour permettre 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 Politiques.
    3. Pour écrire une politique, cliquez sur Créer une politique.
    4. Dans la page Create Policy, entrez un nom et une description.
    5. Dans la page Créer une politique, sélectionnez Afficher l'éditeur manuel.
    6. Utilisez le générateur de politiques pour créer une politique.

      Par exemple, pour créer une politique autorisant les utilisateurs du groupe GIA DBUsers à 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 politique qui autoriser les membres du groupe DBUsers à accéder uniquement aux bases de données autonomes du compartiment testing_compartment :
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment 
      Par exemple, pour créer une politique qui restreint l'accès d'un groupe à une seule base de données 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 politiques IAM permettant d'accéder à la base de données, voir Création d'une politique IAM pour autoriser les utilisateurs à s'authentifier avec des jetons dans le guide de sécurité de la base de données.

    7. Cliquez sur Créer.

      Pour plus d'informations sur les politiques, voir Gestion des politiques.

Notes sur la création de politiques destinées aux utilisateurs GIA dans une base de données autonome :

  • Les politiques peuvent autoriser les utilisateurs GIA à accéder aux instances de base de données autonome dans toute la location ou dans un compartiment, ou elles peuvent limiter l'accès à une seule instance de base de données autonome.

  • Vous pouvez utiliser un 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 de base de données autonome. Si vous utilisez un principal d'instance ou de ressource, vous devez mapper un groupe dynamique. Ainsi, vous ne pouvez pas mapper exclusivement des principaux d'instance et de ressource; vous pouvez uniquement les mapper au moyen d'un mappage partagé et placer le principal d'instance ou de ressource dans un groupe dynamique GIA.

    Vous pouvez créer des groupes dynamiques et les référencer dans les politiques que vous créez pour accéder à Oracle Cloud Infrastructure. Pour plus de détails, voir Planifier les contrôles d'accès et créer des ressources complémentaires et Gestion des groupes dynamiques.

Ajouter des utilisateurs GIA dans une base de données autonome

Pour ajouter des utilisateurs GIA pour qu'ils aient accès à une base de données autonome, mappez les utilisateurs de base de données globaux aux groupes ou aux utilisateurs GIA à l'aide d'énoncés CREATE USER ou ALTER USER (avec la clause IDENTIFIED GLOBALLY AS).

L'autorisation des utilisateurs GIA dans une instance de base de données autonome fonctionne en mappant les utilisateurs globaux GIA (schémas) à des utilisateurs GIA (mappage exclusif) ou à des groupes GIA (mappage de schéma partagé).

Pour autoriser des utilisateurs GIA dans une instance de base de données autonome :

  1. Connectez-vous en tant qu'utilisateur ADMIN à la base de données configurée pour utiliser GIA (l'utilisateur ADMIN dispose des privilèges système CREATE USER et ALTER USER requis pour ces étapes).
  2. Créez un mappage entre les utilisateurs de base de données autonome (schéma) à l'aide des énoncés CREATE USER ou ALTER USER et incluez la clause IDENTIFIED GLOBALLY AS, en spécifiant le nom du groupe GIA.

    Utilisez la syntaxe suivante pour mapper un utilisateur global à un groupe GIA :

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

    Par exemple, pour mapper un groupe GIA nommé db_sales_group à 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';
    

    Un mappage d'utilisateur global partagé est créé. Le mappage avec l'utilisateur global sales_group est effectif pour tous les utilisateurs du groupe GIA. Ainsi, tout membre de db_sales_group peut se connecter à la base de données à l'aide de ses données d'identification GIA (au moyen du mappage partagé de l'utilisateur global sales_group).

    L'exemple suivant montre comment effectuer cette opération 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. Pour créer des mappages d'utilisateurs globaux supplémentaires pour d'autres groupes ou utilisateurs GIA, suivez ces étapes pour chaque groupe ou utilisateur GIA.

Note :

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

Pour mapper exclusivement un utilisateur IAM local à un utilisateur global Oracle Database :

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

  2. Créez un mappage entre les utilisateurs de base de données autonome (schéma) à l'aide des énoncés CREATE USER ou ALTER USER et incluez la clause IDENTIFIED GLOBALLY AS, en spécifiant le nom de l'utilisateur GIA local.

    Par exemple, pour créer un utilisateur global de base de données nommé peter_fitch et mapper cet utilisateur à un utilisateur GIA 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 non par défaut, sales_domain :

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

Ajouter des rôles GIA dans une base de données autonome

Vous pouvez créer des rôles globaux pour fournir des rôles et des privilèges de base de données supplémentaires aux utilisateurs GIA lorsque plusieurs utilisateurs GIA sont mappés au même utilisateur global partagé.

L'utilisation de rôles globaux est facultative lors de l'utilisation d'un mappage IAM exclusif à un utilisateur (schéma) ou d'un mappage d'utilisateur partagé sur Autonomous Database. Par exemple, tous les privilèges et rôles peuvent être accordés au schéma partagé; tous les utilisateurs GIA mappés au schéma partagé se voient alors accorder les privilèges et les 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, plusieurs utilisateurs peuvent avoir le même schéma partagé et celui-ci peut disposer du privilège CREATE SESSION. Des rôles globaux peuvent alors être utilisés pour fournir des privilèges et des rôles différenciés à différents groupes d'utilisateurs qui utilisent tous le même schéma partagé.

Pour accorder des rôles supplémentaires aux utilisateurs GIA dans une base de données autonome, il faut mapper les rôles globaux de base de données autonome à des groupes GIA.

Pour mapper les rôles globaux de base de données autonome à des groupes GIA :

  1. Connectez-vous en tant qu'utilisateur ADMIN à la base de données configurée pour utiliser GIA (l'utilisateur ADMIN dispose des privilèges système CREATE USER et ALTER USER requis pour ces étapes).
  2. Définissez l'autorisation de base de données pour les rôles de base de données autonome à l'aide des énoncés CREATE ROLE ou ALTER ROLE et incluez la clause IDENTIFIED GLOBALLY AS, en spécifiant le nom du groupe GIA.

    Utilisez la syntaxe suivante pour mapper un rôle global à un groupe GIA :

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

    Par exemple, pour mapper un groupe GIA nommé ExporterGroup à 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 non 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 énoncés 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. Pour associer un rôle de base de données existant à un groupe GIA, utilisez l'énoncé ALTER ROLE pour modifier le rôle de base de données existant afin de le mapper à un groupe GIA. Utilisez la syntaxe suivante pour modifier un rôle de base de données existant afin de le mapper à un groupe GIA :
    ALTER ROLE existing_database_role 
       IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';

Pour ajouter des mappages de rôle globaux supplémentaires pour d'autres groupes GIA, suivez ces étapes pour chaque groupe.

Créer un mot de passe de base de données GIA pour les utilisateurs GIA

Pour ajouter un utilisateur GIA et lui permettre de se connecter à une base de données autonome en fournissant un nom d'utilisateur et un mot de passe, vous devez créer un mot de passe de base de données GIA.

Se connecter à une base de données autonome à l'aide de l'authentification GIA

Après que l'utilisateur de base de données ADMIN a mappé les utilisateurs et les rôles globaux aux utilisateurs et aux groupes GIA, les utilisateurs se connectent à l'instance de base de données autonome à l'aide de leurs données d'identification GIA pour Oracle Cloud Infrastructure ou accèdent à la base de données au moyen d'un jeton de base de données GIA pour Oracle Cloud Infrastructure.

Vous pouvez toujours vous connecter à la base de données 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 de base de données autonome en tant qu'utilisateur GIA Oracle Cloud Infrastructure. Pour utiliser un client avec des 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 GIA pour Oracle Cloud Infrastructure pour accéder à une instance de base de données autonome avec les clients pris en charge :

Note :

Si votre instance de base de données autonome est en mode restreint, seuls les utilisateurs dotés du privilège RESTRICTED SESSION, par exemple ADMIN, peuvent se connecter à la base de données.

À propos de la connexion à une instance Autonomous Database sur une infrastructure Exadata dédiée à l'aide d'IAM

Les utilisateurs IAM peuvent se connecter à l'instance Autonomous Database sur une infrastructure Exadata dédiée à 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 du vérificateur de mot de passe (hachage chiffré du mot de passe) stocké dans Autonomous Database sur une infrastructure Exadata dédiée, le vérificateur est stocké dans le profil d'utilisateur IAM pour 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 telles qu'Autonomous Database sur une infrastructure Exadata dédiée. 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.

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 spéciale de client ou d'outil n'est nécessaire pour que l'utilisateur IAM se connecte à l'instance Autonomous Database sur une infrastructure Exadata dédiée.

Connexions de clients utilisant un jeton

Pour l'accès au jeton IAM à Autonomous Database sur une infrastructure Exadata dédiée, l'application ou l'outil client demande un jeton de base de données à 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)

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 : SQL*Plus sur place, SQLcl sur place, SQL*Plus dans Cloud Shell ou applications qui utilisent des portefeuilles SEP.

Les rubriques suivantes expliquent comment :
  • Configurer une connexion de client pour SQL*Plus afin d'utiliser un mot de passe de base de données GIA.

  • Configurer une connexion de client pour SQL*Plus utilisant un jeton GIA.

  • Accéder à la base de données au moyen d'un jeton de base de données GIA pour Oracle Cloud Infrastructure à l'aide d'un principal d'instance.

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

    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. Par 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 dans 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. Par 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 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 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. Veillez à utiliser les dernières mises à jour des versions 19c et 21c du client Oracle Database.
    Cette configuration ne fonctionne qu'avec le client Oracle Database version 19c ou 21c.
  5. Suivez le processus existant pour télécharger le portefeuille à partir d'Autonomous Database, 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.
    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_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 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, 
     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 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 à Autonomous Database. 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 une principal d'instance pour accéder à une base de données autonome à l'aide de l'authentification GIA

Une fois que l'utilisateur ADMIN a activé le service GIA pour Oracle Cloud Infrastructure dans la base de données autonome, une application peut accéder à celle-ci au moyen d'un jeton de base de données GIA Oracle Cloud Infrastructure à l'aide d'un principal d'instance.

Configurer l'authentification par mandataire

L'authentification par mandataire permet à un utilisateur GIA de mandater un schéma de base de données pour des tâches telles que la maintenance d'une application.

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

Un cas d'utilisation peut être un environnement dans lequel un utilisateur GIA nommé, administrateur de base de données d'application, peut s'authentifier à l'aide de ses données d'identification, puis mandater un utilisateur de schéma de base de données (par exemple, hrapp). Cette authentification permet à l'administrateur GIA d'utiliser les privilèges et rôles de hrapp en tant qu'utilisateur hrapp pour effectuer la maintenance de l'application, tout en continuant à utiliser ses données d'identification GIA pour l'authentification. Un administrateur de base de données d'application peut se connecter à la base de données, puis mandater un schéma d'application pour gérer ce schéma.

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

Configuration de l'authentification par mandataire pour l'utilisateur GIA

Pour configurer l'authentification par mandataire pour un utilisateur GIA, celui-ci doit déjà disposer d'un mappage à un schéma global (mappage exclusif ou partagé). Un schéma de base de données distinct pour l'utilisateur GIA à mandater 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 pour autoriser l'utilisateur GIA à l'utiliser comme mandataire.
  1. Connectez-vous à l'instance de base de données autonome en tant qu'utilisateur disposant des privilèges de système ALTER USER.

  2. Accordez à l'utilisateur GIA l'autorisation de mandater le compte d'utilisateur de base de données local. Un utilisateur GIA ne peut pas être référencé dans la commande, donc le mandataire doit être créé entre l'utilisateur de base de données global (mappé à l'utilisateur GIA) et l'utilisateur de base de données cible. Dans l'exemple suivant, hrapp est le schéma de base de données à mandater et peterfitch_schema est l'utilisateur de base de données global mappé exclusivement à l'utilisateur peterfitch.
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;

À ce stade, l'utilisateur GIA peut se connecter à l'instance de base de données à l'aide du mandataire. Par 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 mandataire de l'utilisateur GIA

Vous pouvez valider la configuration du mandataire de l'utilisateur GIA pour les méthodes d'authentification par mot de passe et par jeton.
  1. Connectez-vous à l'instance de base de données autonome en tant qu'utilisateur disposant des privilèges de système CREATE USER et ALTER USER.

  2. Connectez-vous à l'utilisateur GIA et exécutez les commandes SHOW USER et SELECT SYS_CONTEXT. Par exemple, supposons que vous vouliez vérifier l'authentification par mandataire de l'utilisateur GIA peterfitch lorsqu'il mandate 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 présentés ici, mais la sortie des commandes que vous exécutez est 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"

Utiliser un lien de base de données avec les utilisateurs authentifiés par GIA

Vous pouvez utiliser un lien de base de données pour vous connecter d'une instance de base de données autonome à une autre en tant qu'utilisateur GIA Oracle Cloud Infrastructure.

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 GAM Oracle Cloud Infrastructure.

Note :

Le lien de base de données de l'utilisateur courant n'est pas pris en charge pour la connexion à une base de données Autonomous Database en tant qu'utilisateur IAM pour Oracle Cloud Infrastructure.
  • 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 mappé à un schéma dans les bases de données source et cible connectées par un 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 GIA pour utiliser 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 d'un utilisateur IAM. Lors de l'utilisation d'un utilisateur GIA en tant que lien de base de données d'utilisateur fixe, l'utilisateur GIA doit disposer d'un mappage de schéma dans la base de données cible. L'utilisateur GIA d'un lien de base de données ne peut être configuré qu'avec un vérificateur de mot de passe.

Désactiver l'authentification du service de gestion des identités et des accès (GIA) pour une base de données autonome

Décrit les étapes de désactivation de l'accès des utilisateurs par authentification externe GIA pour une base de données autonome.

Vous pouvez désactiver l'accès GIA à votre instance de base de données autonome à l'aide de la commande ALTER SYSTEM ci-dessous :
ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

Si vous voulez également mettre à jour l'accès à GIA à partir de la ressource, c'est-à-dire une base de données conteneur autonome ou une base de données autonome, vous devrez peut-être supprimer ou modifier le groupe GIA et les politiques que vous avez configurés pour autoriser l'accès à GIA à partir de ces ressources.

Notes sur l'utilisation des outils de base de données autonome avec l'authentification GIA

Fournit des notes relatives à l'utilisation des outils de base de données autonome avec l'authentification GIA activée.