Authentifier et autoriser les utilisateurs Microsoft Azure Active Directory pour Autonomous AI Database

Une instance d'Oracle Autonomous AI Database sur une infrastructure Exadata dédiée peut être configurée pour permettre aux utilisateurs de Microsoft Azure AD de se connecter à l'aide de jetons d'accès Azure OAuth2.

À propos de l'intégration d'Oracle Autonomous AI Database sur une infrastructure Exadata dédiée avec Microsoft Azure AD

Oracle Autonomous AI Database sur une infrastructure Exadata dédiée et Microsoft Azure AD peuvent être configurés pour permettre aux utilisateurs et aux applications de se connecter à la base de données à l'aide de leurs données d'identification Azure AD.

Les utilisateurs et les applications Azure AD peuvent se connecter avec les données d'identification d'authentification unique (SSO) Azure AD pour accéder à la base de données. Cela se fait avec un jeton d'accès Azure AD OAuth2 que l'utilisateur ou l'application demande d'abord à partir d'Azure AD. Ce jeton d'accès OAuth2 contient l'identité de l'utilisateur et les informations d'accès à la base de données, puis est envoyé à la base de données. Reportez-vous à l'article Microsoft Options d'authentification sans mot de passe pour Azure Active Directory pour plus d'informations sur la configuration de l'authentification multifacteur et sans mot de passe.

Vous pouvez effectuer cette intégration dans les environnements Oracle Database suivants :

Les instructions de configuration d'Azure AD utilisent le terme " Oracle Database " pour englober ces environnements.

Ce type d'intégration permet à l'utilisateur Azure AD d'accéder à une instance d'Oracle Autonomous AI Database sur une infrastructure Exadata dédiée. Les utilisateurs et les applications Azure AD peuvent se connecter avec les données d'authentification unique Azure AD pour obtenir un jeton d'accès OAuth2 Azure AD à envoyer à la base de données.

L'administrateur Azure AD crée et enregistre Oracle Autonomous AI Database sur une infrastructure Exadata dédiée avec Azure AD. Dans Azure AD, cela s'appelle un enregistrement d'application, qui est abrégé pour l'enregistrement d'application. Il s'agit des informations numériques qu'Azure AD doit connaître sur le logiciel qui utilise Azure AD. L'administrateur Azure AD crée également des rôles d'application (application) pour l'enregistrement de l'application de base de données dans Azure AD. Les rôles d'application connectent les utilisateurs, les groupes et les applications Azure aux schémas et aux rôles de base de données. L'administrateur Azure AD affecte des utilisateurs, des groupes ou des applications Azure AD aux rôles d'application. Ces rôles d'application sont mappés à un schéma global de base de données ou à un rôle global, ou à un schéma et à un rôle. Un utilisateur, un groupe ou une application Azure AD affecté à un rôle d'application sera mappé à un schéma global de base de données, à un rôle global ou à un schéma et à un rôle. Un schéma global Oracle peut également être mappé exclusivement à un utilisateur Azure AD. Un utilisateur invité Azure AD (utilisateur non organisationnel) ou un principal de service Azure AD (application) ne peut être mappé à un schéma global de base de données qu'au moyen d'un rôle d'application Azure AD. Un rôle global Oracle ne peut être mappé qu'à partir d'un rôle d'application Azure et ne peut pas être mappé à partir d'un utilisateur Azure.

Les outils d'Oracle Autonomous AI Database sur une infrastructure Exadata dédiée, notamment Oracle APEX, Database Actions, Oracle Graph Studio et Oracle Database API for MongoDB, ne sont pas compatibles avec l'utilisation des jetons Azure AD pour la connexion à la base de données.

