Utilizzare Azure Service Principal 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 i propri oggetti delle credenziali nel database.

Abilita Service Principal di Azure

Abilita 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 ulteriori informazioni, vedere Microsoft Azure.

Per abilitare l'autenticazione del principal del servizio Azure su Autonomous Database:

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

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

  2. Abilitare il principal del servizio di 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ò abilita 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 di 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 di Azure per un altro utente. Ad esempio, se si esegue la connessione come adb_user, è possibile eseguire il seguente comando:

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

Per ulteriori informazioni, vedere ENABLE_PRINCIPAL_AUTH Procedura.

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 acconsentire 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. Sulla query Autonomous Database 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 di 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 alla seguente:

    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 lo storage Blob di Azure, è necessario un account di storage di Azure. Se non si dispone di un account di memorizzazione di Azure, creare un account di memorizzazione. Per ulteriori informazioni, vedere Creare un account di memorizzazione.
    1. Nella console di Microsoft Azure, in Servizi di Azure, selezionare Account di storage.
    2. In Account di memorizzazione, fare clic sull'account di memorizzazione a cui si desidera concedere l'accesso al principal del servizio.
    3. A sinistra, fare clic su IAM (Access Control).
    4. Nell'area superiore, fare clic su + Add → Aggiungi assegnazione ruolo.
    5. Nell'area di ricerca immettere il testo per limitare l'elenco dei ruoli visualizzati. Ad esempio, immettere Blob di memorizzazione per visualizzare i ruoli disponibili contenenti Blob di memorizzazione.
    6. Selezionare uno o più ruoli appropriati per l'accesso che si desidera concedere. Ad esempio, selezionare Collaboratore dati BLOB di memorizzazione.
    7. Successivo.
    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 Review + Assign.
  5. Fare di nuovo clic su Rivedi + Assegna.

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

Questo esempio mostra i passi per concedere ruoli per l'accesso allo storage BLOB di Azure. Se si desidera fornire l'accesso ad 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 Service Principal di 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 Azure viene eseguita utilizzando il principal del servizio di Azure.

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

Per utilizzare una procedura o una funzione DBMS_CLOUD con il principal del servizio di Azure, specificare AZURE$PA come nome della credenziale. Ad esempio, è possibile accedere a Azure Blob Storage utilizzando le credenziali del principal del servizio di 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 illustrato in Crea credenziali e copia dati in una tabella esistente, tenere presente che il passo 1, la creazione delle credenziali non è necessaria perché si utilizza un principal del servizio di Azure denominato AZURE$PA.

Disabilita Service Principal di 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 dell'utente specificato. In questo caso, l'utente ADMIN e gli altri utenti possono continuare a utilizzare ADMIN.AZURE$PA e l'applicazione creata per l'istanza di Autonomous Database rimane nell'istanza.

Se 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 nell'istanza di Autonomous Database. In questo caso, se si desidera abilitare il principal del servizio di Azure, è necessario eseguire di nuovo tutti i passi necessari per utilizzare il principal del servizio di Azure, inclusi i seguenti:

Per ulteriori informazioni, vedere DISABLE_PRINCIPAL_AUTH Procedura.

Note per Azure Service Principal

Note per l'utilizzo del principal del servizio di Azure.

  • Duplicazione 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 alla 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.