Utiliser l'authentification externe avec les outils de paramétrage

Autonomous AI Database étend la prise en charge de l'authentification externe aux outils de base de données et aux outils associés à l'aide de fournisseurs d'identités tels qu'Oracle Cloud Infrastructure IAM, Microsoft Entra ID, Google Cloud Platform, AWS Cognito et Okta. Cela permet un accès SSO (accès avec connexion unique) sécurisé à Database Actions sans mot de passe traditionnel pour les utilisateurs de base de données identifiés globalement.

A propos de l'authentification externe avec Database Actions

Vous pouvez vous authentifier auprès de l'interface d'outil avec la même identité externe que celle utilisée pour les sessions de base de données. La configuration du fournisseur d'identités pour Database Tools est distincte de l'activation de l'authentification externe sur la base de données. La base de données Autonomous AI stocke la configuration de fournisseur d'identités requise pour l'authentification dans la base de données, avec des valeurs confidentielles telles que la clé secrète client cryptée. Cette configuration inclut le nom du fournisseur d'identités, l'ID client, la clé secrète client et l'URL de repérage OpenID Connect.

Lors de la connexion, les outils utilisent cette configuration pour vous rediriger vers le fournisseur d'identités approprié et pour valider les jetons d'authentification émis pour les utilisateurs authentifiés en externe.

Remarque

Remarque : Autonomous AI Database prend en charge l'authentification externe pour les outils intégrés suivants dans Database Actions - SQL Developer et Data Studio. La base de données ne prend pas en charge l'authentification externe pour des outils tels qu'APEX et Oracle Machine Learning.

Prérequis

Assurez-vous que vous pouvez accéder à l'instance de base de données Autonomous AI à l'aide d'un compte utilisateur disposant des privilèges ADMIN.

Pour utiliser l'authentification externe avec les outils Database, vous devez :

  • Activer l'authentification externe pour Database Actions
  • Créer des utilisateurs de base de données globale
  • Inscrire les informations sur le fournisseur d'identités dans la base de données
  • Accéder à Database Actions à l'aide d'informations d'identification externes

Vous devez suivre les étapes ci-dessus pour chaque soignant pris en charge. Les différences propres au fournisseur sont limitées à la procédure d'activation au niveau de la base de données, à la syntaxe de mise en correspondance globale des utilisateurs et à la question de savoir si les métadonnées du fournisseur d'identités Database Tools doivent être inscrites auprès de DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP.

Conditions requises pour l'étape du soignant

Utilisez ce tableau pour déterminer les étapes de configuration des soignants à appliquer avant de suivre les étapes détaillées.

Fournisseur Activer l'authentification externe Enregistrer le fournisseur d'identités
OCI IAM Obligatoire si non activé Facultatif
ID Microsoft Entra (Azure) Obligatoire Obligatoire
AWS Cognito Configurer avec le fournisseur d'identités Obligatoire
Google Cloud Platform (GCP) Configurer avec le fournisseur d'identités Obligatoire
Okta Configurer avec le fournisseur d'identités Obligatoire

Notes spécifiques au soignant

Fournisseur Notes et exceptions
OCI IAM Utilisez DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION avec type => 'OCI_IAM'. N'exécutez pas CREATE_IDP pour OCI IAM. Mettez en correspondance les utilisateurs ou les groupes avec IAM_PRINCIPAL_NAME ou IAM_GROUP_NAME.
ID Microsoft Entra (Azure) Avant d'exécuter les étapes de configuration de base de données, un administrateur Microsoft Entra ID doit terminer la configuration côté Azure. Inscrivez l'instance de base de données Autonomous AI auprès de la location Microsoft Entra ID, affichez l'URI et la portée de l'ID d'application, créez des rôles d'application si vous utilisez des mappings partagés et affectez les utilisateurs, groupes ou applications requis. Reportez-vous à Activation de l'authentification Microsoft Entra ID sur une base de données Autonomous AI. Utilisez ensuite DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION avec type => 'AZURE_AD' et les valeurs de locataire/application. Inscrivez les métadonnées Database Tools auprès de CREATE_IDP à l'aide de l'URL de repérage OpenID Connect propre au locataire. Mettez en correspondance les utilisateurs, les clients ou les rôles d'application avec AZURE_USER ou AZURE_ROLE.
AWS Cognito Configurez le pool d'utilisateurs Cognito, le client d'application, le domaine et l'appartenance des utilisateurs ou des groupes à AWS. Inscrivez les métadonnées Database Tools avec CREATE_IDP à l'aide de l'URL de repérage OpenID Connect de pool d'utilisateurs Cognito. Mettez en correspondance les utilisateurs avec AWS_USER et les mappings de rôle partagé avec AWS_ROLE.
Google Cloud Platform (GCP) Configurez l'écran de consentement OAuth, les informations d'identification client OAuth, l'URI de redirection et l'affectation d'utilisateur dans Google Cloud. Enregistrez les métadonnées Database Tools avec CREATE_IDP à l'aide de l'URL de repérage Google OpenID Connect. Mettez en correspondance les utilisateurs avec GCP_USER.
Okta Affectez l'application aux utilisateurs ou groupes Okta qui doivent se connecter. Si le mappage de groupe est utilisé, exposez l'étendue des groupes et les demandes de groupes dans le serveur d'autorisation. Inscrivez les métadonnées Database Tools auprès de CREATE_IDP à l'aide de l'URL de repérage Okta OpenID Connect appropriée. Mettez en correspondance les utilisateurs avec OKTA_USER et les groupes avec OKTA_GROUP.

