Usa autenticazione IAM (Identity and Access Management) con Autonomous Database

È possibile configurare Autonomous Database in modo che utilizzi l'autenticazione e l'autorizzazione Oracle Cloud Infrastructure Identity and Access Management (IAM) per consentire agli utenti IAM di accedere a un Autonomous Database con le credenziali IAM.

Nota

L'integrazione di Autonomous Database con Oracle Cloud Infrastructure (OCI) IAM è supportata nelle tenancy commerciali con domini di Identity e nell'IAM Oracle Cloud Infrastructure legacy, che non include i domini di Identity. Oracle Cloud Infrastructure IAM con domini di Identity è stato introdotto con nuove tenancy OCI create dopo l'8 novembre 2021. Autonomous Database supporta utenti e gruppi nei domini di Identity predefiniti e non predefiniti.

Informazioni sull'autenticazione IAM (Identity and Access Management) con Autonomous Database

L'integrazione IAM di Oracle Cloud Infrastructure con Autonomous Database supporta sia l'autenticazione della password del database che l'autenticazione basata su token. See Authenticating and Authorizing IAM Users for Oracle Autonomous Databases for complete details about the architecture for using IAM users on Autonomous Database.

Autenticazione password del database IAM

Nota

È possibile utilizzare qualsiasi client di database 12c e superiore supportato per l'accesso con password del database IAM ad Autonomous Database.

Una password del database IAM di Oracle Cloud Infrastructure consente a un utente IAM di eseguire il login a un'istanza di Autonomous Database poiché gli utenti di Oracle Database in genere eseguono il login con un nome utente e una password. L'utente immette il nome utente IAM e la password del database IAM. Una password del database IAM è diversa dalla password della console di Oracle Cloud Infrastructure. Utilizzando un utente IAM con il verificatore password è possibile eseguire il login ad Autonomous Database con qualsiasi client di database supportato.

Autenticazione basata su token SSO IAM (Identity and Access Management)

Esistono diversi modi in cui un client di database può ottenere un token di database IAM:

  • Un'applicazione o uno strumento client può richiedere il token del database da IAM per l'utente e può passare il token del database tramite l'API client. L'utilizzo dell'API per l'invio del token sostituisce altre impostazioni nel client del database. Questo tipo di utilizzo del token del database IAM è supportato per i seguenti client:

    • JDBC-thin su tutte le piattaforme
    • Oracle Instant Client OCI-C su Linux
    • Oracle Data Provider for .NET (ODP.NET) Core
  • Se l'applicazione o lo strumento non supporta la richiesta di un token di database IAM tramite l'API client, l'utente IAM può in primo luogo utilizzare l'interfaccia della riga di comando (CLI) di Oracle Cloud Infrastructure per recuperare il token di database IAM e salvarlo in una posizione file. Ad esempio, per utilizzare SQL*Plus e altre applicazioni e strumenti utilizzando questo metodo di connessione, è innanzitutto necessario ottenere il token di database utilizzando l'interfaccia della riga di comando (CLI) di Oracle Cloud Infrastructure (OCI). Se il client di database è configurato per i token di database IAM, quando un utente esegue il login con il form di login barra, il driver di database utilizza il token di database IAM salvato in una posizione file predefinita o specificata.

  • Un'applicazione o uno strumento client possono utilizzare un principal dell'istanza IAM di Oracle Cloud Infrastructure o un principal di risorse per ottenere un token del database IAM e utilizzare il token del database IAM per autenticarsi in un'istanza di Autonomous Database.

  • Gli utenti IAM e le applicazioni OCI possono richiedere un token di database da IAM con diversi metodi, incluso l'uso di una chiave API. Per un esempio, vedere Configurazione di una connessione client per SQL*Plus che utilizza un token IAM. See About Authenticating and Authorizing IAM Users for an Oracle Autonomous Database for a description of other methods such as using a delegation token within an OCI cloud shell.

Se un utente immette un nome utente o una password per eseguire il login, il driver del database utilizza il metodo di verifica della password per accedere al database indipendentemente dall'impostazione del token del database del client.

Prerequisiti per l'autenticazione IAM (Identity and Access Management) su Autonomous Database

Prima di utilizzare l'autenticazione IAM (Identity and Access Management) su Autonomous Database, è necessario assicurarsi che:

