Configura autenticazione proxy IAM

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

Informazioni sulla configurazione dell'autenticazione proxy IAM

Gli utenti IAM possono connettersi a Oracle DBaaS utilizzando l'autenticazione proxy.

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.

Configura 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'account utente del database locale.
    Impossibile fare riferimento a un utente IAM nel comando. È pertanto necessario creare il proxy tra l'utente globale del database (mappato all'utente IAM) e l'utente del database di destinazione.
    Nell'esempio seguente, hrapp è lo schema di database a cui eseguire il proxy e peterfitch_schema è l'utente globale del database mappato in modo esclusivo 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 di password:
CONNECT peterfitch[hrapp]@connect_string
Enter password: password

Per connettersi utilizzando un token:

CONNECT [hrapp]/@connect_string

Convalida 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 come 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. Eseguire le query seguenti dopo aver delegato il proxy al database utilizzando un utente IAM. A seconda della modalità di autenticazione e accesso al database, si otterranno valori diversi per queste query.
    • Per l'autenticazione con password, supponendo che l'utente IAM si trovi nel dominio predefinito:
      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_PROXY"
      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 token, per un utente che si trova in un dominio non predefinito, sales_domain:
      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_PROXY"
      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"