Activer l'authentification externe pour Database Actions

En tant qu'utilisateur ADMIN, activez l'authentification externe sur la base de données Autonomous AI. Cela permet à la base de données de vous authentifier via des fournisseurs d'identités externes pris en charge.

Remarque

Remarque : l'option permettant d'utiliser l'authentification externe dans Database Actions est disponible uniquement lorsque l'authentification externe a été activée pour la base de données Autonomous AI. Si aucun fournisseur d'authentification externe n'a été activé, vous ne verrez pas l'option.

Avant d'activer l'authentification externe, vérifiez si un modèle d'authentification externe est déjà activé :

SELECT name, value
FROM v$parameter
WHERE name = 'identity_provider_type';

Si identity_provider_type est OCI_IAM ou AZURE_AD, l'authentification externe est déjà activée pour ce fournisseur et aucune modification n'est requise pour l'authentification externe de base de données.

Pour utiliser l'authentification externe avec Database Tools, vous devez tout de même terminer la configuration de Database Tools en créant ou en vérifiant les utilisateurs de base de données identifiés globalement, en enregistrant les informations du fournisseur d'identités avec DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP et en fournissant les privilèges Database Actions et Web Access requis.

Si un autre fournisseur d'authentification externe est activé, n'utilisez pas force => TRUE sauf si vous avez l'intention de remplacer la configuration d'authentification externe actuelle.

L'utilisation de force => TRUE désactive le fournisseur d'authentification externe actuellement activé et peut perturber les utilisateurs ou applications existants qui en dépendent.

Pour plus d'informations, reportez-vous à Activation de l'authentification Identity and Access Management (IAM) sur la base de données Autonomous AI.

Remarque

Remarque : un seul fournisseur d'authentification externe peut être activé à la fois.

Exemple : activation de l'authentification externe avec OCI IAM

En tant qu'utilisateur ADMIN, vous pouvez activer l'authentification externe Oracle Cloud Infrastructure IAM sur la base de données Autonomous AI :

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

Cette procédure DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION active l'authentification externe Oracle Cloud Infrastructure IAM pour la base de données. Il n'utilise pas le nom du fournisseur d'identités, l'ID client, la clé secrète client ou l'URL de repérage OpenID Connect.

La procédure ENABLE_EXTERNAL_AUTHENTICATION configure la base de données pour qu'elle fasse confiance à un fournisseur d'identités externe pris en charge. La procédure varie en fonction du fournisseur d'identités que vous utilisez.

Exemple : activation de l'authentification externe avec Microsoft Entra ID

Avant d'exécuter cet exemple, effectuez la configuration de Microsoft Entra ID dans Azure et collectez l'ID de locataire, l'ID d'application et l'URI d'ID d'application à partir de l'inscription de l'application Azure. Si vous utilisez des mappings de rôle d'application, créez les rôles d'application et affectez les utilisateurs, groupes ou applications requis dans Microsoft Entra ID. Reportez-vous à Inscription de l'instance Oracle AI Database avec une location d'ID Microsoft Entra et à Gestion des rôles d'application dans Microsoft Entra ID.

En tant qu'utilisateur ADMIN, activez l'authentification externe Microsoft Entra ID sur la base de données Autonomous AI :

BEGIN
  DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
      type   => 'AZURE_AD',
      params => JSON_OBJECT(
                  'tenant_id' VALUE 'tenant-id',
                  'application_id' VALUE 'application-id',
                  'application_id_uri' VALUE 'application-id-uri'),
      force  => TRUE
  );
END;
/

Pour les outils tels que Database Actions et Data Studio, assurez-vous que les utilisateurs de base de données globale authentifiés en externe disposent des rôles de base de données appropriés et que l'accès Web est activé.

Remarque