Utilizzare il servizio di networking per aggiungere un gateway di servizi, una regola di instradamento e una regola di sicurezza di uscita alla VCN (rete cloud virtuale) e alle subnet in cui risiedono le risorse di Autonomous Database.

  1. Creare un gateway di servizi nella VCN (rete cloud virtuale) in cui le risorse di Autonomous Database risiedono seguendo le istruzioni riportate nel task 1: creare il gateway di servizi nella documentazione di Oracle Cloud Infrastructure.
  2. Dopo aver creato il gateway del servizio, aggiungere una regola di instradamento e una regola di sicurezza di uscita a ogni subnet (nella VCN) in cui risiedono le risorse di Autonomous Database in modo che queste risorse possano utilizzare il gateway per utilizzare l'autenticazione IAM (Identity and Access Management):
    1. Andare alla pagina Dettagli subnet per la subnet.
    2. Nella scheda Informazioni subnet, fare clic sul nome della tabella di instradamento della subnet per visualizzare la relativa pagina Dettagli tabella di instradamento.
    3. Nella tabella delle regole di instradamento esistenti, verificare se esiste già una regola con le seguenti caratteristiche:
      • Destinazione: tutti i servizi IAD in Oracle Services Network
      • Tipo di destinazione: gateway del servizio
      • Destinazione: il nome del gateway di servizi appena creato nella VCN

      Se la regola non esiste, fare clic su Aggiungi regole di instradamento e aggiungere una regola di instradamento con queste caratteristiche.

    4. Tornare alla pagina Dettagli subnet per la subnet.
    5. Nella tabella Elenchi di sicurezza della subnet, fare clic sul nome della lista di sicurezza della subnet per visualizzare la relativa pagina Dettagli lista di sicurezza.
    6. Nel menu laterale, in Risorse, fare clic su Regole di uscita.
    7. Nella tabella delle regole di uscita esistenti, verificare se esiste già una regola con le seguenti caratteristiche:
      • Stateless: No
      • Destinazione: tutti i servizi IAD in Oracle Services Network
      • Protocollo IP: TCP
      • Intervallo porte di origine: tutte
      • Intervallo di porte di destinazione: 443
    8. Se una regola di questo tipo non esiste, fare clic su Aggiungi regole di uscita e aggiungere una regola di uscita con queste caratteristiche.

Le impostazioni del proxy HTTP nell'ambiente devono consentire al database di accedere al provider di servizi cloud.

Queste impostazioni vengono definite dall'amministratore della flotta durante la creazione dell'infrastruttura Exadata Cloud@Customer, come descritto in Uso della console per eseguire il provisioning di Exadata Database Service su Cloud@Customer.

Nota

La configurazione di rete, incluso il proxy HTTP, può essere modificata solo fino a quando lo stato dell'infrastruttura Exadata non è Richiede attivazione. Una volta attivato, non è possibile modificare tali impostazioni.

L'impostazione di un proxy HTTP per un'infrastruttura Exadata già fornita richiede una richiesta di servizio (SR) in My Oracle Support. Per informazioni dettagliate, vedere Create a Service Request in My Oracle Support.

Modifica dei provider di identità esterni in Autonomous Database

Descrive i passi per modificare il provider di identità esterno da autenticazione e autorizzazione (IAM) a un altro provider di autenticazione esterno e viceversa.

Per impostazione predefinita, l'autenticazione e l'autorizzazione per gli utenti di Oracle Cloud Infrastructure (IAM) sono abilitate per gli Autonomous Database e gli Autonomous Container Database di cui è stato appena eseguito il provisioning. Esistono altri schemi di autenticazione esterni, AD esempio Utenti gestiti centralmente con Active Directory (CMU-AD), Azure AD e Kerberos, che è possibile abilitare per Autonomous Database. Tuttavia, può essere abilitato un solo schema di autenticazione esterna alla volta.

Per consentire agli utenti del database di connettersi ad Autonomous Database utilizzando un altro schema di autenticazione esterno, effettuare le operazioni riportate di seguito.
  1. Disabilitare l'integrazione IAM utilizzando la procedura DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION:
    Ad esempio:
    BEGIN    
      DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
    END;
    /
    Per ulteriori informazioni, vedere DISABLE_EXTERNAL_AUTHENTICATION Procedura.
  2. Per configurare un altro schema di autenticazione esterno di propria scelta, attenersi alla procedura descritta nelle pagine riportate di seguito.
  3. Riabilita gli utenti IAM per connettersi ad Autonomous Database utilizzando l'autenticazione e l'autorizzazione Oracle Cloud Infrastructure (IAM).
    In qualità di utente ADMIN, eseguire la procedura DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION con i parametri riportati di seguito.
    BEGIN
      DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
        type => 'OCI_IAM'
        force => TRUE
        );
    END;
    /

    L'esempio precedente disabilita qualsiasi provider di autenticazione esterno attualmente abilitato e abilita l'autenticazione e l'autorizzazione Oracle Cloud Infrastructure (IAM).

    In questo esempio:
    • force è impostato su TRUE per disabilitare l'autenticazione esterna attualmente abilitata.
    • type è impostato su 'OCI_IAM' per abilitare e utilizzare l'autenticazione e l'autorizzazione Oracle Cloud Infrastructure (IAM).

    Nota

    Per impostazione predefinita, il parametro force è FALSE. Quando è abilitato un altro metodo di autenticazione esterno e force è FALSE, DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION restituisce il seguente errore: ORA-20004: Another external authentication is already enabled.

    Per ulteriori informazioni, vedere ENABLE_EXTERNAL_AUTHENTICATION Procedura.

  4. Verificare il valore del parametro di sistema IDENTITY_PROVIDER_TYPE come mostrato di seguito:
    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    NAME                   VALUE   
    ---------------------- ------- 
    identity_provider_type OCI_IAM 

