Utilisation du principal de service Azure pour accéder aux ressources Azure

Vous pouvez utiliser un principal de service Azure avec Autonomous Database pour accéder aux ressources Azure sans avoir à créer et à stocker vos propres objets d'informations d'identification dans la base de données.

Activation du principal de service Azure

Activez l'authentification de principal de service Azure pour permettre à Autonomous Database d'accéder aux services Azure sans fournir d'informations d'identification à long terme.

Remarque

Pour utiliser Autonomous Database avec l'authentification de principal de service Azure, vous avez besoin d'un compte Microsoft Azure. Pour plus d'informations, reportez-vous à Microsoft Azure.

Pour activer l'authentification de principal de service Azure sur Autonomous Database, procédez comme suit :

  1. Obtenez votre ID de locataire Microsoft Azure Active Directory.

    Pour plus d'informations, reportez-vous à Recherche de l'ID de locataire Azure Active Directory.

  2. Activez le principal de service Azure avec DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.

    Par exemple :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user',
            params   => JSON_OBJECT('azure_tenantid' value 'azure_tenantID'));
    END;
    /

    Cela permet l'authentification du principal de service Azure et crée une application Azure sur Autonomous Database.

    Pour que l'utilisateur indiqué dispose de privilèges permettant d'activer le principal de service Azure pour d'autres utilisateurs, définissez le paramètre params grant_option sur TRUE.

    Par exemple :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user',
            params   => JSON_OBJECT('grant_option' value TRUE, 
                                    'azure_tenantid' value 'azure_tenantID'));
    END;
    /

    Une fois cette commande exécutée, adb_user peut activer le principal de service Azure pour un autre utilisateur. Par exemple, si vous connectez-vous en tant que adb_user, vous pouvez exécuter la commande suivante :

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user2');
    END;
    /

Pour plus d'informations, reportez-vous à Procédure ENABLE_PRINCIPAL_AUTH.

Octroi du consentement de l'application Azure et affectation de rôles

Pour accéder aux ressources Azure à partir d'Autonomous Database avec l'authentification de principal de service Azure, vous devez consentir à l'application Azure et affecter des rôles pour autoriser l'accès à vos ressources Azure.

Pour fournir le consentement de l'application Azure et affecter des rôles, procédez comme suit :

  1. Sur la requête Autonomous Database CLOUD_INTEGRATIONS.

    Par exemple :

    SELECT param_name, param_value FROM CLOUD_INTEGRATIONS;
    
    PARAM_NAME        PARAM_VALUE
    --------------- ------------------------------------------------------------------------------------------------------------------------------------------
    azure_tenantid    29981886-6fb3-44e3-82ab-d870b0e8e7eb
    azure_consent_url https://login.microsoftonline.com/f8cdef31-91255a/oauth2/v2.0/authorize?client_id=d66f1b5-1250d5445c0b&response_type=code&scope=User.read
    azure_app_name    ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA

    La vue CLOUD_INTEGRATIONS est disponible pour l'utilisateur ADMIN ou pour un utilisateur doté du rôle DWROLE.

  2. Dans un navigateur, ouvrez l'URL de consentement Azure, indiquée par le paramètre azure_consent_url.

    Par exemple, copiez et entrez l'URL dans votre navigateur :

    https://login.microsoftonline.com/f8cdef31-91255a/oauth2/v2.0/authorize?client_id=d66f1b5-1250d5445c0b&response_type=code&scope=User.read

    La page Droits d'accès demandés s'ouvre et affiche une demande de consentement, semblable à la suivante :

    Description de l'image azure_consent.png
    Description de l'illustration azure_consent.png
  3. Pour donner votre consentement, cliquez sur Accepter.
  4. Dans la console Microsoft Azure, affectez les rôles à accorder pour autoriser l'accès aux ressources Azure spécifiées.

    Par exemple, si vous voulez accéder à Azure Blob Storage à partir d'Autonomous Database, affectez des rôles afin que l'application Azure (le principal de service) ait accès à Azure Blob Storage.

    Remarque

    Pour utiliser le stockage BLOB Azure, vous avez besoin d'un compte de stockage Azure. Si vous n'avez pas de compte de stockage Azure, créez un compte de stockage. Pour plus d'informations, reportez-vous à Créer un compte de stockage.
    1. Sur la console Microsoft Azure, sous Services Azure, sélectionnez Comptes de stockage.
    2. Sous Comptes de stockage, cliquez sur le compte de stockage auquel accorder l'accès au principal de service.
    3. Sur la gauche, cliquez sur Contrôle d'accès (IAM).
    4. Dans la zone supérieure, cliquez sur + Ajouter → Ajouter une affectation de rôle.
    5. Dans la zone de recherche, saisissez du texte pour restreindre la liste des rôles que vous voyez. Par exemple, entrez Blob de stockage pour afficher les rôles disponibles qui contiennent Blob de stockage.
    6. Sélectionnez un ou plusieurs rôles appropriés pour l'accès que vous voulez accorder. Par exemple, sélectionnez Contributeur de données BLOB de stockage.
    7. Cliquez sur Suivant.
    8. Dans Ajouter une affectation de rôle, sous Membres, cliquez sur + Sélectionner des membres.
    9. Sous Sélectionner des membres, dans le champ de sélection, entrez l'élément azure_app_name répertorié à l'étape 1 (colonne param_value de la vue CLOUD_INTEGRATIONS).
    10. Sélectionnez l'application.

      Par exemple, cliquez sur ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA.

    11. Cliquez sur Sélectionner.
    12. Cliquez sur Vérifier + affecter.
  5. Cliquez à nouveau sur Vérifier + Affecter.

    Après avoir affecté un rôle, vous devez attendre, car la propagation des affectations de rôle dans Azure peut prendre jusqu'à cinq minutes.