Les outils et les applications mis à jour pour prendre en charge les jetons Azure AD peuvent authentifier les utilisateurs directement auprès d'Azure AD et transmettre le jeton d'accès à la base de données à l'instance Oracle Autonomous AI Database sur une infrastructure Exadata dédiée. Vous pouvez configurer des outils de base de données existants tels que SQL*Plus pour utiliser un jeton Azure AD à partir d'un emplacement de fichier. Dans ces cas, les jetons Azure AD peuvent être extraits à l'aide d'outils tels que Microsoft PowerShell ou l'interface de ligne de commande Azure et placés dans un emplacement de fichier. Un jeton d'accès à la base de données Azure AD OAuth2 est émis avec un délai d'expiration. Le pilote du client Oracle Database s'assure que le jeton a un format valide et qu'il n'a pas expiré avant de le transmettre à la base de données. Le jeton est ciblé pour la base de données, ce qui signifie qu'il contient des informations sur la base de données où le jeton sera utilisé. Les rôles d'application auxquels le principal Azure AD a été affecté dans l'enregistrement de l'application Azure AD de la base de données sont inclus dans le jeton d'accès. L'emplacement du répertoire pour le jeton Azure AD ne doit avoir que l'autorisation suffisante pour que l'utilisateur puisse écrire le fichier de jeton dans l'emplacement et que le client de base de données puisse extraire ces fichiers (par exemple, il suffit de lire et d'écrire par l'utilisateur). Comme le jeton autorise l'accès à la base de données, il doit être protégé dans le système de fichiers.

Les utilisateurs d'Azure AD peuvent demander un jeton à partir d'Azure AD à l'aide d'un certain nombre de méthodes pour ouvrir une fenêtre de connexion Azure afin d'entrer leurs données d'identification Azure AD.

Oracle Autonomous AI Database sur une infrastructure Exadata dédiée accepte les jetons représentant les principaux Azure AD suivants :

Oracle Autonomous AI Database sur une infrastructure Exadata dédiée prend en charge les flux d'authentification Azure AD suivants :

Architecture de l'intégration de Microsoft Azure AD à une base de données d'IA autonome

Les jetons Microsoft Azure Active Directory suivent la norme OAuth2 avec des extensions. L'utilisation d'un jeton Azure AD pour accéder à une base de données Oracle est similaire à l'utilisation de jetons OCI IAM. Voir Architecture de l'intégration de Microsoft Azure AD avec une base de données Oracle Database dans le guide de sécurité pour une explication détaillée.

Mappage des utilisateurs Azure AD à la base de données de l'IA autonome

Les utilisateurs Microsoft Azure doivent être mappés à un schéma de base de données d'IA autonome et disposer des privilèges nécessaires (au moyen de rôles) avant de pouvoir s'authentifier auprès de l'instance de base de données d'IA autonome. Voir Mappage des utilisateurs Azure AD à Oracle Database dans le guide de sécurité pour plus d'informations sur les différentes façons de mapper les utilisateurs, les groupes et l'application dans Microsoft Azure.

Cas d'utilisation pour la connexion à une base de données IA autonome à l'aide d'Azure AD

Oracle Database prend en charge trois types de cas d'utilisation pour la connexion à une instance Autonomous AI Database à l'aide de Microsoft Azure Active Directory. Pour plus de détails, voir Utiliser des cas pour la connexion à une base de données Oracle Database à l'aide d'Azure AD.

Processus général d'authentification des identités Microsoft Azure AD avec Oracle Autonomous AI Database sur une infrastructure Exadata dédiée

L'administrateur d'Oracle Database et l'administrateur Microsoft Azure AD jouent des rôles pour permettre aux utilisateurs d'Azure AD de se connecter à la base de données à l'aide de jetons d'accès Azure AD OAuth2.

Voici le processus général :

  1. L'administrateur d'Oracle Database s'assure que l'environnement Oracle Database répond aux exigences de l'intégration de Microsoft Azure AD. Voir Exigences relatives à Oracle Database pour l'intégration de Microsoft Azure AD.

  2. L'administrateur Azure AD crée un enregistrement d'application Azure AD pour la base de données et l'administrateur Oracle Database permet à la base de données d'utiliser des jetons Azure AD pour l'accès à la base de données.

    Dans le cadre du processus d'enregistrement d'application, l'administrateur Azure AD crée des rôles d'application Azure à utiliser pour les mappages entre les utilisateurs, groupes et applications Azure et les schémas et rôles Oracle Database.

  3. L'administrateur d'Oracle Database crée et mappe des schémas globaux à un utilisateur Azure AD (mappage de schéma exclusif) ou à un rôle d'application Azure (mappage de schéma partagé). L'utilisateur ou l'application Azure AD doit être mappé à un schéma.

  4. Facultativement, l'administrateur Oracle crée des rôles globaux pour Oracle Database et les mappe aux rôles d'application Azure.

  5. L'utilisateur final Azure AD qui veut se connecter à l'instance d'infrastructure Oracle Autonomous AI Database sur une infrastructure Exadata dédiée enregistre l'application client en tant que client Azure AD (semblable à la façon dont la base de données Oracle est enregistrée).

    Le client Azure AD aura une identification de client et une clé secrète client, sauf si le client d'application est public. Si le client d'application est public, seule l'identification de client d'application est nécessaire.

  6. L'utilisateur final Azure AD (qui peut être un administrateur de base de données) se connecte à l'aide d'un utilitaire tel que PowerShell ou l'interface de ligne de commande Azure pour extraire le jeton d'accès à la base de données OAuth2 et le stocker dans un répertoire de fichiers local. Une application peut également demander un jeton d'accès OAuth2 Azure AD directement à partir d'Azure AD et le transmettre au moyen d'une API client de base de données. Reportez-vous à la documentation suivante sur le client Oracle Database pour plus d'informations sur la transmission de jetons Azure AD OAuth2 :

  7. Une fois connecté à l'instance Oracle Autonomous AI Database sur une infrastructure Exadata dédiée, l'utilisateur final Azure AD effectue les opérations de base de données selon les besoins.