Crea gruppi e criteri IAM (Identity and Access Management) per gli utenti IAM

Descrive i passi per scrivere le istruzioni dei criteri per un gruppo IAM per abilitare l'accesso utente IAM alle risorse Oracle Cloud Infrastructure, in particolare alle istanze di Autonomous Database.

Un criterio è un gruppo di istruzioni che specifica chi può accedere a determinate risorse e come. È possibile concedere l'accesso per l'intera tenancy, i database di un compartimento o i singoli database. Ciò significa che si scrive un'istruzione criterio che fornisce a un gruppo specifico un tipo specifico di accesso a un tipo specifico di risorsa all'interno di un compartimento specifico.

Nota

Per utilizzare i token IAM per accedere ad Autonomous Database, è necessario definire un criterio. Quando si utilizzano le password del database IAM per accedere ad Autonomous Database, non è necessario un criterio.

Per abilitare Autonomous Database in modo da consentire agli utenti IAM di connettersi al database utilizzando i token IAM, effettuare le operazioni riportate di seguito.

  1. Eseguire i prerequisiti di Oracle Cloud Infrastructure Identity and Access Management creando un gruppo e aggiungendo utenti al gruppo.

    Ad esempio, creare il gruppo sales_dbusers.

    Per ulteriori informazioni, vedere Gestione dei gruppi.

  2. Scrivere le istruzioni dei criteri per consentire l'accesso alle risorse di Oracle Cloud Infrastructure.
    1. Nella console di Oracle Cloud Infrastructure fare clic su Identità e sicurezza.
    2. In Identità e sicurezza fare clic su Criteri.
    3. Per un criterio di scrittura, fare clic su Crea criterio.
    4. Nella pagina Crea criterio, immettere un nome e una descrizione.
    5. Nella pagina Crea criterio, selezionare Mostra editor manuale.
    6. Utilizzare la Costruzione guidata criteri per creare un criterio.

      Ad esempio, per creare un criterio che consenta agli utenti del gruppo IAM DBUsers di accedere a qualsiasi Autonomous Database nella propria tenancy:

      Allow group DBUsers to use autonomous-database-family in tenancy
      Ad esempio, per creare un criterio che limiti i membri del gruppo DBUsers ad accedere agli Autonomous Database solo nel compartimento testing_compartment:
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment 
      Ad esempio, per creare un criterio che limiti l'accesso di gruppo a un singolo database in un compartimento:
      allow group DBUsers to use autonomous-database-family in compartment testing_compartment where target.database.id = 'ocid1.autonomousdatabase.oc1.iad.aaaabbbbcccc'

      Per ulteriori informazioni sui criteri IAM per l'accesso al database, vedere Creating an IAM Policy to Authorize Users Authenticating with Tokens in Database Security Guide.

    7. Fare clic su Crea.

      Per ulteriori informazioni sui criteri, vedere Gestione dei criteri.

Note per la creazione di criteri da utilizzare con gli utenti IAM in Autonomous Database:

  • I criteri possono consentire agli utenti IAM di accedere alle istanze di Autonomous Database nell'intera tenancy, in un compartimento o possono limitare l'accesso a una singola istanza di Autonomous Database.

  • È possibile utilizzare il principal dell'istanza o il principal delle risorse per recuperare i token del database per stabilire una connessione dall'applicazione a un'istanza di Autonomous Database. Se si utilizza un principal istanza o un principal risorsa, è necessario mappare un gruppo dinamico. Pertanto, non è possibile mappare in modo esclusivo i principal delle istanze e delle risorse; è possibile mapparli solo tramite un mapping condiviso e inserire l'istanza o l'istanza di risorsa in un gruppo dinamico IAM.

    È possibile creare gruppi dinamici e fare riferimento ai gruppi dinamici nei criteri creati per accedere a Oracle Cloud Infrastructure. Per i dettagli, vedere Pianificare i controlli degli accessi e creare le risorse di supporto e Gestione dei gruppi dinamici.

Aggiungi utenti IAM su Autonomous Database

Per aggiungere utenti IAM per consentire l'accesso ad Autonomous Database, mappare gli utenti globali del database ai gruppi IAM o agli utenti con istruzioni CREATE USER o ALTER USER (con la clausola IDENTIFIED GLOBALLY AS).

L'autorizzazione degli utenti IAM a un'istanza di Autonomous Database funziona mediante il mapping degli utenti globali (schemi) IAM agli utenti IAM (mapping esclusivo) o ai gruppi IAM (mapping dello schema condiviso).