Cet exemple présente les étapes d'octroi de rôles pour l'accès au stockage BLOB Azure. Si vous souhaitez fournir l'accès à d'autres services Azure, vous devez effectuer des étapes équivalentes pour les services Azure supplémentaires afin d'autoriser l'application Azure (le principal de service) à accéder au service Azure.

Utilisation du principal de service Azure avec DBMS_CLOUD

Lorsque vous effectuez des appels DBMS_CLOUD pour accéder aux ressources Azure et que vous indiquez le nom des informations d'identification AZURE$PA, l'authentification côté Azure se produit à l'aide du principal de service Azure.

Si vous ne l'avez pas encore fait, effectuez les étapes prérequises requises :

Pour utiliser une procédure ou une fonction DBMS_CLOUD avec le principal de service Azure, indiquez AZURE$PA comme nom d'informations d'identification. Par exemple, vous pouvez accéder à Azure Blob Storage à l'aide des informations d'identification de principal de service Azure comme suit :

SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('AZURE$PA', 'https://treedata.blob.core.windows.net/treetypes/');

OBJECT_NAME BYTES CHECKSUM                 CREATED              LAST_MODIFIED        
----------- ----- ------------------------ -------------------- -------------------- 
trees.txt      58 aCB1qMOPVobDLCXG+2fcvg== 2022-04-07T23:03:01Z 2022-04-07T23:03:01Z

Si vous comparez les étapes requises pour accéder au stockage d'objets, comme indiqué dans Création d'informations d'identification et copie de données dans une table existante, notez que l'étape 1, Création d'informations d'identification n'est pas requise car vous utilisez un principal de service Azure appelé AZURE$PA.

Désactivation du principal de service Azure

Pour désactiver l'accès aux ressources Azure à partir d'Autonomous Database avec le principal de service Azure, utilisez DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.

Pour désactiver le principal de service Azure sur Autonomous Database, procédez comme suit :

BEGIN
    DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
        provider => 'AZURE',
        username => 'adb_user');
END;
/

Lorsque la valeur provider est AZURE et que username est un utilisateur autre que l'utilisateur ADMIN, la procédure révoque les privilèges de l'utilisateur indiqué. Dans ce cas, l'utilisateur ADMIN et les autres utilisateurs peuvent continuer à utiliser ADMIN.AZURE$PA et l'application créée pour l'instance Autonomous Database reste sur l'instance.

Lorsque la valeur provider est AZURE et que username est ADMIN, la procédure désactive l'authentification basée sur le principal de service Azure et supprime l'application de principal de service Azure sur l'instance Autonomous Database. Dans ce cas, si vous voulez activer le principal de service Azure, vous devez effectuer à nouveau toutes les étapes requises pour utiliser le principal de service Azure, notamment :

Pour plus d'informations, reportez-vous à Procédure DISABLE_PRINCIPAL_AUTH.

Remarques relatives au principal de service Azure

Remarques concernant l'utilisation du principal de service Azure.

  • Clonage d'une instance Autonomous Database avec le principal de service Azure : lorsque vous clonez une instance avec le principal de service Azure activé, la configuration du principal de service Azure n'est pas transférée vers le clone. Effectuez les étapes permettant d'activer le principal de service Azure sur le clone si vous voulez activer le principal de service Azure sur une instance clonée.