Nota

Autentica Oracle Database 23ai con ID Microsoft Entra

Introduzione

Oracle Database può essere integrato con Microsoft Entra ID (in precedenza Microsoft Azure Active Directory) per consentire l'accesso sicuro e senza password al database. Con questa impostazione, gli utenti e i servizi possono connettersi al database utilizzando le credenziali ID di Microsoft Entra tramite Single Sign-On (SSO).

L'autenticazione viene gestita tramite un token di accesso OAuth2 emesso dall'ID Entra Microsoft. Questo token, che include l'identità e i dettagli di accesso dell'utente, viene passato a Oracle Database. Il client del database convalida il formato e la scadenza del token prima di consentire l'accesso, garantendo un processo di connessione sicuro e semplificato.

Perché ne abbiamo bisogno?

Man mano che le organizzazioni danno sempre più priorità alla sicurezza, la gestione dell'accesso ai dati sensibili diventa fondamentale. Oracle Database, in collaborazione con Microsoft Entra ID, consente un'autenticazione sicura senza password, sfruttando i moderni sistemi di gestione delle identità per un controllo degli accessi trasparente, scalabile e affidabile. Questa integrazione supporta una vasta gamma di distribuzioni Oracle, tra cui Oracle Autonomous Database, Oracle Exadata e Oracle Base Database Service, garantendo un accesso coerente e sicuro in diversi ambienti.

Client e strumenti di database

Le applicazioni e gli strumenti che supportano i token Microsoft Entra ID possono autenticare gli utenti direttamente tramite l'ID Entra di Microsoft e passare il token di accesso al database all'istanza di Oracle Database tramite l'API client. Gli strumenti di database esistenti, ad esempio SQL*Plus, possono essere configurati per utilizzare un token ID Microsoft Entra memorizzato in un file. Il token può essere recuperato utilizzando strumenti di supporto quali Microsoft PowerShell, Azure CLI o librerie come Microsoft Authentication Library (MSAL) e salvato in una posizione file specificata. In seguito, SQL*Plus fa riferimento a questo token durante il tentativo di stabilire la connessione.

Entra nel flusso di autenticazione utente mediante sqlplus

Nota: in questa esercitazione viene utilizzato uno script Python che utilizza MSAL per acquisire i token di sicurezza. Per ulteriori informazioni, vedere Panoramica della Microsoft Authentication Library (MSAL).

Questa esercitazione guida l'utente nella configurazione dell'autenticazione ID Microsoft Entra per Oracle Base Database 23ai, inclusa l'impostazione di TLS. Fare riferimento alla documentazione specifica del tipo di database in uso: on premise, Exadata, DBaaS o Autonomous. Tenere presente che TLS è preconfigurato per Autonomous Database, pertanto è possibile saltare questo passo.

Destinatari

Amministratori di Oracle Database e amministratori di Oracle Cloud Infrastructure Identity and Access Management (OCI IAM).

Obiettivi

Prerequisiti

Task 1: impostare TLS per Oracle Database 23ai

