Usa autenticazione a più fattori con Autonomous AI Database

L'autenticazione a più fattori (MFA) è un metodo di autenticazione che richiede l'uso di più fattori per verificare l'identità di un utente per ottenere l'accesso a una risorsa.

Argomenti:

Informazioni sull'autenticazione con più fattori

Autonomous AI Database supporta l'autenticazione a più fattori (MFA) per migliorare la sicurezza dell'accesso richiedendo un ulteriore passo di verifica oltre la password utente. È possibile abilitare l'autenticazione MFA per i login al database, per l'esecuzione di istruzioni SQL protette o per entrambi.

Con MFA abilitato, quando ti connetti al tuo database, fornisci il tuo nome utente e la tua password, che è il primo fattore – qualcosa che conosci o che puoi memorizzare. Ti viene quindi richiesto di fornire un secondo codice di verifica da un dispositivo MFA registrato, che è il secondo fattore - qualcosa che hai. I due fattori lavorano insieme per aggiungere un ulteriore livello di sicurezza utilizzando informazioni aggiuntive o un secondo dispositivo per verificare la tua identità e completare il processo di accesso.

Autonomous AI Database migliora la sicurezza integrando MFA nel ciclo di vita dell'autenticazione e dell'esecuzione SQL. Questo approccio consente di ridurre il rischio di accesso non autorizzato e limita l'impatto delle credenziali compromesse garantendo che solo gli utenti autenticati e verificati possano connettersi ed eseguire operazioni SQL. Applicando l'autenticazione MFA basata su token o notifiche push per i flussi di lavoro di accesso e SQL, Autonomous AI Database rafforza la protezione da furti di credenziali, attività dannose e potenziale esposizione dei dati.

L'autenticazione MFA viene abilitata in Autonomous AI Database tramite i package DBMS_MFA_*, che consentono di utilizzare metodi di verifica a più livelli durante l'autenticazione. Ciò include una credenziale primaria, ad esempio un nome utente e una password, combinata con un secondo fattore di autenticazione, ad esempio un passcode monouso (OTP) o una verifica tramite un'applicazione di autenticazione mobile. Ciò garantisce che solo le identità autorizzate e verificate possano accedere al database ed eseguire operazioni SQL.

Autonomous AI Database supporta due opzioni di applicazione MFA, che consentono di scegliere il livello di protezione in base alle proprie esigenze di sicurezza:
  • MFA tempo di login, che richiede MFA durante il login al database prima che venga stabilita una sessione del database.

  • SQL Access MFA (SQL Access Token), che consente il login con credenziali primarie e applica l'autenticazione MFA solo quando vengono eseguite istruzioni SQL riservate.

Nota

Questa funzione è supportata solo per la release di database Oracle 19c.

Vantaggi principali dell'utilizzo di MFA con Autonomous AI Database

  • Protezione più forte per l'accesso al database: l'autenticazione MFA migliora la sicurezza aggiungendo ulteriori passi di verifica durante l'autenticazione o l'esecuzione di un'istruzione SQL. Anche se una password è compromessa, l'accesso è ancora bloccato a meno che il fattore di autenticazione aggiuntivo, come un passcode monouso (OTP) o l'approvazione da un'applicazione di autenticazione, non venga completato correttamente. Ciò riduce il rischio di accesso non autorizzato alle risorse del database.

  • Defense Against Common Attacks: MFA aiuta a proteggersi da metodi di attacco comuni come phishing e tentativi di forza bruta. Mentre gli aggressori possono tentare di rubare o indovinare le password, MFA aggiunge un ulteriore ostacolo che impedisce l'accesso senza il secondo fattore di autenticazione, rendendo questi attacchi molto meno efficaci.

  • Supporto per i requisiti normativi: molti settori, tra cui finance, assicurazioni e sanità, richiedono controlli di autenticazione efficaci per proteggere i dati sensibili. L'abilitazione dell'autenticazione MFA in Autonomous AI Database consente alle organizzazioni di soddisfare questi requisiti normativi dimostrando al contempo il rispetto delle best practice di sicurezza.

  • Migliore visibilità e monitoraggio: l'autenticazione MFA include funzionalità di monitoraggio che forniscono visibilità sull'attività di autenticazione. Queste funzionalità consentono di identificare tentativi di accesso insoliti o sospetti, consentendo di mantenere un livello di sicurezza elevato.

Concetti relativi all'autenticazione con più fattori