Per autorizzare gli utenti IAM su un'istanza di Autonomous Database, effettuare le operazioni riportate di seguito.

  1. Eseguire il login come utente ADMIN al database abilitato per l'utilizzo di IAM (l'utente ADMIN dispone dei privilegi di sistema CREATE USER e ALTER USER necessari per questi passi).
  2. Creare un mapping tra l'utente (schema) di Autonomous Database con le istruzioni CREATE USER o ALTER USER e includere la clausola IDENTIFIED GLOBALLY AS, specificando il nome del gruppo IAM.

    Utilizzare la sintassi seguente per mappare un utente globale a un gruppo IAM:

    CREATE USER global_user IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_GROUP_NAME';

    Ad esempio, per mappare un gruppo IAM denominato db_sales_group a un utente globale del database condiviso denominato sales_group:

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

    Questo crea un mapping utenti globale condiviso. Il mapping, con l'utente globale sales_group, è valido per tutti gli utenti del gruppo IAM. Pertanto, chiunque nel file db_sales_group può eseguire il login al database utilizzando le proprie credenziali IAM (attraverso il mapping condiviso dell'utente globale sales_group).

    L'esempio seguente mostra come eseguire questa operazione per un dominio non predefinito:

    CREATE USER shared_sales_schema IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=sales_domain/db_sales_group';
  3. Se si desidera creare mapping utente globali aggiuntivi per altri gruppi o utenti IAM, attenersi alla procedura riportata di seguito per ogni gruppo o utente IAM.

Nota

Gli utenti del database che non sono IDENTIFIED GLOBALLY possono continuare a eseguire il login come prima, anche quando l'Autonomous Database è abilitato per l'autenticazione IAM.

Per mappare in modo esclusivo un utente IAM locale a un utente globale di Oracle Database:

  1. Eseguire il login come utente ADMIN al database abilitato per l'utilizzo di IAM (l'utente ADMIN dispone dei privilegi di sistema CREATE USER e ALTER USER necessari per questi passi).

  2. Creare un mapping tra l'utente (schema) di Autonomous Database con le istruzioni CREATE USER o ALTER USER e includere la clausola IDENTIFIED GLOBALLY AS, specificando il nome utente IAM locale IAM.

    Ad esempio, per creare un nuovo utente globale del database denominato peter_fitch e mappare questo utente a un utente IAM locale esistente denominato peterfitch:

    CREATE USER peter_fitch IDENTIFIED GLOBALLY AS 'IAM_PRINCIPAL_NAME=peterfitch'

    L'esempio seguente mostra come creare l'utente specificando un dominio non predefinito, sales_domain:

    CREATE USER peter_fitch2 IDENTIFIED GLOBALLY AS
    'IAM_PRINCIPAL_NAME=sales_domain/peterfitch';

Aggiungi ruoli IAM su Autonomous Database

Facoltativamente, creare ruoli globali per fornire ulteriori ruoli e privilegi di database agli utenti IAM quando più utenti IAM vengono mappati allo stesso utente globale condiviso.

L'uso dei ruoli globali è facoltativo quando si utilizza un mapping IAM esclusivo a un utente (schema) o un mapping utenti condiviso su Autonomous Database. Ad esempio, tutti i privilegi e i ruoli possono essere concessi allo schema condiviso e a tutti gli utenti IAM che eseguono il mapping allo schema condiviso verranno concessi i privilegi e i ruoli assegnati allo schema condiviso.

È possibile utilizzare un ruolo globale per differenziare facoltativamente gli utenti che utilizzano lo stesso schema condiviso. Ad esempio, un set di utenti può avere tutti lo stesso schema condiviso e lo schema condiviso può avere il privilegio CREATE SESSION. I ruoli globali possono quindi essere utilizzati per fornire privilegi e ruoli differenziati assegnati a diversi gruppi di utenti che utilizzano tutti lo stesso schema condiviso.

La concessione di ruoli aggiuntivi agli utenti IAM in Autonomous Database funziona mediante il mapping dei ruoli globali di Autonomous Database ai gruppi IAM.

Per mappare i ruoli globali di Autonomous Database ai gruppi IAM, effettuare le operazioni riportate di seguito.

  1. Eseguire il login come utente ADMIN al database abilitato per l'utilizzo di IAM (l'utente ADMIN dispone dei privilegi di sistema CREATE USER e ALTER USER necessari per questi passi).
  2. Impostare l'autorizzazione del database per i ruoli di Autonomous Database con le istruzioni CREATE ROLE o ALTER ROLE e includere la clausola IDENTIFIED GLOBALLY AS, specificando il nome del gruppo IAM.

    Utilizzare la sintassi seguente per mappare un ruolo globale a un gruppo IAM:

    CREATE ROLE global_role IDENTIFIED GLOBALLY AS
        'IAM_GROUP_NAME=IAM_GROUP_of_WHICH_the_IAM_USER_IS_a_MEMBER';

    Ad esempio, per mappare un gruppo IAM denominato ExporterGroup a un ruolo globale del database condiviso denominato export_role:

    CREATE ROLE export_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=ExporterGroup';
    

    L'esempio seguente mostra come creare il ruolo specificando un dominio non predefinito, sales_domain:

    CREATE ROLE export_role IDENTIFIED GLOBALLY AS
         'IAM_GROUP_NAME=sales_domain/ExporterGroup';
    

    Tutti i membri del dominio ExporterGroup nel dominio sales_domain saranno autorizzati con il ruolo globale del database export_role quando eseguono il login al database.

  3. Utilizzare le istruzioni GRANT per concedere i privilegi o altri ruoli richiesti al ruolo globale.
    GRANT CREATE SESSION TO export_role;
    GRANT DWROLE TO export_role;
  4. Se si desidera associare un ruolo di database esistente a un gruppo IAM, utilizzare l'istruzione ALTER ROLE per modificare il ruolo di database esistente per mappare il ruolo a un gruppo IAM. Utilizzare la sintassi seguente per modificare un ruolo di database esistente per mapparlo a un gruppo IAM:
    ALTER ROLE existing_database_role 
       IDENTIFIED GLOBALLY AS 'IAM_GROUP_NAME=IAM_Group_Name';