Task 1.1: preparazione del sistema operativo per la configurazione TLS

  1. Eseguire il login al database server e passare all'utente root per impostare la directory.

    [opc@db23aigrid ~]$ sudo su -
    
    [root@db23aigrid ~]# mkdir -p /etc/ORACLE/WALLETS/oracle
    
    [root@db23aigrid ~]# cd /etc/
    
    [root@db23aigrid etc]# chown -R oracle:oinstall ORACLE/
    
  2. Recupera il nome host come utente oracle.

    [root@db23aigrid etc]# su - oracle
    
    [oracle@db23aigrid admin]$ hostname -f
    

    Output di esempio:

    db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com
    
  3. connettersi al database;

    [oracle@db23aigrid admin]$ sqlplus "/as sysdba"
    
  4. Verificare la directory radice del wallet.

    SQL> show parameter wallet_root;
    

    Output di esempio:

    NAME           TYPE      VALUE
    ----------     ------    ----------------------------------------------------
    wallet_root    string    /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad
    
  5. Controllare il nome e il GUID del pluggable database (PDB).

    SQL> show pdbs;
    

    Output di esempio:

    CON_ID   CON_NAME      OPEN MODE      RESTRICTED
    -----    --------      ---------      ----------
    2        PDB$SEED      READ ONLY      NO
    
    3        DB23GRIDPDB   READ WRITE     NO
    
    SQL> select guid from v$containers where name = 'DB23GRIDPDB';
    

    Output di esempio:

    GUID
    -- -----------------------------
    32435DD0A1EC55xxx0639400000A7225
    
  6. Creare directory locali per wallet e certificati.

    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/rootCA
    
    [oracle@db23aigrid ~]$ mkdir -p /home/oracle/wallet_tls/certificates/db_wallet
    
  7. Creare la directory TLS del database nel percorso radice del wallet utilizzando il GUID del PDB.

    [oracle@db23aigrid ~]$ mkdir -p /opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DDxxxxxx7E0639400000A7225/tls
    
  8. Aggiornare .bashrc con le variabili di ambiente correlate a TLS.

    [oracle@db23aigrid ~]$ vi ~/.bashrc
    

    Aggiungere quanto segue e regolare i valori in base all'ambiente in uso.

    export DBUSR_SYSTEM=system
    export DBUSR_PWD=QAZxswedc123##     # Wallet and Database Administrator (sys) password
    
    export ORA_TLS_DIR=/etc/ORACLE/WALLETS/oracle
    export TLS_DIR=/opt/oracle/dcs/commonstore/wallets/DB23GRID_w54_iad/32435DD0A1EC55E7E0639400000A7225/tls
    export ROOT_TLS_DIR=/home/oracle/wallet_tls/certificates/rootCA
    export DB_TLS_DIR=/home/oracle/wallet_tls/certificates/db_wallet
    
    export TLS_DN=CN=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,O=oracle,L=Austin,ST=Texas,C=US
    export TLS_SAN=DNS:db23aigrid,DNS:db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com,
    IPV4Address:143.47.117.99
    
  9. Applicare le modifiche.

    [oracle@db23aigrid ~]$ . ~/.bashrc
    