Di seguito sono riportati concetti fondamentali utilizzati nell'MFA.

  • Autenticazione con più fattori (MFA): MFA è un meccanismo di sicurezza che richiede agli utenti di fornire due o più forme distinte di verifica prima di ottenere l'accesso a un sistema, a un'applicazione o a dati. I fattori di verifica includono:
    • Qualcosa che conosci: una password, un PIN o una domanda di sicurezza.

    • Qualcosa che hai: un dispositivo fisico come uno smartphone, un token hardware o una chiave di sicurezza.

    • Qualcosa che sei - biometria, come un'impronta digitale, riconoscimento facciale o riconoscimento vocale.

  • App di autenticazione: un'applicazione installata sul dispositivo mobile in grado di fornire token sicuri basati su software per la verifica dell'identità. Ad esempio, Oracle Mobile Authenticator. Per abilitare l'autenticazione MFA per Autonomous AI Database, sarà necessario un dispositivo con un'applicazione di autenticazione installata. Utilizzerai l'applicazione per registrare il tuo dispositivo e quindi utilizzerai la stessa applicazione (sul medesimo dispositivo) per ricevere una notifica push o ogni volta che ti connetti a Autonomous AI Database.
    • Le seguenti applicazioni di autenticazione sono supportate con Autonomous AI Database:

      • Oracle Mobile Authenticator

      • App Cisco Duo Mobile

      Puoi trovare queste app nell'app store del tuo dispositivo mobile. È necessario installare una di queste app sul dispositivo mobile prima di poter abilitare l'autenticazione MFA.

      Per ulteriori informazioni, vedere gli argomenti riportati di seguito.
  • Dispositivo mobile registrato: l'autenticazione MFA è abilitata per un utente specifico e per un dispositivo specifico. La procedura per abilitare l'autenticazione MFA per un utente include la registrazione del dispositivo mobile. Questo stesso dispositivo deve essere utilizzato per generare il passcode monouso basato sul tempo ogni volta che l'utente accede. Se il dispositivo mobile registrato non è più disponibile, un amministratore deve disabilitare l'autenticazione MFA per l'utente in modo che l'autenticazione MFA possa essere riabilitata con un nuovo dispositivo.

  • Token di accesso SQL: i token di accesso SQL forniscono un MFA sicuro per Autonomous AI Database utilizzando password monouso (OTP) standard del settore. Questi token sono necessari per accedere al database o eseguire operazioni SQL protette, riducendo notevolmente il rischio di accesso non autorizzato.

  • Notifica push: le notifiche push sono messaggi clickable, brevi e popup inviati da applicazioni o siti Web al dispositivo mobile di un utente, anche quando il browser o l'applicazione non è attivo.

Tipi di autenticazione a più fattori in Autonomous AI Database

Descrive le opzioni MFA disponibili in Autonomous AI Database e come ciascuna si applica all'accesso al database, durante il login o durante l'esecuzione di istruzioni SQL protette.

MFA tempo di login

L'autenticazione MFA in fase di login in Autonomous AI Database può essere implementata solo utilizzando notifiche push sicure fornite al dispositivo mobile registrato dell'utente tramite l'applicazione Oracle Mobile Authenticator (OMA) o Cisco Duo Mobile. I metodi alternativi, ad esempio e-mail o Slack, non sono supportati per questo workflow. Ciò garantisce che solo gli utenti che possiedono credenziali valide e il dispositivo mobile autorizzato possano accedere al database, fornendo una solida protezione contro il furto di credenziali e supportando la conformità normativa per l'autenticazione MFA.

Quando si tenta di registrare un utente del database esistente per l'autenticazione MFA in fase di login, Oracle invia un'e-mail di registrazione occasionale all'indirizzo e-mail dell'utente. Il contenuto della registrazione dipende dall'autenticatore selezionato: le e-mail OMA includono un collegamento di registrazione e un codice QR per registrare il dispositivo dell'utente nell'app OMA, mentre le e-mail DUO forniscono il collegamento di registrazione e le istruzioni per completare la registrazione del dispositivo. L'utente deve installare l'app di autenticazione appropriata e completare la registrazione facendo clic sul collegamento o scansionando il codice QR nell'app. L'e-mail viene inviata in un formato fisso solo in inglese e la personalizzazione dell'e-mail non è consentita.

Dopo la registrazione del dispositivo riuscita, l'utente può eseguire il login al database utilizzando la password come fattore di autenticazione primario. Una volta convalidata la password, il database server invia una notifica push all'app registrata. Se l'utente accetta la notifica push, il processo di autenticazione viene completato e la sessione di login viene stabilita correttamente.

Token di accesso SQL

L'autenticazione di tipo Token di accesso SQL in Autonomous AI Database è un metodo MFA che richiede agli utenti di verificare la propria identità utilizzando sia le proprie credenziali che un secondo fattore, un token di accesso SQL una tantum o una notifica push, prima di poter eseguire le istruzioni SQL. Dopo aver eseguito il login con un nome utente e una password, l'utente deve richiedere un passcode monouso o una notifica push, che viene fornita tramite un'app di autenticazione (OMA), un'e-mail o Slack, per autenticare la sessione e consentire l'esecuzione di istruzioni SQL protette. L'autenticazione MFA del token di accesso SQL rafforza la sicurezza del database garantendo che le istruzioni SQL riservate possano essere eseguite solo dagli utenti che possiedono sia le credenziali corrette che il secondo fattore verificato, riducendo il rischio di accesso non autorizzato e supportando i requisiti di conformità.

Nota