Se si desidera aggiungere mapping di ruoli globali aggiuntivi per altri gruppi IAM, attenersi alla procedura riportata di seguito per ogni gruppo IAM.

Crea password database IAM per utenti IAM

Per aggiungere un utente IAM e consentire all'utente IAM di eseguire il login ad Autonomous Database fornendo un nome utente e una password, è necessario creare una password per il database IAM.

Per ulteriori informazioni, vedere Utilizzo delle password del database IAM.

Connettersi ad Autonomous Database con autenticazione IAM (Identity and Access Management)

Dopo che l'utente ADMIN del database mapperà gli utenti globali e i ruoli globali agli utenti IAM e ai gruppi IAM, gli utenti eseguono il login all'istanza di Autonomous Database utilizzando le credenziali IAM di Oracle Cloud Infrastructure o accedono al database tramite un token di database IAM di Oracle Cloud Infrastructure.

È comunque possibile eseguire il login ad Autonomous Database utilizzando il nome utente e la password dell'account del database locale (account utente del database non globale).

È possibile utilizzare un client di database per accedere a un'istanza di Autonomous Database come utente IAM di Oracle Cloud Infrastructure. Per utilizzare un client con credenziali di nome utente e password IAM Oracle Cloud Infrastructure e un verificatore di password, il client del database deve essere 12c o più recente.

In alternativa, è possibile utilizzare un token di database IAM Oracle Cloud Infrastructure per accedere a un'istanza di Autonomous Database con i client supportati:

Nota

Se l'istanza di Autonomous Database è in modalità limitata, solo gli utenti con il privilegio RESTRICTED SESSION, ad esempio ADMIN, possono connettersi al database.

Informazioni sulla connessione a un'istanza di Autonomous Database on Dedicated Exadata Infrastructure mediante IAM

Gli utenti IAM possono connettersi all'istanza di Autonomous Database on Dedicated Exadata Infrastructure utilizzando un verificatore password del database IAM o un token IAM.

L'uso del verificatore password del database IAM è simile al processo di autenticazione delle password di Oracle Database. Tuttavia, anziché memorizzare il verificatore password (hash cifrato della password) nell'infrastruttura Autonomous Database on Dedicated Exadata, il verificatore viene invece memorizzato nell'ambito del profilo utente IAM Oracle Cloud Infrastructure (OCI).

Il secondo metodo di connessione, l'uso di un token IAM per il database, è più moderno. L'uso dell'accesso basato su token è una soluzione migliore per le risorse cloud come Autonomous Database sull'infrastruttura Exadata dedicata. Il token si basa sulla forza che l'endpoint IAM può applicare. Questo può essere l'autenticazione a più fattori, che è più forte dell'uso delle sole password. Un altro vantaggio dell'utilizzo dei token è che il verificatore di password (che è considerato sensibile) non viene mai memorizzato o disponibile in memoria.

Connessioni client che utilizzano un verificatore password database IAM

Dopo aver configurato l'autorizzazione necessaria per l'utente IAM, questo utente può eseguire il login utilizzando l'applicazione client esistente, ad esempio SQL*Plus o SQLcl, senza ulteriori configurazioni.

L'utente IAM immette il nome utente IAM e la password del database IAM (non la password della console Oracle Cloud Infrastructure (OCI) utilizzando qualsiasi client di database attualmente supportato. L'unico vincolo è che la versione del client del database sia Oracle Database release 12.1.0.2 o successiva per utilizzare le password di Oracle Database 12c. Il client del database deve essere in grado di utilizzare il verificatore password 12C. L'uso della cifratura del verificatore 11G non è supportato con IAM. Non è necessaria alcuna configurazione speciale del client o dello strumento per consentire all'utente IAM di connettersi all'istanza di Autonomous Database on Dedicated Exadata Infrastructure.

Connessioni client che utilizzano un token

Per l'accesso del token IAM all'infrastruttura Autonomous Database on Dedicated Exadata, l'applicazione o lo strumento client richiede un token di database da IAM per l'utente IAM.

