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:
- GoldenGate riceve
DBLOGIN USERIDALIAS ali_entra_u1. - Risolve
ali_entra_u1nel file CredentialStore. - Identifica la voce come credenziale Entra ID.
- Legge il segreto client da CredentialStore.
- Legge gli attributi Entra ID rimanenti dal descrittore di connessione
cdb1_pdb1. - Stabilisce la sessione di database utilizzando l'autenticazione Microsoft Entra ID OAuth.
Prerequisiti
Prima di configurare GoldenGate DBLOGIN per Microsoft EntraID, assicurarsi che:
- Vengono configurati il principal dell'applicazione e del servizio Microsoft Entra.
- Il principal del servizio è autorizzato a connettersi all'Oracle AI Database di destinazione.
- Il descrittore di connessione client Oracle contiene gli attributi Entra ID richiesti.
- Il file GoldenGate CredentialStore è disponibile e inizializzato.
- Il segreto client è disponibile per la registrazione all'indirizzo CredentialStore.
Configurare il descrittore di connessione database
L'alias EZConnect o TNS utilizzato da GoldenGate deve contenere gli attributi di connessione Entra ID:
TOKEN_AUTH=AZURE_SERVICE_PRINCIPALTENANT_IDCLIENT_IDAZURE_DB_APP_ID_URI
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:
/@cdb1_pdb1identifica il descrittore di connessione.ali_entra_u1è l'alias della credenziale GoldenGate.CLIENTSECRETidentifica la credenziale come credenziale Entra ID OAuth.- Il valore che segue
CLIENTSECRETè il segreto client dell'applicazione Entra ID.
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:
CLIENT_ID,TENANT_IDeAZURE_DB_APP_ID_URIdal descrittore di connessione.CLIENTSECRETdal CredentialStore.
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
- Il segreto client deve corrispondere all'applicazione Entra ID identificata da
CLIENT_ID. - I valori
TENANT_ID,CLIENT_IDeAZURE_DB_APP_ID_URIdevono essere coerenti con la configurazione dell'applicazione Entra ID e del database di destinazione. - Il segreto client è associato all'alias GoldenGate, mentre gli altri parametri OAuth sono associati al descrittore di connessione del database.
- Non includere un nome utente o una password del database durante la creazione di una credenziale Entra ID.
- Utilizzare un alias di credenziale separato per ogni segreto client o connessione di destinazione come richiesto dalla distribuzione.
- Proteggere il segreto client durante l'esecuzione dei comandi ed evitare di registrarlo in script, cronologie di comandi o output diagnostico.