Per l'autenticazione MFA del token di accesso SQL, le notifiche push sono supportate solo con OMA.

Dopo aver eseguito la connessione ad Autonomous AI Database utilizzando il metodo di autenticazione standard, ad esempio un nome utente/password del database locale o un provider di identità esterno, tra cui OCI IAM, Azure Entra o Kerberos, di seguito viene descritto il flusso di autorizzazione MFA del token di accesso SQL.


Segue la descrizione dell'immagine autonomous-sqlaccesstoken-workflow.png
Descrizione dell'illustrazione autonomous-sqlaccesstoken-workflow.png

  1. Richiedi un token di accesso SQL

    Una volta stabilita la sessione, richiedere un token di accesso SQL per abilitare le operazioni SQL.

  2. Ricevi notifica OTP o push

    Oracle genera un OTP solo quando si sceglie un canale di distribuzione, un'e-mail o un Slack basato su OTP. Questi OTP sono limitati nel tempo e devono essere recuperati dal canale selezionato prima della scadenza. Per l'autenticazione basata su app, Oracle Mobile Authenticator (OMA) è l'unica app di autenticazione supportata e utilizza una notifica push come secondo fattore invece di generare un OTP. Di conseguenza, per l'autenticazione MFA del token di accesso SQL, gli OTP vengono consegnati solo tramite e-mail o Slack, mentre l'OMA fornisce l'approvazione tramite notifiche push.

  3. Autenticare la sessione

    Immettere l'OTP ricevuto per verificare l'identità e attivare la sessione SQL. Questo passo è richiesto solo per l'autenticazione tramite e-mail o OTP Slack e non è necessario quando si utilizza l'autenticazione basata su app (OMA), che utilizza invece una notifica push.

  4. Esegui le istruzioni SQL

    Dopo aver verificato il token, è possibile eseguire istruzioni SQL nel database come consentito.

Nota

È possibile registrare un utente sia per l'autenticazione MFA che per l'autenticazione MFA del token di accesso SQL. Con questa impostazione, l'utente deve completare l'autenticazione MFA durante il login, approvare una notifica push sul proprio dispositivo mobile e verificare anche un token di accesso SQL tramite il canale di distribuzione scelto prima di eseguire le istruzioni SQL.

Requisiti indispensabili

Elenca i prerequisiti per l'abilitazione dell'autenticazione MFA nell'Autonomous AI Database.

A seconda del tipo di MFA selezionato, eseguire i passi di impostazione necessari:

  • MFA tempo di login: l'autenticazione MFA tempo di login è supportata solo tramite notifiche push che utilizzano OMA e Duo. Scaricare, installare e configurare l'applicazione scelta sul dispositivo mobile prima dell'uso.

  • Token di accesso SQL: è necessario configurare almeno un canale di distribuzione dei token per i token di accesso SQL. I metodi di consegna supportati includono l'autenticatore e-mail, Slack e OMA.

    • App di autenticazione: installare OMA sul dispositivo mobile. È necessario impostare l'autenticazione MFA su un dispositivo a cui è possibile accedere ogni volta che si accede; l'autenticazione MFA non può essere abilitata per l'utente da un altro utente.

      Per abilitare MFA, utilizzare OMA sul dispositivo mobile per eseguire la scansione del codice QR visualizzato nell'interfaccia utente di Database Actions. Per ulteriori informazioni, vedere Configurazione di Oracle Mobile Authenticator.

    • Posta elettronica: assicurarsi che la consegna delle e-mail sia abilitata e che tutti gli utenti del database dispongano di indirizzi e-mail validi e configurati.

      Per ulteriori informazioni, consulta la sezione Invia e-mail su Autonomous AI Database.

    • Slack: configurare il plugin Slack e registrare l'ID Slack di ciascun utente per abilitare la consegna OTP tramite Slack.

      Per ulteriori informazioni, consulta la sezione Invia notifiche Slack da Autonomous AI Database.

  • È necessario aver eseguito il login come utente ADMIN o disporre dei privilegi necessari nel package DBMS_MFA_ADMIN per registrare gli utenti per l'autenticazione MFA e gestire gli attributi del token.

  • Per i workflow Token di accesso SQL, gli utenti devono disporre dei privilegi necessari nel package DBMS_MFA per inizializzare una sessione MFA e convalidare un token di accesso SQL.

Configurare l'autenticazione MFA per Autonomous AI Database

Descrive come impostare l'autenticazione MFA per Autonomous AI Database, inclusa l'impostazione delle credenziali necessarie, la configurazione dei canali di notifica, la registrazione degli utenti per l'autenticazione MFA LOGON o SQL Access e la gestione dei token di accesso SQL.

Argomenti:

Configura canali di notifica per MFA

Descrive come configurare i canali di notifica per l'autenticazione MFA, ad esempio e-mail, Slack e Oracle Mobile Authenticator (OMA), per la consegna di OTP o notifiche push.

