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

Dopo che l'utente ADMIN ha abilitato Oracle Cloud Infrastructure IAM su Autonomous Database, 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 Oracle Cloud Infrastructure.

Dopo aver abilitato l'accesso utente IAM di Oracle Cloud Infrastructure, puoi anche eseguire il login ad Autonomous Database utilizzando il nome utente e la password dell'account di database locale (account utente del database non globale).

Puoi 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, puoi utilizzare un token di database IAM Oracle Cloud Infrastructure per accedere a un'istanza di Autonomous Database. L'uso dei token IAM richiede il client Oracle Database più recente 19c (almeno la 19.16). Alcuni client precedenti forniscono un set limitato di funzionalità per l'accesso ai token.

Gli esempi seguenti mostrano il verificatore delle password con SQL*Plus per accedere al database con un nome utente e una password IAM Oracle Cloud Infrastructure e i passi necessari per utilizzare SQL*Plus con un token di database IAM Oracle Cloud Infrastructure.

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.

È possibile utilizzare un token di database IAM Oracle Cloud Infrastructure per accedere a un'istanza di Autonomous Database con client supportati, inclusi gli elementi riportati di seguito.

Informazioni sulla connessione a un'istanza di Autonomous Database mediante IAM

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

L'uso del verificatore delle password del database IAM è simile al processo di autenticazione delle password di Oracle Database. Tuttavia, invece che il verificatore delle password (hash crittografato della password) memorizzato nel database Oracle, il verificatore viene invece memorizzato come parte del profilo utente IAM di 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 è la soluzione migliore per le risorse cloud come Autonomous Database. Il token si basa sull'efficacia che l'endpoint IAM può applicare. Questo può essere l'autenticazione a più fattori, che è più forte dell'uso delle password da solo. Un altro vantaggio dell'utilizzo dei token è che il verificatore delle password (che è considerato sensibile) non viene mai memorizzato o disponibile in memoria. È necessaria una connessione TCPS (TLS) quando si utilizzano i token per l'accesso al database.

Nota

Non è possibile configurare la cifratura di rete nativa quando si passa un token IAM. È supportato solo TLS (Transport Layer Security) in quanto tale, non la cifratura di rete nativa o la cifratura di rete nativa con TLS.

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 di 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 DBaaS OCI.

Connessioni client che utilizzano un token richiesto da un'applicazione client o da uno strumento

Per l'accesso del token IAM ad Autonomous Database, l'applicazione client o lo strumento 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 del 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 credenziali riportate di seguito.

  • Token di sicurezza (con autenticazione IAM), token di delega (in OCI cloud shell) e API-keys, che sono credenziali che rappresentano l'utente IAM per abilitare l'autenticazione
  • Token principal dell'istanza, che consentono alle istanze di essere attori (o principal) autorizzati a eseguire azioni sulle risorse del servizio dopo l'autenticazione
  • Token principal risorsa, che è una credenziale che consente all'applicazione di autenticarsi in altri servizi Oracle Cloud Infrastructure
  • Uso di un nome utente IAM e di una password del database IAM (può essere richiesto solo dal client del database).

Quando gli utenti IAM eseguono il login al client con un login barra / e il parametro OCI_IAM è configurato (sqlnet.ora, tnsnames.ora o come parte di una stringa di connessione), il client di 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 i verificatori delle password del database IAM. Le istruzioni riportate in questa guida mostrano come utilizzare l'interfaccia CLI OCI come supporto per il token del 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 sono i seguenti: SQLPlus on-premise, SQLcl on-premise, SQL*Plus in Cloud Shell o applicazioni che utilizzano wallet SEP.

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 del database IAM.

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

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

    L'esempio riportato di seguito mostra come 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 richiederanno 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 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 strumento non supporta l'integrazione diretta IAM, scarica, installa e configura l'interfaccia CLI OCI. Vedere Avvio rapido dell'interfaccia a riga di comando OCI. Impostare una chiave API come parte 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 valore db-token. Ad esempio:
      • Recupero di un db-token con un API-key mediante l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI):
        oci iam db-token get
      • Recupero di un db-token con un token di sicurezza (o di 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 il token db-token.

      • Recupero di un db-token con un token di delega: quando si esegue il login a cloud shell, il token di delega viene generato e posizionato automaticamente nella directory /etc. Per ottenere questo token, eseguire il comando seguente in 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 della release più recenti per le release client di Oracle Database 19c, 21c o 23ai.
    Questa configurazione funziona solo con il client Oracle Database release 19c, 21c o 23ai.
  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.
      Nota

      Quando si invia un token dal client di database ad Autonomous Database, è necessaria una corrispondenza DN parziale o completa. Se Autonomous Database utilizza un endpoint privato, è necessario specificare un valore host per il parametro della stringa di connessione. L'uso di un indirizzo IP per il parametro host nella stringa di connessione non funzionerà con la corrispondenza DN e il token IAM non verrà inviato al database.

      Per informazioni sulla configurazione di come impostare il parametro host quando si utilizza un endpoint privato, vedere Esempi di configurazione degli endpoint privati in Autonomous Database.

    2. Configurare il client di database per utilizzare il token IAM aggiungendo TOKEN_AUTH=OCI_TOKEN al file sqlnet.ora. Poiché verranno utilizzate 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 tale 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_dn_match=yes)
      (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 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, 
     O=Example Corporation, 
     L=Redwood City, ST=California, C=US")
  (TOKEN_AUTH=OCI_TOKEN)))

Il client di database è già configurato per ottenere un valore 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 invece di utilizzare db-token.

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

Dopo che l'utente ADMIN ha abilitato Oracle Cloud Infrastructure IAM 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 tramite i principal delle istanze.