L'applicazione client passerà il token del database direttamente al client del database tramite l'API client del database.

Se l'applicazione o lo strumento non è stato aggiornato per richiedere un token IAM, l'utente IAM può utilizzare l'interfaccia della riga di comando (CLI) di Oracle Cloud Infrastructure (OCI) per richiedere e memorizzare il token del database. È possibile richiedere un token di accesso al database (db-token) utilizzando le seguenti credenziali:

  • Token di sicurezza (con autenticazione IAM), token di delega (nella cloud shell OCI) e API-keys, ovvero credenziali che rappresentano l'utente IAM per abilitare l'autenticazione
  • Token principal dell'istanza, che consentono agli attori (o ai principal) autorizzati di eseguire azioni sulle risorse del servizio dopo l'autenticazione
  • Token di principal risorsa, una credenziale che consente all'applicazione di autenticarsi ad altri servizi Oracle Cloud Infrastructure

Quando gli utenti IAM eseguono il login al client con una barra di login / e il parametro OCI_IAM è configurato (sqlnet.ora, tnsnames.ora o come parte di una stringa di connessione), il client del database recupera il token di database da un file. Se l'utente IAM sottomette un nome utente e una password, la connessione utilizzerà l'accesso al verificatore del database IAM descritto per le connessioni client che utilizzano verificatori delle password del database IAM. Le istruzioni riportate in questa guida mostrano come utilizzare l'interfaccia CLI OCI come applicazione di supporto per il token di database. Se l'applicazione o lo strumento è stato aggiornato per funzionare con IAM, seguire le istruzioni per l'applicazione o lo strumento. Alcuni casi d'uso comuni includono: SQL*Plus on premise, SQLcl on premise, SQL*Plus in Cloud Shell o applicazioni che utilizzano i wallet SEP.

Gli argomenti seguenti spiegano come:
  • Configurare una connessione client per SQL*Plus in modo che utilizzi una password di database IAM.

  • Configurare una connessione client per SQL*Plus che utilizza un token IAM.

  • Accedi al database tramite un token di database IAM Oracle Cloud Infrastructure utilizzando un principal istanza.

Configurazione di una connessione client per SQL*Plus che utilizza una password del database IAM

È possibile configurare SQL*Plus in modo che utilizzi una password di database IAM.

  • In qualità di utente IAM, eseguire il login all'istanza di Autonomous Database utilizzando la seguente sintassi:
    CONNECT user_name@db_connect_string
    Enter password: password

    In questa specifica, user_name è il nome utente IAM. È previsto un limite di 128 byte per il valore domain_name/user_name combinato.

    L'esempio riportato di seguito mostra in che modo l'utente IAM peter_fitch può eseguire il login a un'istanza di Autonomous Database.

    sqlplus /nolog
    connect peter_fitch@db_connect_string
    Enter password: password

    Alcuni caratteri speciali richiedono virgolette doppie intorno a user_name e password. Ad esempio:

    "peter_fitch@example.com"@db_connect_string
    
    "IAM database password"

Configurazione di una connessione client per SQL*Plus che utilizza un token IAM