Un canale di notifica è il meccanismo utilizzato per fornire richieste di verifica MFA agli utenti, ad esempio approvazioni push o OTP, in entrambi i flussi MFA del tempo di login (LOGON) e MFA del token di accesso SQL. I canali supportati includono applicazioni di posta elettronica, SMS, Slack e autenticatore e ogni canale richiede attributi di configurazione specifici, ad esempio dettagli SMTP per la consegna della posta elettronica o una configurazione dell'area di lavoro Slack per Slack, per garantire che i messaggi vengano consegnati in modo sicuro e affidabile all'utente previsto.

Prima di configurare i canali di notifica, assicurarsi di aver impostato le credenziali necessarie per i canali che si prevede di utilizzare. Si noti che alcuni canali si applicano solo a LOGON MFA, ad esempio OMA e Duo, mentre altri si applicano solo a SQL Access Token MFA, ad esempio OMA, Slack ed e-mail, quindi configura solo ciò di cui hai bisogno per il flusso MFA scelto.

La tabella seguente riassume i canali di notifica MFA disponibili e mostra quale tipo di MFA supporta ciascun canale (accesso MFA e/o token di accesso SQL MFA), insieme al metodo di notifica corrispondente (consegna OTP o approvazione push).

Canale di notifica Collegamento MFA MFA token di accesso SQL Metodo di notifica

E-mail

Sì (solo e-mail di iscrizione MFA)

Token di accesso SQL: OTP consegnato tramite e-mail.

Accesso: non supportato come secondo fattore, e-mail inviata solo per le notifiche di iscrizione.

Slack

N

OTP fornito tramite Slack.

Oracle Mobile Authenticator (OMA)

Approvazione notifica push. Nessun OTP generato.

Cisco Duo

N

Invia notifica tramite Duo.

Utilizzare la procedura DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION per definire i canali di notifica utilizzati per consegnare i messaggi MFA, ad esempio le richieste di verifica del token di accesso SQL. In questa procedura è possibile specificare il tipo di canale, ad esempio e-mail, Slack o un autenticatore e fornire gli attributi o i riferimenti alle credenziali specifici del canale necessari per una consegna sicura e affidabile. Poiché ogni canale ha requisiti diversi, i valori degli attributi forniti dipendono dal canale configurato; vedere gli esempi seguenti per gli input previsti per canale.

Notifica di posta elettronica

Configurare l'oggetto delle credenziali e-mail e le impostazioni di notifica SMTP in modo che Oracle possa inviare e-mail correlate all'autenticazione MFA. Questo è richiesto per l'impostazione del login MFA (OMA e Duo), incluse le e-mail di registrazione del dispositivo; senza di esso, gli utenti non riceveranno le notifiche di registrazione richieste. L'e-mail non è un secondo fattore supportato per l'accesso MFA. La consegna OTP e-mail è supportata solo per l'autenticazione MFA del token di accesso SQL.

Per configurare un provider di posta elettronica personalizzato per l'invio di token di accesso MFA, è necessario creare una credenziale del provider di posta elettronica nel database utilizzando la procedura DBMS_CLOUD.CREATE_CREDENTIAL. Ad esempio:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL(
       credential_name => 'EMAIL_CRED_01',
       username        => '<username>',
       password        => '<password>'
   );
END;
/
In questo modo vengono impostate le credenziali necessarie per abilitare la comunicazione tra Autonomous AI Database e il provider di posta elettronica personalizzato.

Concedere al database l'autorizzazione per connettersi all'host SMTP per l'invio di messaggi di posta elettronica aggiornando la lista di controllo dell'accesso (ACL). Ad esempio:

BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host        => 'smtp.email.us-ashburn-1.oci.oraclecloud.com',
    lower_port  => 587,
    upper_port  => 587,
    ace         => xs$ace_type(
                     privilege_list  => xs$name_list('SMTP'),
                     principal_name  => 'ADMIN',
                     principal_type  => xs_acl.ptype_db
                   )
  );
END;
/
Ciò consente di connettersi all'host SMTP sulla porta 587 per l'invio di e-mail.

Definire le impostazioni per il canale e-mail per la consegna dei token di accesso MFA utilizzando le credenziali create. Ad esempio:

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'EMAIL',
    attributes       => JSON_OBJECT(
      'credential_name'                 VALUE 'EMAIL_CRED_01',
      'smtp_host'                       VALUE 'smtp.email.us-ashburn-1.oci.oraclecloud.com',
      'smtp_port'                       VALUE 465,
      'sender'                          VALUE 'mfa_alerts@example.com',
      'sender_email_display_name'       VALUE 'DB MFA ALERTS'
    )
  );
END;
/
Ciò configura le impostazioni di notifica e-mail per la consegna del token MFA, collegando il canale e-mail alle credenziali personalizzate e consentendo al database di inviare passcode monouso tramite e-mail; tenere presente che la consegna del token MFA tramite e-mail è disponibile solo per l'accesso SQL.

Notifica Slack

Creare una credenziale per memorizzare in modo sicuro i dettagli di autenticazione per l'integrazione Slack. Ad esempio:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'SLACK_CRED',
    username        => 'username',
    password        => '<password>'
  );