Activer l'authentification Azure AD sur une base de données d'intelligence artificielle autonome

Un administrateur Azure AD et un administrateur Autonomous AI Database effectuent des étapes pour configurer l'authentification Azure AD sur Autonomous AI Database.

Conditions requises

L'intégration de Microsoft Azure AD à Oracle Autonomous AI Database sur une infrastructure Exadata dédiée nécessite les éléments suivants :

  1. La base de données autonome d'IA sera version 19.18 ou supérieure.

  2. Connectivité à la base de données sur le port TLS 2484. Les connexions non TLS ne sont pas prises en charge.

  3. Connectivité réseau sortante à Azure AD afin que la base de données puisse demander la clé publique Azure AD.

  4. La base de données d'IA autonome à enregistrer auprès d'Azure AD.

  5. Pour les déploiements Exadata Cloud@Customer, les paramètres de mandataire HTTP de votre environnement doivent permettre à la base de données d'utiliser Azure AD.

    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 sous 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 soit à 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.

Procédure

Mettez en oeuvre les tâches suivantes pour configurer votre base de données IA autonome pour l'intégration de Microsoft Azure AD.

  1. Enregistrer l'instance de base de données autonome avec une location Microsoft Azure AD : Un utilisateur disposant de privilèges d'administrateur Azure AD utilise Microsoft Azure AD pour enregistrer l'instance Oracle Database avec la location Microsoft Azure AD. Reportez-vous à Enregistrer l'instance Oracle Autonomous AI Database avec une location Microsoft Azure AD dans le guide de sécurité.

  2. Activer les jetons d'accès Microsoft Azure AD v2 : Si votre organisation utilise le jeton d'accès Microsoft Azure AD v2 (au lieu des jetons v1), vous devrez peut-être apporter des modifications supplémentaires dans Azure AD pour prendre en charge la revendication upn: dans votre jeton. Voir Activation des jetons d'accès Microsoft Azure AD v2 et Vérification de la version du jeton d'accès Azure AD dans le guide de sécurité.

  3. Gérer les rôles d'application dans Microsoft Azure AD : Dans Azure AD, vous pouvez créer et gérer des rôles d'application qui seront affectés aux utilisateurs et aux groupes Azure AD et qui seront également mappés aux schémas et rôles globaux d'Oracle Database. Reportez-vous à Gérer les rôles d'application dans Microsoft Azure AD dans le guide de sécurité.

  4. Configurez la connectivité sortante vers Microsoft Azure AD à l'aide d'une passerelle NAT :

    Créez une passerelle NAT dans le réseau en nuage virtuel (VCN) où résident vos ressources de base de données d'intelligence artificielle autonome en suivant les instructions sous Créer une passerelle NAT dans la documentation sur Oracle Cloud Infrastructure.

    Après avoir créé la passerelle NAT, 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 les ressources de la base de données IA autonome afin que ces ressources puissent utiliser la passerelle pour obtenir une clé publique à partir de votre instance Azure AD :

    1. Allez à la page Détails du sous-réseau pour le 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 sa page Détails de la table de routage.

    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 : 0.0.0.0/0

      • Type de cible : Passerelle NAT

      • Cible : Nom de la passerelle NAT 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 pour le 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 sa 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 :

      • Type de destination :CIDR

      • Destination :0.0.0.0/0

      • Protocole IP : TCP

      • Intervalle de ports sources :443

      • Intervalle de ports de destination :Tous

      Si une telle règle n'existe pas, cliquez sur Ajouter des règles sortantes et ajoutez une règle sortante avec ces caractéristiques.

  5. Tester l'accessibilité du point d'extrémité Entra ID

    Assurez-vous que votre instance Oracle Database peut accéder au point d'extrémité Entra ID en suivant les étapes décrites dans Test de l'accessibilité du point d'extrémité Azure dans le guide de sécurité.

    Si la base de données ne peut pas se connecter au point d'extrémité Microsoft Entra ID, même après avoir défini la politique de liste de contrôle d'accès, vérifiez les préalables énumérés ci-dessus pour confirmer que vous avez correctement configuré le réseau conformément aux préalables. Si le problème persiste, vérifiez votre réseau pour vous assurer que l'instance de base de données peut se connecter au point d'extrémité MS Entra ID.

  6. Configurez Azure AD en tant que fournisseur d'identités externe pour Autonomous AI Database :

    Par défaut, les bases de données autonomes d'IA et les bases de données conteneur autonomes sont configurées pour connecter les utilisateurs à l'authentification et à l'autorisation Oracle Cloud Infrastructure (IAM). Un administrateur de base de données d'application peut également passer à un autre modèle d'authentification externe, tel que Centrally Managed Users with Active Directory (CMU-AD) ou Kerberos. Toutefois, une base de données autonome d'IA ne peut activer qu'un seul modèle d'authentification externe à la fois.

    Pour activer Azure AD en tant que fournisseur d'identités externe sur une instance Autonomous AI Database :

    1. Connectez-vous à l'instance de base de données du service d'intelligence artificielle autonome en tant qu'utilisateur disposant du privilège EXECUTE sur l'ensemble PL/SQL DBMS_CLOUD_ADMIN. L'utilisateur ADMIN dispose de ce privilège.

    2. Comme il ne peut y avoir qu'un seul modèle d'authentification externe activé pour une base de données IA autonome à un moment donné, exécutez la procédure DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION pour désactiver tout modèle d'authentification externe déjà activé pour votre base de données.

      Pour exécuter la procédure, vous devez être connecté en tant qu'utilisateur ADMIN ou disposer du privilège EXECUTE sur DBMS_CLOUD_ADMIN.

       BEGIN
         DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
       END;
       /
      
    3. Exécutez la procédure DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION avec les paramètres requis pour Azure AD.

       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;
      

      Dans cette procédure, les paramètres Azure AD sont les suivants :

      • type : Spécifie le fournisseur d'authentification externe. Pour Azure AD, comme illustré, utilisez 'AZURE_AD'.

      • params : Les valeurs des paramètres Azure AD requis sont disponibles dans le portail Azure du volet Aperçu de l'enregistrement de l'application pour Azure Active Directory. Les valeurs params requises pour Azure AD sont les suivantes :

        • tenant_id : ID locataire du compte Azure. L'ID locataire spécifie l'enregistrement de l'application Azure AD de l'instance de base de données d'intelligence artificielle autonome.

        • application_id : ID application Azure créé dans Azure AD pour affecter des rôles/mappages de schéma pour l'authentification externe dans l'instance de base de données Autonomous AI Database.

        • application_id_uri : URI unique affecté à l'application Azure.

          Il s'agit de l'identificateur de l'instance Autonomous AI Database. Le nom doit être qualifié pour le domaine (cela prend en charge l'accès aux ressources interlocation).

          La longueur maximale de ce paramètre est de 256 caractères.

      • force : Réglez ce paramètre à TRUE si une autre méthode EXTERNAL AUTHENTICATION est configurée pour l'instance de base de données d'intelligence artificielle autonome et que vous voulez la désactiver.

      Par exemple :

       BEGIN
         DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
             type   =>'AZURE_AD',
             params => JSON_OBJECT('tenant_id' VALUE '29981886-6fb3-44e3-82',
                                   'application_id' VALUE '11aa1a11-aaa',
                                   'application_id_uri' VALUE 'https://example.com/111aa1aa'),
             force  => TRUE
         );
       END;
      

      Cela définit le paramètre de système IDENTITY_PROVIDER_TYPE.

      Par exemple, vous pouvez utiliser les éléments suivants pour vérifier IDENTITY_PROVIDER_TYPE :

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

    Pour plus d'informations, voir Procédure ENABLE_EXTERNAL_AUTHENTICATION.