Task 1.2: Configurare il wallet e il certificato TLS

  1. Creare e configurare il wallet radice.

    1. Creare il wallet principale.

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${ROOT_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. Visualizzare il contenuto del wallet, deve essere vuoto.

      [oracle@db23aigrid ~]$ orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    3. Creare il certificato con firma automatica per il wallet CA radice.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -keysize 2048 -sign_alg sha256 -self_signed -validity 3652 -pwd ${DBUSR_PWD} -addext_san $TLS_SAN
      
    4. A questo punto, la directory deve contenere i file cwallet.sso e ewallet.p12.

      ls -l ${ROOT_TLS_DIR}
      
    5. Visualizzare il contenuto del wallet, che deve avere un utente e un certificato protetto.

      orapki wallet display -wallet ${ROOT_TLS_DIR}
      
    6. Esportare il certificato protetto CA radice da utilizzare per creare il wallet del database.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    7. Visualizzare il contenuto del file rootCA.crt.

      cat ${ROOT_TLS_DIR}/rootCA.crt
      
  2. Creare e configurare il wallet del server (database).

    1. Creare il wallet del database.

      [oracle@db23aigrid ~]$ orapki wallet create -wallet ${DB_TLS_DIR} -pwd ${DBUSR_PWD} -auto_login
      
    2. Aggiungere il certificato radice sicuro al wallet (ottenere questo certificato dall'amministratore del certificato).

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -trusted_cert -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
    3. Creare una chiave privata e una richiesta di certificato nel wallet.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -keysize 2048 -dn $TLS_DN -pwd ${DBUSR_PWD}-addext_san $TLS_SAN
      
    4. Esportare la richiesta di certificato per ottenere la firma.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${DB_TLS_DIR} -dn $TLS_DN -request ${DB_TLS_DIR}/db23gridpdb.csr -pwd ${DBUSR_PWD}
      
    5. Visualizzare il contenuto del wallet. Verrà visualizzata una voce in Certificati richiesti.

      orapki wallet display -wallet ${DB_TLS_DIR}
      
    6. Visualizzare il contenuto del file CSR (Certificate Signing Request).

      cat ${DB_TLS_DIR}/db23gridpdb.csr
      
  3. Firma e importa il certificato del server.

    1. Firma l'addetto al servizio clienti utilizzando il wallet root con firma automatica.

      [oracle@db23aigrid ~]$ orapki cert create -wallet ${ROOT_TLS_DIR} -request ${DB_TLS_DIR}/db23gridpdb.csr -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -validity 3652 -sign_alg sha256 -pwd ${DBUSR_PWD}
      
    2. Visualizzare il certificato utente del server firmato.

      cat ${DB_TLS_DIR}/db23gridpdb-signed.crt
      
    3. Importare il certificato utente del database server firmato nel wallet del database.

      [oracle@db23aigrid ~]$ orapki wallet add -wallet ${DB_TLS_DIR} -user_cert -cert ${DB_TLS_DIR}/db23gridpdb-signed.crt -pwd ${DBUSR_PWD}
      
    4. Visualizzare il contenuto del wallet, assicurarsi che il certificato utente del database server venga visualizzato in Certificati utente. Il wallet che verrà utilizzato per il database server e il listener è ora pronto per essere distribuito per l'uso.

      orapki wallet display -wallet ${DB_TLS_DIR}
      
  4. Distribuire i file wallet.

    1. Copiare i file wallet del database server.

      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/ewallet.p12 ${ORA_TLS_DIR}
      
      [oracle@db23aigrid ~]$ cp -v ${DB_TLS_DIR}/cwallet.sso ${ORA_TLS_DIR}
      
    2. Esporta il certificato.

      [oracle@db23aigrid ~]$ orapki wallet export -wallet ${ROOT_TLS_DIR} -dn $TLS_DN -cert ${ROOT_TLS_DIR}/rootCA.crt -pwd ${DBUSR_PWD}
      
  5. Accettare come utente root la CA root a livello di sistema.

    1. Eseguire il comando [root@db23ailvm etc]# cp -v /home/oracle/wallet_tls/certificates/rootCA/rootCA.crt /etc/pki/catrust/source/anchors/.

    2. Eseguire il comando [root@db23ailvm etc]# update-ca-trust extract.

    3. Impostare le autorizzazioni file appropriate.

      cd /etc/ORACLE/WALLETS/
      
      chmod -R 755 oracle/
      

Task 1.3: configurazione di Oracle per la comunicazione TLS

  1. Modificare sqlnet.ora per TLS unidirezionale e aggiungere le righe seguenti.

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi sqlnet.ora
    
    SSL_CLIENT_AUTHENTICATION = FALSE
    
  2. Modificare tnsnames.ora e assicurarsi che le voci sia per TCP che per TCPS vengano aggiunte per il database PDB.

    Regolare i valori in base all'ambiente:

    [oracle@db23aigrid ~]$ cd $ORACLE_HOME/network/admin
    
    [oracle@db23aigrid ~]$ vi tnsnames.ora
    
    DB23GRIDPDB=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=db23aigrid)(PORT=1521)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
    DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
    (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid)(PORT=1522)))
    (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    

Task 1.4: Configurare il listener con TLS

Task 1.5: Convalida connettività TLS

  1. Eseguire il test del protocollo TCP (non TLS).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcp
    
  2. Eseguire il test del TCPS (TLS abilitato)

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
    NETWORK_PROTOCOL
    
    Tcps
    

Task 1.6: configurazione dell'host client per TLS

Nota: prerequisiti per questo task.

Attenersi alla procedura per configurare l'host client.

  1. Copiare i file del certificato e del wallet dal database server. È possibile utilizzare qualsiasi strumento di trasferimento file preferito per spostare questi file dal database server al client.

    cd /home/oracle/wallet_tls/certificates/
    
    tar -cvf rootCA.tar rootCA
    
    chmod 755 rootCA.tar
    
    cp rootCA.tar /tmp/
    
  2. Impostare le directory dei client.

    [opc@bastion-server8-8 ~]$ sudo su - oracle
    
    [oracle@bastion-server8-8 ~]$ mkdir wallet_db23aigrid_tls
    
    [oracle@bastion-server8-8 ~]$ mkdir -p network/admin
    
    [oracle@bastion-server8-8 ~]$ export TNS_ADMIN=/home/oracle/network/admin
    
  3. Trasferire i file del certificato e del wallet dal database server all'istanza client.

    [oracle@bastion-server8-8 ~]$ cp rootCA.tar wallet_db23aigrid_tls /
    
    [oracle@bastion-server8-8 ~]$ cd wallet_db23aigrid_tls /
    
    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ cp /tmp/rootCA.tar
    
  4. Estrai file certificato.

    [oracle@linuxclient23:~/wallet_db23aigrid_tls]$ tar -xvf rootCA.tar
    
  5. Configurare tnsnames.ora.

    [oracle@bastion-server8-8 ~]$ cd ~/network/admin
    
    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi tnsnames.ora
    
       DB23GRIDPDB=
       (DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=143.47.117.99)(PORT=1521)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com)))
    
       DB23GRIDPDB_TLS=(DESCRIPTION=(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3)(RETRY_COUNT=3)
       (ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)(PORT=
       1522)))
       (CONNECT_DATA=(SERVICE_NAME=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))
       (SECURITY = (SSL_SERVER_DN_MATCH=TRUE)))
    
  6. Configurare sqlnet.ora.

    [oracle@linuxclient23:~/instantclient_23_7/network/admin]$ vi sqlnet.ora
    
       SSL_CLIENT_AUTHENTICATION = FALSE
       WALLET_LOCATION =
       (SOURCE =(METHOD = FILE)
       (METHOD_DATA =(DIRECTORY =/home/oracle/wallet_db23aigrid_tls/rootCA)))
    