END;
/
Registra le credenziali necessarie per l'autenticazione con l'integrazione Slack.

Consente al database di connettersi all'endpoint API di Slack aggiornando la lista di controllo dell'accesso (ACL) per le chiamate HTTPS in uscita. Ad esempio:

BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
    host           => 'slack.com',
    lower_port     => 443,
    upper_port     => 443,
    ace            => xs$ace_type(
                        privilege_list  => xs$name_list('http'),
                        principal_name  => 'ADMIN',
                        principal_type  => xs_acl.ptype_db
                      )
  );
END;
/
Ciò consente di connettersi a Slack tramite HTTPS (porta 443) per l'invio di notifiche.

Configurare il canale Slack per la consegna del token MFA facendo riferimento alle credenziali create. Ad esempio:

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'SLACK',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'SLACK_CRED'
    )
  );
END;
/
Ciò collega le credenziali Slack al canale di notifica, consentendo la consegna del token MFA utilizzando Slack.

Notifica di Oracle Mobile Authenticator (OMA)

Creare una credenziale per memorizzare in modo sicuro l'ID client OMA e il segreto client. Ad esempio:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'OMA_CRED',
    username        => '<username>',
    password        => '<password>'
  );
END;
/
Registra le credenziali client dell'applicazione OMA nel database.

Definire il canale di notifica OMA e associarlo alla credenziale e all'endpoint API OMA creati. Ad esempio:

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'OMA',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'OMA_CRED',
      'api_endpoint'    VALUE 'https://idcs-c*****************60.identity.oraclecloud.com'
    )
  );
END;
/
Questo passo configura il database per distribuire i token MFA utilizzando Oracle Mobile Authenticator attraverso l'endpoint specificato.

Notifica DUO Cisco

Creare una credenziale per memorizzare in modo sicuro la chiave di integrazione DUO e la chiave segreta. Ad esempio:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DUO_CRED',
    username        => '<integrationkey>',
    password        => '<secretkey>'
  );
END;
/
Registra la chiave di integrazione e la chiave segreta dell'applicazione DUO come credenziale nel database.

Impostare il canale di notifica DUO associandolo alla credenziale creata e specificando l'endpoint API DUO.

BEGIN
  DBMS_MFA_ADMIN.CONFIGURE_NOTIFICATION(
    notification_type => 'DUO',
    attributes        => JSON_OBJECT(
      'credential_name' VALUE 'DUO_CRED',
      'api_endpoint'    VALUE 'api-855fd6a0.duosecurity.com'
    )
  );
END;
/
Ciò configura il database per distribuire i token MFA tramite DUO utilizzando le credenziali dell'applicazione e l'endpoint API forniti.

Registra un utente

Mostra i passi per registrare un utente del database per l'autenticazione MFA.

Dopo aver configurato il canale di notifica, il passo successivo consiste nel registrare un utente di database esistente per l'autenticazione MFA. Durante la registrazione, impostare il tipo MFA su MFA tempo di login o MFA token di accesso SQL. Facoltativamente, è possibile specificare il canale di notifica. Se non viene fornito, l'e-mail viene utilizzata per impostazione predefinita. Tuttavia, per l'autenticazione MFA di tipo login, è necessario specificare OMA o Duo come canale. Facoltativamente, è anche possibile impostare attributi token personalizzati per personalizzare il funzionamento del token di accesso SQL per l'utente.

Utilizzare DBMS_MFA_ADMIN.REGISTER_USER per registrare un utente di database esistente per MFA. Quando si registra l'utente, impostare l'autenticazione MFA type per specificare il flusso da abilitare:
  • LOGON per l'autenticazione MFA in fase di login durante l'accesso al database oppure

  • Tipo di token di accesso SQL per l'autenticazione MFA basata su token.

Se si fornisce la notazione JSON attributes facoltativa, tenere presente che gli attributi supportati variano in base al tipo di autenticazione MFA. Ad esempio, LOGON supporta impostazioni specifiche del logon come il metodo di autenticazione (ad esempio, auth_method => 'duo_push'), ma non supporta attributi di validità del token come duration_min, che si applicano solo all'autenticazione MFA del token di accesso SQL.

Per riferimento, vedere DBMS_MFA_ADMIN.REGISTER_USER.

Esempio per registrare l'utente SCOTT del database esistente per il tempo di login MFA utilizzando OMA come canale di notifica

BEGIN  
  DBMS_MFA_ADMIN.REGISTER_USER(  
    username   => 'SCOTT',  
    type       => 'LOGON',  
    email      => 'scott@example.com',  
    attributes => JSON_OBJECT(  
                          'auth_method' VALUE 'oma_push')  
  );  
END;  
/

In questo esempio, se SCOTT è già iscritto all'autenticatore, non viene inviata alcuna nuova e-mail di registrazione. Se SCOTT non è ancora iscritto, questo esempio avvia la registrazione MFA inviando un'e-mail occasionale a scott@example.com con un collegamento di iscrizione e un codice QR per Oracle Mobile Authenticator (OMA).