Remarque : lorsque l'authentification externe est déjà activée pour le fournisseur à utiliser, n'exécutez pas à nouveau ENABLE_EXTERNAL_AUTHENTICATION. Utilisez CREATE_IDP uniquement pour inscrire les métadonnées du fournisseur d'identités pour les fournisseurs qui nécessitent l'inscription des métadonnées OpenID Connect, tels que l'ID Microsoft Entra, et utilisez ENABLE_EXTERNAL_AUTHENTICATION avec prudence. Pour Oracle Cloud Infrastructure IAM, vous activerez l'authentification externe et configurerez des utilisateurs de base de données identifiés globalement. Vous n'avez pas besoin d'inscrire les informations sur le fournisseur d'identités auprès de la base de données. L'utilisation du paramètre force peut interrompre une configuration d'authentification externe existante.

Créer des utilisateurs de base de données globale

Après avoir activé l'authentification externe, créez des utilisateurs qui sont IDENTIFIED GLOBALLY. Un utilisateur identifié globalement est un utilisateur ou un schéma de base de données créé dans la base de données Autonomous AI et mis en correspondance avec un principal de fournisseur d'identités externe au lieu d'un mot de passe de base de données. Vous allez créer des utilisateurs de base de données globaux pour le même fournisseur d'identités que celui que vous avez activé pour l'authentification externe. Les droits d'accès et les autorisations sont accordés aux utilisateurs de base de données globale pour les privilèges dans la base de données. Pour vous connecter à DBActions, vous devez activer l'utilisateur de base de données globale pour ORDS et accorder une session de création au minimum.

Exécutez les exemples suivants pour créer des utilisateurs de base de données globaux mis en correspondance avec les principaux de leur fournisseur d'identités respectif.

Exemple : création d'utilisateurs de base de données globale pour OCI IAM

Créez un utilisateur de base de données global mis en correspondance avec un principal Oracle Cloud Infrastructure IAM :

CREATE USER adam_scott
IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=adamscott';

Accordez l'accès à l'utilisateur de base de données adam_scott.

GRANT CREATE SESSION TO adam_scott;

Vous pouvez également mettre en correspondance un utilisateur de base de données partagée avec un groupe Oracle Cloud Infrastructure IAM :

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

Exécutez ces instructions pour permettre à l'utilisateur de base de données sales_group mis en correspondance de se connecter à la base de données.

GRANT CREATE SESSION TO sales_group;

Exemple : Créer des utilisateurs de base de données globale pour Microsoft Entra ID

Créez un utilisateur de base de données global mappé avec un utilisateur Microsoft Entra ID :

CREATE USER peter_fitch
IDENTIFIED GLOBALLY AS 'AZURE_USER=peter.fitch@example.com';

Exécutez les instructions suivantes pour accorder des privilèges ou des rôles de base de données à l'utilisateur peter_fitch :

GRANT CREATE SESSION TO peter_fitch;

Vous pouvez également mettre en correspondance un utilisateur de base de données partagé avec un rôle d'application Microsoft Entra ID :

CREATE USER dba_azure
IDENTIFIED GLOBALLY AS 'AZURE_ROLE=AZURE_DBA';

Accordez à l'utilisateur le privilège d'établir une connexion de base de données :

GRANT CREATE SESSION TO dba_azure;

Vous devez utiliser des mappings exclusifs pour mettre en correspondance un utilisateur de base de données avec un principal externe unique ou utiliser des mappings partagés pour mettre en correspondance un utilisateur de base de données avec un groupe ou un rôle externe pouvant représenter plusieurs principaux.

Fournisseur Exemples de mapping utilisateur global : mappings exclusifs et partagés
OCI IAM Mappage exclusif :
IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=<iam-user>'
Mappage partagé :
IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=<iam-group>'
ID Microsoft Entra (Azure) Mappage exclusif :
IDENTIFIED GLOBALLY AS 'AZURE_USER=<user-principal-name>'
Mappage partagé :
IDENTIFIED GLOBALLY AS 'AZURE_ROLE=<app-role>'
AWS Cognito Mappage exclusif :
IDENTIFIED GLOBALLY AS 'AWS_USER=<aws-user>'
Mappage partagé :
IDENTIFIED GLOBALLY AS 'AWS_ROLE=<aws-role>'
Google Cloud Platform (GCP) Mappage exclusif :
IDENTIFIED GLOBALLY AS 'GCP_USER=<gcp-user>'
Mappage partagé :
Non disponible.
Okta Mappage exclusif :
IDENTIFIED GLOBALLY AS 'OKTA_USER=<okta-user>'
Mappage partagé :
IDENTIFIED GLOBALLY AS 'OKTA_GROUP=<okta-group>'

Remarque