Task 1.7: eseguire il test della connessione dall'istanza client

  1. Eseguire il test del protocollo TCP (non TLS).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcp
    
  2. Eseguire il test del TCPS (TLS abilitato).

    $ sqlplus system/QAZxswedc123##@DB23GRIDPDB_TLS
    
    SQL> SELECT sys_context('USERENV', 'NETWORK_PROTOCOL') as network_protocol FROM dual;
    
      NETWORK_PROTOCOL
    
      Tcps
    

Task 2: impostare Microsoft Azure e Database Integration

Task 2.1: Registra Database Server in Microsoft Azure

  1. Eseguire il login al portale Microsoft Azure come amministratore che dispone dei privilegi di Microsoft Entra ID per registrare le applicazioni.

  2. Nella pagina Centro di amministrazione directory Azure Active selezionare ID Entra Microsoft.

  3. Fare clic su Registrazioni applicazioni e Nuova registrazione.

  4. Immettere le informazioni riportate di seguito.

    • Nome: immettere BaseDB-Server.

    • Chi può utilizzare questa applicazione o accedere a questa API?: selezionare Solo account in questa directory organizzativa.

  5. Fare clic su Registra.

  6. In Applicazione registrata, fare clic su Esponi un'API.

  7. Fare clic su Aggiungi accanto a URI ID applicazione e Salva. Lasciare gli altri valori come predefiniti.

  8. Fare clic su Aggiungi un ambito e immettere le informazioni seguenti.

    • Nome ambito: immettere session:scope:connect.

    • Chi può acconsentire?: immettere Amministratori e utenti.

    • Nome visualizzato consenso amministratore: selezionare Connetti al database.

    • Descrizione del consenso di amministrazione: selezionare Connetti al database.

    • Nome visualizzato consenso utente: selezionare Connetti al database.

    • Descrizione consenso utente: selezionare Connetti al database.

    • Stato: selezionare Abilitato.

    Fare clic su Aggiungi ambito. Una volta aggiunto, assicurarsi di copiare il valore di Ambito.

    Esponi un'API

  9. In Configurazione token, aggiungere Richiesta come aggiornamento con Tipo di token come Accesso.

    Nota: questa opzione è obbligatoria nell'ambito dell'abilitazione del token v2 ID Microsoft Entra. Per ulteriori informazioni sui token v2, vedere Abilitazione dei token di accesso all'ID Microsoft Entra v2.

    Potrebbe essere inoltre necessario modificare il file manifesto dell'applicazione in Microsoft Entra ID per ottenere un token v2.

    Aggiungi reclamo

  10. In Ruoli applicazione, aggiungere i seguenti ruoli applicazione.

    Aggiungi ruoli dell'applicazione

  11. Nella panoramica, copiare URI ID applicazione, ID directory (tenant) e ID applicazione (client).

  12. Passare a Home, Applicazioni enterprise, BaseDB-Server e fare clic su Aggiungi utente/gruppo per assegnare gli utenti.

  13. In Utenti, selezionare l'utente. Durante la generazione del token di accesso, questo utente assegnato verrà utilizzato per Single Sign-On.

  14. In Selezionare un ruolo selezionare pdb.users, quindi fare clic su Seleziona e Assegna.

  15. Ripetere i passi 13 e 14 per lo stesso utente e assegnare dba.role.

