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

Dopo che l'utente ADMIN ha abilitato IAM di Oracle Cloud Infrastructure su Autonomous Database, gli utenti eseguono il login all'istanza di Autonomous Database utilizzando le proprie credenziali IAM di Oracle Cloud Infrastructure o accedono al database tramite un token di database IAM di 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 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, 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 versione 19.16). Alcuni client precedenti offrono un set limitato di funzionalità per l'accesso ai token.

Gli esempi riportati di seguito mostrano il verificatore 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 i client supportati, inclusi i seguenti:

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

Gli utenti IAM possono connettersi all'istanza di Autonomous Database 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, invece di memorizzare il verificatore password (hash cifrato della password) nel database Oracle, il verificatore viene invece memorizzato come parte 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 si adatta meglio alle risorse cloud come Autonomous Database. 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. Quando si utilizzano i token per l'accesso al database è necessaria una connessione TCPS (TLS).

Nota

Non è possibile configurare la cifratura di rete nativa quando si passa un token IAM. È supportata solo la TLS (Transport Layer Security) da sola, 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 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 DBaaS OCI.

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

Per l'accesso del token IAM ad Autonomous Database, 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
  • Utilizzando un nome utente IAM e una password del database IAM (può essere richiesto solo dal client del database).

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: 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 di database IAM.

  • L'utente IAM può 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 strumento non supporta 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 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 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 db-token con un token di 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, 21c o 23ai.
    Questa configurazione funziona solo con i 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 configurarlo per l'uso con SQL*Plus.
    1. Verificare che la corrispondenza DN sia abilitata cercando SSL_SERVER_DN_MATCH=ON in sqlnet.ora.
      Nota

      La corrispondenza DN parziale o completo è necessaria quando si invia un token dal client del database ad Autonomous Database. 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 su come impostare il parametro host quando si utilizza un endpoint privato, vedere Esempi di configurazione degli endpoint privati su Autonomous Database.

    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_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 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, 
     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 ha abilitato IAM di Oracle Cloud Infrastructure su Autonomous Database, un'applicazione può accedere al database tramite un token di database IAM di 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.