SCOTT installa l'app OMA e completa la registrazione dei dispositivi utilizzando il link o il codice QR. Dopo l'iscrizione, SCOTT esegue il login con una password, quindi approva la notifica push OMA per completare l'autenticazione MFA LOGON.

Esempio per registrare l'utente SCOTT del database esistente per il tempo di login MFA utilizzando Duo come canale di notifica

BEGIN
  DBMS_MFA_ADMIN.REGISTER_USER(
    username   => 'SCOTT',
    type       => 'LOGON',
    email      => 'scott@example.com',
    attributes => JSON_OBJECT(
                    'auth_method' VALUE 'duo_push') 
  );
END;
/

In questo esempio, se SCOTT è già iscritto all'autenticatore, non viene inviata alcuna nuova e-mail di registrazione. Se SCOTT non è ancora iscritto, questo esempio avvia la registrazione MFA inviando un'e-mail occasionale all'indirizzo specificato con un collegamento di iscrizione.

SCOTT installa l'app Cisco Duo e completa la registrazione dei dispositivi utilizzando il collegamento. Dopo la registrazione, SCOTT esegue il login con una password, quindi approva la notifica push Duo per completare il login con l'autenticazione a due fattori.

Nota

Per l'ora di login MFA (LOGON), auth_method è l'unico attributo supportato.

Esempio per registrare SCOTT per l'autenticazione MFA del token di accesso SQL utilizzando Slack come canale di notifica

BEGIN
  DBMS_MFA_ADMIN.REGISTER_USER(
    username   => 'SCOTT',
    type       => 'SQL ACCESS',
    email      => 'scott@example.com',
    attributes => JSON_OBJECT(
      'duration_min'   VALUE 720,
      'read_only'      VALUE TRUE,
      'roles'          VALUE JSON_ARRAY('DEVELOPER_ROLE', 'INFRA_ROLE'),
      'scope'          VALUE 'SESSION',
      'slack_member_id' VALUE '<slack_member_id>'    
    )
  );
END;
/

Questo esempio registra l'utente SCOTT con SQL Access MFA. Imposta la durata del token su 720 minuti, concede l'accesso di sola lettura, associa ruoli specifici, definisce l'ambito del token come basato sulla sessione, specifica un ID membro Slack per le notifiche.

Nota

read_only è applicabile solo quando scope è impostato su SESSION. Se scope non è SESSION, l'attributo read_only non è supportato.

Esempio di registrazione SCOTT per l'autenticazione MFA del token di accesso SQL mediante OMA come canale di notifica

