Utilizzare il principal del servizio Azure per accedere alle risorse di Azure

È possibile utilizzare un principal del servizio Azure con Autonomous Database per accedere alle risorse Azure senza dover creare e memorizzare gli oggetti delle credenziali personali nel database.

Abilita principal servizio Azure

Abilitare l'autenticazione del principal del servizio Azure per consentire ad Autonomous Database di accedere ai servizi Azure senza fornire credenziali a lungo termine.

Nota

Per utilizzare Autonomous Database con l'autenticazione del principal del servizio Azure, è necessario un account Microsoft Azure. Per informazioni dettagliate, vedere Microsoft Azure.

Per abilitare l'autenticazione del principal del servizio Azure su Autonomous Database, effettuare le operazioni riportate di seguito.

  1. Ottenere l'ID tenant di Microsoft Azure Active Directory.

    Per ulteriori informazioni, vedere Come trovare l'ID tenant di Azure Active Directory.

  2. Abilita il principal del servizio Azure con DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.

    Ad esempio:

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

    Ciò consente l'autenticazione del principal del servizio Azure e crea un'applicazione Azure su Autonomous Database.

    Se si desidera che l'utente specificato disponga dei privilegi per abilitare il principal del servizio Azure per altri utenti, impostare il parametro params grant_option su TRUE.

    Ad esempio:

    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;
    /

    Dopo aver eseguito questo comando, adb_user può abilitare il principal del servizio Azure per un altro utente. Ad esempio, se si esegue la connessione come adb_user, è possibile eseguire il comando seguente:

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

Per ulteriori informazioni, vedere ENABLE_PRINCIPAL_AUTH Procedure.

Fornire il consenso dell'applicazione Azure e assegnare i ruoli

Per accedere alle risorse Azure da Autonomous Database con l'autenticazione del principal del servizio Azure, è necessario fornire il consenso all'applicazione Azure e assegnare i ruoli per consentire l'accesso alle risorse Azure.

Per fornire il consenso dell'applicazione Azure e assegnare i ruoli, effettuare le operazioni riportate di seguito.

  1. Su Autonomous Database, query CLOUD_INTEGRATIONS.

    Ad esempio:

    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 vista CLOUD_INTEGRATIONS è disponibile per l'utente ADMIN o per un utente con ruolo DWROLE.

  2. In un browser aprire l'URL del consenso di Azure, specificato dal parametro azure_consent_url.

    Ad esempio, copiare e immettere l'URL nel browser:

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

    Viene visualizzata la pagina Autorizzazioni richieste con una richiesta di consenso simile a quella riportata di seguito.

    Segue la descrizione di azure_consent.png
    Descrizione dell'immagine azure_consent.png
  3. Per fornire il consenso, fare clic su Accetta.
  4. Nella console di Microsoft Azure assegnare i ruoli che si desidera concedere per consentire l'accesso alle risorse di Azure specificate.

    Ad esempio, se si desidera accedere a Azure Blob Storage da Autonomous Database, assegnare i ruoli in modo che l'applicazione Azure (il principal del servizio) abbia accesso a Azure Blob Storage.

    Nota

    Per utilizzare Azure Blob Storage, è necessario un account di storage Azure. Se non si dispone di un account di storage Azure, creare un account di storage. Per ulteriori informazioni, vedere Creare un account di storage.
    1. Nella console di Microsoft Azure, in Servizi Azure, selezionare Account di storage.
    2. In Account di storage, fare clic sull'account di storage a cui si desidera concedere l'accesso al principal del servizio.
    3. Sulla sinistra, fare clic su Access Control (IAM).
    4. Nell'area superiore, fare clic su + Aggiungi → Aggiungi assegnazione ruolo.
    5. Nell'area di ricerca immettere il testo per limitare l'elenco dei ruoli visualizzati. Ad esempio, immettere Blob memorizzazione per visualizzare i ruoli disponibili che contengono Blob memorizzazione.
    6. Selezionare uno o più ruoli appropriati per l'accesso che si desidera concedere. Ad esempio, selezionare Contributore dati BLOB di memorizzazione.
    7. Fare clic su Avanti.
    8. In Aggiungi assegnazione ruolo, in Membri fare clic su + Seleziona membri.
    9. In Seleziona membri, nel campo di selezione immettere il valore azure_app_name elencato nel Passo 1 (la colonna param_value della vista CLOUD_INTEGRATIONS).
    10. Selezionare l'applicazione.

      Ad esempio, fare clic su ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA

    11. Fare clic su Seleziona.
    12. Fare clic su Rivedi + assegna.
  5. Fare di nuovo clic su Rivedi + Assegna.

    Dopo aver assegnato un ruolo, è necessario attendere, poiché la propagazione delle assegnazioni dei ruoli in Azure può richiedere fino a cinque minuti.

Questo esempio mostra i passi per concedere ruoli per l'accesso a Azure Blob Storage. Se si desidera fornire l'accesso per altri servizi Azure, è necessario eseguire passi equivalenti per i servizi Azure aggiuntivi per consentire all'applicazione Azure (il principal del servizio) di accedere al servizio Azure.

Usa principal servizio Azure con DBMS_CLOUD

Quando si effettuano chiamate DBMS_CLOUD per accedere alle risorse di Azure e si specifica il nome della credenziale come AZURE$PA, l'autenticazione sul lato di Azure avviene utilizzando il principal del servizio di Azure.

Se non lo si è già fatto, eseguire i passi dei prerequisiti necessari:

Per utilizzare una procedura o una funzione DBMS_CLOUD con il principal del servizio Azure, specificare AZURE$PA come nome credenziale. Ad esempio, è possibile accedere a Azure Blob Storage utilizzando le credenziali del principal del servizio Azure come indicato di seguito.

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

Se si confrontano i passi necessari per accedere allo storage degli oggetti, come mostrato in Crea credenziali e copia dati in una tabella esistente, notare che il Passo 1, la creazione delle credenziali non è necessaria perché si utilizza un principal del servizio Azure denominato AZURE$PA.

Disabilita principal servizio Azure

Per disabilitare l'accesso alle risorse Azure da Autonomous Database con il principal del servizio Azure, utilizzare DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.

Per disabilitare il principal del servizio Azure in Autonomous Database:

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

Se il valore provider è AZURE e username è un utente diverso dall'utente ADMIN, la procedura revoca i privilegi all'utente specificato. In questo caso, l'utente ADMIN e altri utenti possono continuare a utilizzare ADMIN.AZURE$PA e l'applicazione creata per l'istanza di Autonomous Database rimane nell'istanza.

Quando il valore provider è AZURE e username è ADMIN, la procedura disabilita l'autenticazione basata sul principal del servizio Azure ed elimina l'applicazione principal del servizio Azure sull'istanza di Autonomous Database. In questo caso, se si desidera abilitare il principal del servizio Azure, è necessario eseguire tutti i passi necessari per utilizzare di nuovo il principal del servizio Azure, inclusi i seguenti:

Per ulteriori informazioni, vedere DISABLE_PRINCIPAL_AUTH Procedure.

Note per principal servizio Azure

Note per l'utilizzo del principal del servizio Azure.

  • Clonazione di un'istanza di Autonomous Database con il principal del servizio Azure: quando si duplica un'istanza con il principal del servizio Azure abilitato, la configurazione del principal del servizio Azure non viene trasferita nella copia. Eseguire i passi per abilitare il principal del servizio Azure sulla copia se si desidera abilitare il principal del servizio Azure su un'istanza duplicata.