Mapper des schémas et des rôles Oracle Database

Les utilisateurs Azure AD seront mappés à un schéma de base de données et éventuellement à un ou plusieurs rôles de base de données.

Vous disposez des options suivantes pour mapper des schémas et des rôles de base de données Oracle aux utilisateurs Microsoft Azure AD :

Configurer des connexions de client à Azure AD

Il existe de nombreuses façons de configurer un client pour qu'il se connecte à une instance d'Oracle Autonomous AI Database sur une infrastructure Exadata dédiée à l'aide de jetons Azure AD.

Vous devez choisir la méthode de connexion de client qui convient le mieux à votre environnement. Ce guide fournit des exemples de connexion de SQL*Plus avec différentes méthodes pour obtenir un jeton d'accès Azure AD OAuth2. Tous les clients Oracle Database version 19c peuvent accepter un jeton transmis sous forme de fichier. Les pilotes JDBC-thin, Instant Client et ODP.net acceptent également le jeton au moyen de l'API client de base de données à partir d'une application. Les outils Oracle Database tels que SQL*Plus ne peuvent pas extraire les jetons directement. Par conséquent, des outils tels que PowerShell ou l'interface de ligne de commande Azure doivent être utilisés pour extraire le jeton d'accès Azure AD OAuth2. Pour extraire un jeton Azure AD, le client doit être enregistré au moyen du processus d'enregistrement d'application Azure AD. L'enregistrement du client est similaire à l'enregistrement d'Oracle Autonomous AI Database sur un serveur d'infrastructure Exadata dédié dans Azure AD à l'aide de l'enregistrement d'application. La base de données et le client doivent être enregistrés dans Azure AD.