BEGIN
  DBMS_MFA_ADMIN.REGISTER_USER(
    username   => 'scott',
    type       => 'SQL ACCESS',
    email      => 'scott@example.com',
    attributes => JSON_OBJECT(
      'scope'            VALUE 'USER',
      'duration_min'     VALUE 5,
      'idle_timeout_min' VALUE 2,
      'auth_method'      VALUE 'OMA_PUSH'
  );
END;
/

Questo esempio registra l'utente SCOTT per l'autenticazione MFA del token di accesso SQL. Inoltre, configura il token come di breve durata, che è valido per 5 minuti e scade dopo 2 minuti di inattività e richiede l'approvazione utilizzando una notifica push OMA.

Nota

È possibile registrare lo stesso utente sia per l'autenticazione MFA Logon che per l'autenticazione MFA SQL Access Token registrandoli separatamente con gli stessi indirizzi e-mail. Questo approccio consente all'utente di utilizzare più tipi di MFA in base alle esigenze.

Convalida sessione per autenticazione token di accesso SQL

Mostra i passi per convalidare una sessione per l'autenticazione del token di accesso SQL.

Per eseguire istruzioni SQL in una sessione protetta dall'autenticazione del token di accesso SQL, è necessario convalidare la sessione utilizzando un passcode monouso fornito tramite il canale di notifica configurato e l'utente deve disporre del privilegio richiesto in DBMS_MFA.

Per convalidare la sessione:
  1. Esegue il login al Database con le credenziali standard.
    CONNECT scott/<password>@<adbs_connect_string>;
  2. Tentativo di eseguire un'istruzione SQL
    SELECT COUNT(*) FROM SCOTT.EMP;

    Se la convalida del token di accesso SQL è in sospeso, si verificherà un errore, ad esempio ORA-64660: Token Authorization is not complete for the user or the session.

  3. Inizializzare la sessione e richiedere un token di accesso SQL. A seconda del canale di notifica configurato, questo processo invierà un passcode monouso (OTP) o una notifica push.
    BEGIN
    DBMS_MFA.INITIALIZE_SESSION(
      email => 'scott_alert@example.com'
    );
    END;
    /

    Per ulteriori informazioni, vedere INITIALIZE_SESSION Procedure.

  4. Impostare il token nella sessione. Questo passaggio non è richiesto se l'utente è registrato per utilizzare un'app di autenticazione per MFA; in questo caso, l'utente riceve una notifica push e approva semplicemente la richiesta di autenticazione.
    BEGIN
      DBMS_MFA.SET_TOKEN(
        token => '98475683'
      );
    END;
    /
  5. Dopo la convalida del token, è possibile eseguire le istruzioni SQL come consentito.
    SELECT COUNT(*) FROM SCOTT.EMP;
    
    
    Count
    _________
    15

Gestisci utenti MFA e attributi token

Questa sezione spiega come gestire gli utenti iscritti all'autenticazione MFA, incluso come annullare la registrazione degli utenti quando non richiedono più l'accesso all'autenticazione MFA e come configurare o aggiornare gli attributi del token.

Argomenti:

Imposta attributi token

In questa sezione viene descritto come configurare il funzionamento del token MFA, ad esempio l'ambito, la durata della validità, il timeout di inattività, il metodo di consegna e le limitazioni di accesso, utilizzando i valori predefiniti globali (solo token di accesso SQL) e gli override per utente (sia per i token di accesso che per i token di accesso SQL).

Gli attributi del token controllano il funzionamento dei token di accesso SQL, inclusi l'ambito del token, la durata della validità, il timeout di inattività, il metodo di consegna e le limitazioni di accesso. Questi attributi possono essere configurati a due livelli: globalmente o per utente.
  • Gli attributi del token globale definiscono il funzionamento predefinito del token per tutti gli utenti registrati per l'autenticazione MFA del token di accesso SQL. Se impostate a livello globale, queste impostazioni predefinite si applicano a tutti gli utenti idonei, a meno che non vengano esplicitamente sostituite da impostazioni specifiche dell'utente, in modo da applicare criteri di sicurezza coerenti in tutto il database. Gli attributi del token globale possono essere impostati solo per i token di accesso SQL.
  • Gli attributi del token specifici dell'utente consentono di personalizzare il funzionamento del token per un singolo utente. Queste impostazioni sostituiscono le impostazioni predefinite globali e possono essere utilizzate per applicare controlli più rigorosi o più flessibili in base al ruolo e ai requisiti di accesso dell'utente.

L'uso di attributi token sia globali che a livello di utente consente di bilanciare l'applicazione centralizzata della sicurezza con la flessibilità necessaria per soddisfare le esigenze di accesso individuali.

Imposta attributi token di accesso SQL globali

Utilizzare la procedura DBMS_MFA_ADMIN.SET_GLOBAL_TOKEN_ATTRIBUTES per configurare gli attributi del token di accesso SQL predefinito globale. Questa procedura imposta un set globale di valori degli attributi del token (fornito come JSON) che il database applica automaticamente ogni volta che viene emesso un token di accesso SQL per gli utenti registrati per l'autenticazione MFA del token di accesso SQL. È inoltre possibile impostare attributi token specifici dell'utente per sostituire questi valori predefiniti globali quando necessario.

BEGIN
  DBMS_MFA_ADMIN.SET_GLOBAL_TOKEN_ATTRIBUTES(
    attributes => '{
      "duration_min": 60,
      "scope": "session",
      "idle_timeout_min": 15,
      "read_only": false
    }'
  );
END;
/

Imposta gli attributi del token globale per tutti gli utenti registrati per l'autenticazione MFA del token di accesso SQL, ad esempio durata del token, ambito, timeout di inattività e accesso in sola lettura. Questi attributi globali fungono da impostazioni predefinite e vengono applicati automaticamente a tutti gli utenti abilitati per l'autenticazione MFA del token di accesso SQL, a meno che non vengano definiti attributi specifici dell'utente per sostituirli.

Per ulteriori informazioni, vedere SET_GLOBAL_TOKEN_ATTRIBUTES Procedure.

Impostare gli attributi token sia per l'accesso che per il token di accesso SQL

Utilizzare le procedure DBMS_MFA_ADMIN.SET_ATTRIBUTES e DBMS_MFA_ADMIN.SET_ATTRIBUTE per impostare gli attributi del token per un utente specifico. Queste impostazioni a livello di utente si applicano al tipo MFA specificato (ad esempio, LOGON o SQL ACCESS TOKEN) e sostituiscono qualsiasi valore predefinito applicabile.
  • Utilizzare DBMS_MFA_ADMIN.SET_ATTRIBUTES per impostare uno o più attributi token per un utente in una singola chiamata, passando un oggetto JSON di coppie nome/valore attributo.
  • Utilizzare DBMS_MFA_ADMIN.SET_ATTRIBUTE per impostare un attributo token alla volta per un utente, specificando un singolo attribute_name e attribute_value.
  • auth_method indica quale provider MFA configurato viene utilizzato per consegnare e convalidare la richiesta di verifica di login per la sessione (ad esempio, OMA, Duo o Slack). Per l'autenticazione MFA in fase di login, auth_method è l'unico attributo supportato; altri attributi correlati all'autenticazione MFA non sono applicabili per l'autenticazione MFA in fase di login.