Remarque : pour les utilisateurs globaux, ces exemples couvrent Oracle Cloud Infrastructure IAM. Pour les autres fournisseurs d'identités, utilisez la syntaxe de mise en correspondance propre au fournisseur dans leur documentation.

Pour utiliser l'utilisateur avec Database Actions, vous devez créer une session, accorder les privilèges Database Actions requis, activer Oracle REST Data Services (ORDS) pour le schéma et vous assurer que l'utilisateur dispose d'un accès Web.

Exemple : activation d'ORDS pour un utilisateur de base de données identifié globalement

GRANT CREATE SESSION TO IDP_SHARED;
BEGIN
    ORDS_ADMIN.ENABLE_SCHEMA(
        p_enabled             => TRUE,
        p_schema              => 'idp_shared',
        p_url_mapping_type    => 'BASE_PATH',
        p_url_mapping_pattern => 'idp_shared',
        p_auto_rest_auth      => FALSE);
END;

Remarque

Remarque : accordez l'accès DWROLE aux utilisateurs mis en correspondance pour qu'ils puissent accéder à la suite d'outils Data Studio dans Database Actions.

Inscrire les informations sur le fournisseur d'identités dans la base de données

Après avoir créé des utilisateurs authentifiés globalement, un administrateur doit inscrire le fournisseur d'identités auprès de la base de données à l'aide de DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP.

Cette inscription stocke le nom du fournisseur d'identités, l'ID client, la clé secrète client et les métadonnées de repérage requises pour la validation du jeton OpenID Connect. L'inscription d'un fournisseur d'identités permet à Database Tools, tels que Database Actions et Data Studio, d'authentifier les utilisateurs via les fournisseurs d'identités externes pris en charge.

Vous allez utiliser la procédure CREATE_IDP pour créer un fournisseur d'identités pour l'authentification externe. Vous ne devez inscrire un fournisseur d'identités qu'une seule fois pour une base de données.

Vous n'avez pas besoin d'inscrire les informations sur le fournisseur d'identités pour Oracle Cloud Infrastructure IAM. Vous activerez uniquement l'authentification externe et configurerez des utilisateurs de base de données identifiés globalement pour Oracle Cloud Infrastructure IAM.

L'étape d'inscription du fournisseur d'identités de cette section s'applique aux autres fournisseurs externes pris en charge.

Exemple : Exemple générique CREATE_IDP pour les fournisseurs externes

Inscrivez les informations de fournisseur d'identités prises en charge dans la base de données pour l'authentification Database Tools :

BEGIN
   DBMS_CLOUD_FUNCTION_ADMIN.CREATE_IDP(
      idp_name      => '<IDP_NAME>',
      client_id     => '<client-id>',
      client_secret => '<client-secret>',
      params        => JSON_OBJECT(
                         'discovery_url' VALUE '<openid-configuration-url>'));
END;
/

Pour plus d'informations sur les paramètres et leur description, reportez-vous à Procédure CREATE_IDP.

Vous pouvez également mettre à jour une entrée de fournisseur d'identités existante à l'aide de la procédure UPDATE_IDP et enlever une inscription de fournisseur d'identités existante de la base de données à l'aide de la procédure DELETE_IDP.

Accéder à Database Actions avec authentification externe

Lorsqu'un fournisseur d'identités est inscrit et que l'authentification externe est activée, Database Actions et les autres outils pris en charge affichent l'option Se connecter avec SSO. Se connecter avec SSO signifie que vous êtes connecté à Database Actions en tant qu'utilisateur de base de données global authentifié en externe via le fournisseur d'identités configuré. Si vous n'avez pas encore de session de fournisseur d'identités active, Database Actions vous redirige vers Oracle Cloud Infrastructure IAM ou Microsoft Entra ID pour terminer l'authentification.

Pour vous connecter en tant qu'utilisateur de base de données globale authentifié en externe :

  1. Ouvrez l'URL Database Actions.

  2. Sélectionnez Se connecter avec SSO.

  3. Authentifiez-vous auprès du fournisseur d'identités configuré, tel qu'Oracle Cloud Infrastructure IAM ou Microsoft Entra ID.

  4. Une fois l'authentification réussie, Database Actions s'ouvre pour l'utilisateur de base de données global mis en correspondance.

Remarque

Remarque : l'accès à Database Actions à partir de la console Oracle Cloud Infrastructure en tant que ADMIN est un flux distinct. Avec la stratégie Oracle Cloud Infrastructure IAM requise, vous pouvez ouvrir Database Actions à partir de la console en tant qu'administrateur. Cela diffère de la connexion directe à Database Actions en tant qu'utilisateur de base de données globale authentifié en externe. Lorsqu'un utilisateur authentifié en externe se déconnecte, Database Actions revient à la page de connexion Database Actions.