La base de données doit être enregistrée afin que le client puisse obtenir l'autorisation d'obtenir un jeton d'accès pour la base de données. Le client doit être enregistré pour qu'Azure AD puisse reconnaître qu'un client approuvé demande un jeton d'accès.

Note : Sur le client, vous devez définir les paramètres TOKEN_AUTH et TOKEN_LOCATION dans le fichier sqlnet.ora pour extraire le jeton d'accès à la base de données Azure AD d'un emplacement et l'utiliser lorsque la connexion à la barre oblique / est utilisée. Les détails exacts sont présentés sous Configurer SQL*Plus pour les jetons d'accès Azure AD.

Voir les articles Microsoft Azure suivants pour plus d'informations sur la connexion des clients à Azure AD :

Flux opérationnel pour la connexion de client SQL*Plus dans PowerShell à la base de données d'intelligence artificielle autonome

La connexion entre l'utilisateur Azure, Azure AD et l'instance Autonomous AI Database dépend de la transmission du jeton OAuth2 dans tous ces composants.

Reportez-vous à [Flux opérationnel pour SQLConnexion plus de client dans PowerShell à Oracle Database](/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database/dedicated/adbaa&id=DBSEG-GUID-455CDC87-C5A1-4A58-801A-29D216CB66B5) dans *Security Guide pour un exemple qui montre l'utilisation du flux de données d'identification par mot de passe du responsable de la ressource (ROPC) avec un client public.

Enregistrement d'un client à l'aide de l'enregistrement d'application Azure AD

Ce type d'enregistrement est similaire à l'enregistrement d'une base de données Autonomous AI Database avec l'enregistrement d'une application Azure AD. Pour plus de détails, reportez-vous aux sections suivantes :

Exemples d'extraction de jetons Azure AD OAuth2

Pour obtenir des exemples montrant les différentes façons d'extraire des jetons Azure AD OAuth2, voir Exemples d'extraction de jetons Azure AD OAuth2 dans le guide de sécurité.

Configurer des jetons d'accès SQL*Plus pour Azure AD

Vous devez configurer SQL*Plus pour extraire le jeton d'accès à la base de données Azure AD à partir d'un emplacement et l'utiliser lorsque la connexion par barre oblique est utilisée. Reportez-vous à Configuration de SQL*Plus pour les jetons d'accès Azure AD dans le guide de sécurité pour obtenir des instructions détaillées.

Dépannage des connexions Microsoft Entra ID

Vous pouvez utiliser des fichiers trace pour diagnostiquer les problèmes liés aux connexions Microsoft Entra ID. Vous pouvez également corriger facilement les erreurs ORA-12599 et ORA-03114.