Autentica connessione al database OAuth con Microsoft EntraID

EntraID è un modo senza password per eseguire l'autenticazione nel database. Una credenziale normale utilizza nome utente/password per l'autenticazione con RDBMS. Con EntraID, utilizzare client_id, tenant_id, app_id_uri e client_secret per connettersi al database. Questi valori sono incorporati nella stringa di connessione al database.

Oracle GoldenGate supporta l'autenticazione Microsoft Entra ID OAuth consentendo la memorizzazione di un segreto client nel file GoldenGate CredentialStore e la fornitura nel file DBLOGIN. Il segreto client viene utilizzato al posto di una password del database.

Questa configurazione è destinata all'autenticazione OAuth basata su plugin che utilizza un principal del servizio Entra ID.

Funzionamento dell'autenticazione

Il flusso di autenticazione GoldenGate è il seguente:

  1. GoldenGate riceve DBLOGIN USERIDALIAS ali_entra_u1.
  2. Risolve ali_entra_u1 nel file CredentialStore.
  3. Identifica la voce come credenziale Entra ID.
  4. Legge il segreto client da CredentialStore.
  5. Legge gli attributi Entra ID rimanenti dal descrittore di connessione cdb1_pdb1.
  6. Stabilisce la sessione di database utilizzando l'autenticazione Microsoft Entra ID OAuth.

Prerequisiti

Prima di configurare GoldenGate DBLOGIN per Microsoft EntraID, assicurarsi che:

Configurare il descrittore di connessione database

L'alias EZConnect o TNS utilizzato da GoldenGate deve contenere gli attributi di connessione Entra ID:

Ad esempio:

cdb1_pdb1 =
  (DESCRIPTION =
    (ADDRESS =
      (PROTOCOL = tcps)
      (HOST = ggeastsource)
      (PORT = 15414)
    )
    (SECURITY =
      (SSL_SERVER_CERT_DN = "C=US,O=OracleCorporation,CN=sslserver1")
      (TOKEN_AUTH = AZURE_SERVICE_PRINCIPAL)
      (TENANT_ID = 443z0000-e00d-000a-8b0a-000000000000d)
      (CLIENT_ID = 00c00cb0-c0ab-0030-bcb0-0c0ca0b0fdee)
      (AZURE_DB_APP_ID_URI =
        https://ftest_cdb1_pdb1.az207oracleoutlook.onmicrosoft.com
      )
    )
    (CONNECT_DATA =
      (SERVICE_NAME = ggeastsource.us.oracle.com)
    )
  )

Il descrittore di connessione memorizza le proprietà di connessione Entra ID non segrete. Il segreto client deve essere memorizzato separatamente nel file GoldenGate CredentialStore.

Aggiungi credenziale Entra ID

Utilizzare la parola chiave CLIENTSECRET per creare una credenziale Entra ID:

ALTER CREDENTIALSTORE ADD USER /@cdb1_pdb1
  ALIAS ali_entra_u1
  CLIENTSECRET H9pL2~vQeR7nMx3TaK8cWz1YdF4sJ_N6rP_Tx9aK

Dove:

Una voce Entra ID CredentialStore contiene solo il segreto client. Non contiene un nome utente o una password del database.

Login mediante alias credenziale

Dopo aver aggiunto la credenziale, utilizzare l'alias con DBLOGIN:

DBLOGIN USERIDALIAS ali_entra_u1

GoldenGate risolve l'alias e utilizza le seguenti informazioni di autenticazione:

Nessuna richiesta per il nome utente e la password di un database. In alternativa, GoldenGate fornisce il segreto client alla sessione OAuth del client Oracle.

Utilizzare CLIENTSECRET per l'autenticazione Entra ID OAuth. Non utilizzare NOPASSWORD quando il segreto client viene memorizzato in GoldenGate CredentialStore.

Considerazioni