Esempio 5-1 Utilizzare DBMS_MFA_ADMIN.SET_ATTRIBUTES per impostare uno o più attributi token per un utente specificato

Fornire il nome utente, il tipo MFA e un oggetto attributes JSON contenente i nomi e i valori degli attributi. Le impostazioni specificate vengono applicate a tale utente e sostituiscono qualsiasi valore predefinito applicabile.

BEGIN
  DBMS_MFA_ADMIN.SET_ATTRIBUTES (
    username   => 'SCOTT3',
    type       => 'SQL ACCESS',
    attributes => JSON_OBJECT(
      'duration_min'     VALUE 30,
      'email'            VALUE 'scott3_alerts@example.com',
      'scope'            VALUE 'session',
      'idle_timeout_min' VALUE 20
    )
  );
END;
/

Questo esempio configura gli attributi del token di accesso SQL specifici dell'utente per SCOTT3, impostando una durata del token di 30 minuti, un timeout di inattività di 20 minuti, l'ambito della sessione e l'indirizzo di posta elettronica utilizzato per la consegna del token, ignorando eventuali valori predefiniti globali.

Per ulteriori informazioni, vedere SET_ATTRIBUTES Procedure.

Esempio 5-2 Utilizzare DBMS_MFA_ADMIN.SET_ATTRIBUTE per impostare un attributo token singolo per un utente specificato

Fornire il nome utente, il tipo MFA, l'ID e-mail, il nome attributo e il valore dell'attributo. L'impostazione viene applicata per tale utente e sostituisce tutti i valori predefiniti applicabili.

BEGIN
  DBMS_MFA_ADMIN.SET_ATTRIBUTE(
    username        => 'SCOTT4',
    type            => 'SQL ACCESS',
    email           => 'scott4_alerts@example.com',
    attribute_name  => 'duration_min',
    attribute_value => '25'
  );
END;
/

In questo esempio l'attributo duration_min viene impostato per SCOTT4, impostando il periodo di validità del token di accesso SQL su 25 minuti e specificando l'indirizzo di posta elettronica di consegna. Questa impostazione a livello di utente sostituisce tutti i valori predefiniti applicabili (inclusi i valori predefiniti globali del token di accesso SQL, se configurati).

Per ulteriori informazioni, vedere SET_ATTRIBUTE Procedure.

Annulla registrazione utente

Mostra come utilizzare la procedura DBMS_MFA_ADMIN.DEREGISTER_USER per rimuovere un utente del database da MFA.

L'annullamento della registrazione dell'utente disabilita i token di accesso per lo schema specificato e interrompe l'applicazione MFA per l'utente.

Ad esempio:
BEGIN
  DBMS_MFA_ADMIN.DEREGISTER_USER(
    username => 'SCOTT',
    type     => 'SQL ACCESS',
    email    => 'scott@example.com'
  );
END;
/

In questo modo l'utente SCOTT viene rimosso da SQL Access MFA. L'applicazione MFA e i token di accesso non sono più necessari per questo utente. Tuttavia, se SCOTT è registrato per MFA con più e-mail, sarà necessario annullare la registrazione di ogni voce separatamente per la rimozione completa.

Per ulteriori informazioni, vedere DEREGISTER_USER Procedure.

Limitazioni per l'autenticazione con più fattori nel database AI autonomo

Elenca le limitazioni con l'autenticazione a più fattori in Autonomous AI Database.

Le seguenti limitazioni si applicano quando si utilizza l'autenticazione a più fattori con Autonomous AI Database:
  • I token di accesso SQL non sono supportati per gli utenti RAS (Remote Application Service). Si tratta di conti applicazione non interattivi, che non possono fornire il secondo fattore richiesto per l'autenticazione MFA.

  • Con Continuità di applicazione o Continuità di applicazione trasparente, la continuità della sessione non viene mantenuta. Se una sessione utente viene terminata, la sessione si disconnette anche se il token di accesso SQL era valido.

  • I processi scheduler devono essere creati in una sessione autenticata e valida. Una volta creati, questi job vengono eseguiti in modo indipendente e non richiedono l'esecuzione di token di accesso SQL.

  • Gli utenti non registrati per l'autenticazione MFA del token di accesso SQL non possono eseguire l'istruzione SQL su un database link di proprietà di un utente registrato per l'autenticazione MFA del token di accesso SQL, poiché i token di accesso SQL non vengono propagati tra i database link. Oracle consiglia di evitare i database link di proprietà degli utenti registrati MFA del token di accesso SQL; utilizzare invece un proprietario del database link dedicato non configurato per l'autenticazione MFA del token di accesso SQL.
  • Gli utenti registrati non possono eseguire l'importazione/esportazione del proprio schema dopo aver impostato un token di accesso SQL. Le operazioni di esportazione non riescono con un errore di autorizzazione del token perché per eseguire le istruzioni SQL è necessaria la convalida del token.
  • Gli utenti registrati di SQL ACCESS non sono supportati per l'uso con gli strumenti DBActions.