Task 2.2: Registra client database in Microsoft Azure

  1. Registrare l'applicazione client del database con le informazioni riportate di seguito.

    • Nome: immettere BaseDB-Client.

    • Tipi di conto supportati: selezionare Account solo in questa directory organizzativa.

    • URI di reindirizzamento: immettere client pubblico/nativo - <http://localhost>.

  2. In Gestisci fare clic su Autorizzazioni API e su Aggiungi un'autorizzazione. Selezionare API utilizzate dall'organizzazione, BaseDB-Server, Autorizzazioni delegate, Autorizzazione come sessione:scope:connect e fare clic su Aggiungi autorizzazioni.

  3. Nella panoramica, copiare URI ID applicazione e ID directory (tenant).

Task 2.3: Configurazione di Database Server per Microsoft Azure

Eseguire le query riportate di seguito per configurare Microsoft Azure AD come provider di identità e creare utenti e ruoli globali del database.

  1. Controllare il provider di identità corrente nel database PDB.

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  2. Impostare Microsoft Azure come provider di identità.

    ALTER SYSTEM SET IDENTITY_PROVIDER_TYPE=AZURE_AD SCOPE=BOTH;
    
  3. Convalida provider di identità aggiornato.

    SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='identity_provider_type';
    
  4. Impostare la configurazione del provider di identità. Sostituire application_id_uri, tenant_id e app_id con i valori copiati nel task 2.1.11.

    ALTER SYSTEM SET IDENTITY_PROVIDER_CONFIG =
    '{
       "application_id_uri": "api://b7ae5060-667c-47b7-83f8-71283df2a2f6" ,
       "tenant_id": "ef2b4271-9238-4dcd-8c56-d3e915e37c6f",
       "app_id": "b7ae5060-667c-47b7-83f8-71283df2a2f6"
    }' SCOPE=BOTH;
    
  5. Creare utenti e ruoli globali nel database.

    CREATE USER allusers IDENTIFIED GLOBALLY AS 'AZURE_ROLE=pdb.users';
    CREATE USER hrapp IDENTIFIED GLOBALLY AS 'AZURE_ROLE=hr.app';
    CREATE ROLE dba_azure IDENTIFIED GLOBALLY AS 'AZURE_ROLE=dba.role';
    
  6. Concedere i privilegi agli utenti e ai ruoli.

    GRANT CREATE SESSION TO allusers;
    GRANT CREATE SESSION TO hrapp;
    GRANT pdb_dba TO dba_azure;
    

Task 2.4: Configurare l'utilità di supporto per generare il token di accesso Microsoft Azure