È possibile configurare una connessione client per SQL*Plus che utilizza un token IAM.

  1. Assicurarsi di disporre di un account utente IAM.
  2. Contattare un amministratore IAM e un amministratore di Oracle Database per assicurarsi di disporre di un criterio che consenta di accedere al database nel compartimento o nella tenancy e di essere mappati a uno schema globale nel database.
  3. Se la tua applicazione o il tuo strumento non supportano l'integrazione IAM diretta, scarica, installa e configura l'interfaccia CLI OCI. Vedere Avvio rapido dell'interfaccia della riga di comando OCI. Impostare una chiave API nell'ambito della configurazione dell'interfaccia CLI OCI e selezionare i valori predefiniti.
    1. Impostare l'accesso alla chiave API per l'utente IAM.
    2. Recuperare il file db-token. Ad esempio:
      • Recupero di un file db-token con un file API-key utilizzando l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI):
        oci iam db-token get
      • Recupero di un token db-token con sicurezza (o sessione):
        oci iam db-token get --auth security_token

        Se il token di sicurezza è scaduto, verrà visualizzata una finestra in modo che l'utente possa eseguire di nuovo il login a OCI. Questo genera il token di sicurezza per l'utente. L'interfaccia CLI OCI utilizzerà questo token aggiornato per ottenere db-token.

      • Recupero di un token db-token con delega: quando si esegue il login alla cloud shell, il token di delega viene generato e posizionato automaticamente nella directory /etc. Per ottenere questo token, eseguire il comando seguente nella cloud shell:
        oci iam db-token get
      • Recupero di un token di istanza mediante l'interfaccia della riga di comando OCI:
        oci iam db-token get --auth instance_principal
    3. Il client di database può anche essere configurato per recuperare un token di database utilizzando il nome utente IAM e la password del database IAM.
    Per ulteriori informazioni, vedere Chiavi e OCID obbligatori.
  4. Assicurarsi di utilizzare gli aggiornamenti delle release più recenti per le release client di Oracle Database 19c e 21c.
    Questa configurazione funziona solo con il client Oracle Database release 19c o 21c.
  5. Seguire il processo esistente per scaricare il wallet da Autonomous Database, quindi seguire le istruzioni per la configurazione per l'uso con SQL*Plus.
    1. Verificare che la corrispondenza DN sia abilitata cercando SSL_SERVER_DN_MATCH=ON in sqlnet.ora.
    2. Configurare il client di database in modo che utilizzi il token IAM aggiungendo TOKEN_AUTH=OCI_TOKEN al file sqlnet.ora. Poiché si utilizzeranno le posizioni predefinite per il file di token del database, non è necessario includere la posizione del token.
    I valori TOKEN_AUTH e TOKEN_LOCATION nelle stringhe di connessione tnsnames.ora hanno la precedenza sulle impostazioni sqlnet.ora per la connessione. Ad esempio, per la stringa di connessione, supponendo che il token si trovi nella posizione predefinita (~/.oci/db-token per Linux):
    (description= 
      (retry_count=20)(retry_delay=3)
      (address=(protocol=tcps)(port=1522)
      (host=example.us-phoenix-1.oraclecloud.com))
      (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
      (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
         OU=Oracle BMCS US, O=Example Corporation, 
         L=Redwood City, ST=California, C=US")
      (TOKEN_AUTH=OCI_TOKEN)))
    
Dopo l'aggiornamento della stringa di connessione con il parametro TOKEN_AUTH, l'utente IAM può eseguire il login all'istanza di Autonomous Database eseguendo il comando riportato di seguito per avviare SQL*Plus. È possibile includere il descrittore di connessione stesso o utilizzare il nome del descrittore dal file tnsnames.ora.
connect /@exampledb_high

oppure:

connect /@(description= 
  (retry_count=20)(retry_delay=3)
  (address=(protocol=tcps)(port=1522)
  (host=example.us-phoenix-1.oraclecloud.com))
  (connect_data=(service_name=aaabbbccc_exampledb_high.example.oraclecloud.com))
  (security=(ssl_server_cert_dn="CN=example.uscom-east-1.oraclecloud.com, 
     OU=Oracle BMCS US, O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

Il client di database è già configurato per ottenere un db-token perché TOKEN_AUTH è già stato impostato, tramite il file sqlnet.ora o in una stringa di connessione. Il client di database ottiene db-token e lo firma utilizzando la chiave privata, quindi invia il token ad Autonomous Database. Se vengono specificati un nome utente IAM e una password del database IAM anziché la barra /, il client del database si connetterà utilizzando la password anziché utilizzare db-token.

Utilizzare il principal dell'istanza per accedere ad Autonomous Database con l'autenticazione IAM (Identity and Access Management)

Dopo che l'utente ADMIN abilita IAM di Oracle Cloud Infrastructure su Autonomous Database, un'applicazione può accedere al database tramite un token di database IAM Oracle Cloud Infrastructure utilizzando un principal dell'istanza.

Per ulteriori informazioni, consulta la sezione relativa all'accesso all'API di Oracle Cloud Infrastructure utilizzando i principal delle istanze.

Configura autenticazione proxy

L'autenticazione proxy consente a un utente IAM di eseguire il proxy per uno schema di database per task quali la manutenzione dell'applicazione.

L'autenticazione proxy viene in genere utilizzata per autenticare l'utente reale e quindi autorizzarlo a utilizzare uno schema di database con i privilegi e i ruoli dello schema per gestire un'applicazione. Le alternative, ad esempio la condivisione della password dello schema dell'applicazione, sono considerate non sicure e non sono in grado di verificare quale utente effettivo ha eseguito un'azione.

Un caso d'uso può trovarsi in un ambiente in cui un utente IAM denominato che è un amministratore del database dell'applicazione può eseguire l'autenticazione utilizzando le proprie credenziali e quindi il proxy per un utente dello schema di database (ad esempio, hrapp). Questa autenticazione consente all'amministratore IAM di utilizzare i privilegi e i ruoli hrapp come utente hrapp per eseguire la manutenzione dell'applicazione, pur continuando a utilizzare le credenziali IAM per l'autenticazione. Un amministratore del database dell'applicazione può collegarsi al database e quindi eseguire il proxy per uno schema dell'applicazione per gestire questo schema.

È possibile configurare l'autenticazione proxy sia per i metodi di autenticazione password che per l'autenticazione token.

Configurazione dell'autenticazione proxy per l'utente IAM

Per configurare l'autenticazione proxy per un utente IAM, è necessario che l'utente IAM disponga già di un mapping a uno schema globale (mapping esclusivo o condiviso). Deve essere disponibile anche uno schema di database separato per l'utente IAM al proxy.

Dopo aver verificato che si dispone di questo tipo di utente, modificare l'utente del database per consentire all'utente IAM di eseguire il proxy.
  1. Eseguire il login all'istanza di Autonomous Database come utente che dispone dei privilegi di sistema ALTER USER.

  2. Concedere l'autorizzazione per l'utente IAM al proxy per l'utente IAM del database locale account.An non è possibile fare riferimento al comando, pertanto il proxy deve essere creato tra l'utente globale del database ( mappato all'utente IAM) e al database di destinazione user.In, nell'esempio riportato di seguito, hrapp è lo schema di database a cui eseguire il proxy e peterfitch_schema è l'utente globale del database mappato esclusivamente all'utente peterfitch.
    ALTER USER hrapp GRANT CONNECT THROUGH peterfitch_schema;

In questa fase, l'utente IAM può eseguire il login all'istanza di database utilizzando il proxy. Ad esempio:

Per connettersi utilizzando un verificatore password:
CONNECT peterfitch[hrapp]@connect_string
Enter password: password
Per connettersi utilizzando un token:
CONNECT [hrapp]/@connect_string

Convalida dell'autenticazione proxy utente IAM

È possibile convalidare la configurazione del proxy utente IAM sia per i metodi di autenticazione password che per i token.
  1. Eseguire il login all'istanza di Autonomous Database come utente che dispone dei privilegi di sistema CREATE USER e ALTER USER.

  2. Connettersi all'utente IAM ed eseguire i comandi SHOW USER e SELECT SYS_CONTEXT. Si supponga, ad esempio, di voler controllare l'autenticazione proxy dell'utente IAM peterfitch quando questi funge da proxy per l'utente del database hrapp. Sarà necessario connettersi al database utilizzando i diversi tipi di metodi di autenticazione mostrati qui, ma l'output dei comandi eseguiti sarà lo stesso per tutti i tipi.
    • Per l'autenticazione tramite password:
      CONNECT peterfitch[hrapp]/password\!@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP"
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "PASSWORD_GLOBAL"
      SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
      --The output should be "PETERFITCH_SCHEMA"
      SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
      --The output should be "HRAPP"
    • Per l'autenticazione del token:
      CONNECT [hrapp]/@connect_string
      SHOW USER;
      --The output should be USER is "HRAPP "
      SELECT SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD') FROM DUAL;
      --The output should be "TOKEN_GLOBAL"
      SELECT SYS_CONTEXT('USERENV','PROXY_USER') FROM DUAL;
      --The output should be "PETERFITCH_SCHEMA"
      SELECT SYS_CONTEXT('USERENV','CURRENT_USER') FROM DUAL;
      --The output should be "HRAPP"

Usa database link con utenti autenticati IAM

È possibile utilizzare un database link per connettersi da un'istanza di Autonomous Database a un'altra come utente IAM di Oracle Cloud Infrastructure.

È possibile utilizzare il database link utente connesso o utente fisso per connettersi a un Autonomous Database come utente IAM Oracle Cloud Infrastructure.

Nota

Il database link utente corrente non è supportato per la connessione a un Autonomous Database come utente IAM di Oracle Cloud Infrastructure.
  • Database link utente connesso: per un database link utente connesso, un utente IAM deve essere mappato a uno schema nei database di origine e di destinazione connessi da un database link. È possibile utilizzare un verificatore password del database o un token del database IAM per utilizzare un database link utente connesso.

  • Collegamento database utente fisso: è possibile creare un database link utente fisso utilizzando un utente del database o un utente IAM. Quando si utilizza un utente IAM come database link utente fisso, l'utente IAM deve disporre di un mapping di schema nel database di destinazione. L'utente IAM per un database link può essere configurato solo con un verificatore password.

Disabilita autenticazione IAM (Identity and Access Management) su Autonomous Database

Descrive i passi per disabilitare l'accesso utente di autenticazione esterna IAM per Autonomous Database.

È possibile disabilitare l'accesso utente IAM nell'istanza di Autonomous Database utilizzando il comando ALTER SYSTEM come mostrato di seguito:
ALTER SYSTEM RESET IDENTITY_PROVIDER_TYPE SCOPE=BOTH;

Se si desidera aggiornare anche l'accesso a IAM dalla risorsa, ovvero Autonomous Container Database o Autonomous Database, potrebbe essere necessario rimuovere o modificare il gruppo IAM e i criteri impostati per consentire l'accesso a IAM da tali risorse.

Note per l'utilizzo degli strumenti di Autonomous Database con autenticazione IAM (Identity and Access Management)

Fornisce note per l'uso degli strumenti di Autonomous Database con l'autenticazione IAM abilitata.

  • Oracle APEX non è supportato per gli utenti IAM con Autonomous Database. Per informazioni sull'uso di utenti regolari del database con Autonomous Database, vedere Accedi a Oracle Application Express Administration Services.
  • Database Actions non è supportato per gli utenti IAM con Autonomous Database. Per informazioni sull'uso di utenti regolari del database con Autonomous Database, vedere Abilitazione dell'accesso degli utenti a Database Actions.