Configura autenticazione proxy IAM

L'autenticazione proxy consente a un utente IAM di eseguire il proxy a 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 possono eseguire l'audit dell'utente effettivo che ha eseguito un'azione.

Un caso d'uso può essere in un ambiente in cui un utente IAM denominato amministratore del database dell'applicazione può eseguire l'autenticazione utilizzando le proprie credenziali e quindi 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, ma di utilizzare comunque le credenziali IAM per l'autenticazione. Un amministratore del database dell'applicazione può collegarsi al database e quindi eseguire il proxy a uno schema dell'applicazione per gestire questo schema.

È possibile configurare l'autenticazione proxy sia per i metodi di autenticazione della password che per i metodi di autenticazione del token.

Configurare l'autenticazione proxy per l'utente IAM

Per configurare l'autenticazione proxy per un utente IAM, l'utente IAM deve disporre 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 a cui eseguire il proxy.

Dopo aver verificato che si dispone di questo tipo di utente, modificare l'utente del database per consentire all'utente IAM di eseguirne 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 per eseguire il proxy dell'account utente del database locale.
    Non è possibile 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 su cui eseguire il proxy e peterfitch_schema è l'utente globale del database mappato esclusivamente 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 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 proxy utente IAM per entrambi i metodi di autenticazione di password e 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 proxy per l'utente del database hrapp. Eseguire le query seguenti dopo aver eseguito il proxy per il database utilizzando un utente IAM. A seconda della modalità di autenticazione e di accesso al database, si otterranno valori diversi per queste query.
    • Per l'autenticazione della password, si presuppone 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 del 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"