In questo task, verrà utilizzata una utility Python per generare un token di accesso che verrà salvato in un file e a cui in seguito verrà fatto riferimento da SQL*Plus. Questa utility richiede l'esecuzione del modulo MSAL.

  1. Salvare la utility Python da qui: Get-Token.py.

  2. Nel codice Python seguente, sostituire il valore di scope con il valore copiato nel task 2.1.8. Analogamente, aggiornare i valori di client_id e tenant_id con i valori del task 2.2.3.

  3. Eseguire il codice Python utilizzando il comando seguente.

    python ./get-token.py
    
  4. Se tutto è configurato correttamente, questo dovrebbe attivare un reindirizzamento del browser al portale Microsoft Azure per l'autenticazione dell'utente. Al momento dell'autenticazione, un file token verrà generato nella directory in cui è stato eseguito il comando Python, che contiene il token di accesso. Nella finestra del terminale verranno stampati anche il token di accesso e il token di aggiornamento.

  5. (Facoltativo), è possibile convalidare il token generato navigando qui: jwt.io e incollando la stringa del token nel campo Codificato. Nel campo Decodificato vengono visualizzate informazioni sulla stringa di token.

Task 2.5: eseguire il login utilizzando SQL*PLUS

  1. Eseguire il test del login al token Microsoft Azure utilizzando SQL*PLUS.

    sqlplus /nolog
    
    conn /@(description= (retry_count=20) (retry_delay=3) (address= (protocol=tcps) (port=1522) (host=db23aigrid.sub10121249210.dbsecvcn.oraclevcn.com)) (connect_data=(service_name=DB23GRIDPDB.sub10121249210.dbsecvcn.oraclevcn.com))(security=(SSL_SERVER_DN_MATCH=TRUE)(TOKEN_AUTH=OAUTH)(TOKEN_LOCATION=/home/oracle)))
    
  2. Verificare l'utente collegato.

    Nota: una volta eseguito il login, è possibile eseguire le query riportate di seguito per recuperare le informazioni specifiche della sessione dell'utente.

    • La variabile CURRENT_USER restituisce l'utente corrente attivo.
    • ALLUSERS è l'utente dello schema condiviso assegnato mediante i ruoli applicazione ID Microsoft Entra.
    • AUTHENTICATED_IDENTITY rappresenta l'utente autenticato da ID Microsoft Entra.
    • ENTERPRISE_IDENTITY restituisce il GUID dell'utente autenticato dall'ID di Microsoft Entra.
    • SESSION_ROLES restituisce la lista combinata di ruoli concessi localmente e concessi tramite mapping globali tramite i ruoli applicazione ID Microsoft Entra.
    1. Eseguire la query seguente per verificare l'utente corrente.

      SELECT SYS_CONTEXT ('USERENV','CURRENT_USER') FROM DUAL;
      

      Output:

      SYS_CONTEXT('USERENV','CURRENT_USER')
      
      
      ALLUSERS
      
    2. Eseguire la query seguente per verificare l'utente autenticato.

      SELECT SYS_CONTEXT ('USERENV','AUTHENTICATED_IDENTITY') FROM DUAL;
      

      Output:

      SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY')
      
      
      <anujtrip.ai@gmail.com>
      
    3. Eseguire la query seguente per verificare il GUID dell'utente autenticato.

      SELECT SYS_CONTEXT ('USERENV','ENTERPRISE_IDENTITY') FROM DUAL;
      

      Output:

      SYS_CONTEXT('USERENV','ENTERPRISE_IDENTITY')
      
      
      7eb35b90-dcxxx5-bc0b-48789368e9cf
      
    4. Eseguire la query seguente per verificare i ruoli applicazione.

      SELECT * FROM SESSION_ROLES;
      

      Output:

      ROLE
      
      DBA_AZURE
      
      PDB_DBA
      
      CONNECT
      

Passi successivi

Con l'implementazione dell'autenticazione basata su ID di Microsoft Entra, è possibile allineare i ruoli utente e i criteri di accesso tramite la governance centralizzata delle identità. Sfruttando i mapping globali per gli utenti e i ruoli dello schema condiviso, è possibile semplificare il controllo dell'accesso e ridurre la complessità amministrativa. Inoltre, è fondamentale monitorare le sessioni utente e i pattern di accesso per migliorare la sicurezza e garantire la conformità ai criteri organizzativi. Dovresti anche considerare la possibilità di estendere questa integrazione ad altri database o applicazioni per mantenere una gestione delle identità coerente in tutta l'azienda.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.