Datenbankverbindung OAuth mit Microsoft EntraID authentifizieren
EntraID ist eine kennwortlose Methode zur Authentifizierung bei der Datenbank. Bei regulären Zugangsdaten wird Benutzername/Kennwort zur Authentifizierung mit RDBMS verwendet. Verwenden Sie bei EntraID client_id, tenant_id, app_id_uri und client_secret, um eine Verbindung zur Datenbank herzustellen. Diese Werte sind in die Verbindungszeichenfolge der Datenbank eingebettet.
Oracle GoldenGate unterstützt die Microsoft Entra ID-Authentifizierung OAuth, indem ein Client Secret in GoldenGate CredentialStore gespeichert und während DBLOGIN bereitgestellt werden kann. Das Client Secret wird anstelle eines Datenbankkennworts verwendet.
Diese Konfiguration ist für die pluginbasierte OAuth-Authentifizierung mit einem Entra ID-Service-Principal vorgesehen.
Funktionsweise der Authentifizierung
Der Authentifizierungsablauf GoldenGate lautet wie folgt:
- GoldenGate empfängt
DBLOGIN USERIDALIAS ali_entra_u1. - Er löst
ali_entra_u1in der CredentialStore auf. - Identifiziert den Eintrag als Entra-ID-Zugangsdaten.
- Liest das Client Secret aus der CredentialStore.
- Liest die verbleibenden Entra-ID-Attribute aus dem Verbindungsdeskriptor
cdb1_pdb1. - Richtet die Datenbanksession mit der Microsoft Entra ID OAuth-Authentifizierung ein.
Voraussetzungen
Bevor Sie GoldenGate DBLOGIN für Microsoft EntraID konfigurieren, stellen Sie Folgendes sicher:
- Die Microsoft Entra-Anwendung und der Service-Principal sind konfiguriert.
- Der Service-Principal ist autorisiert, eine Verbindung zur Oracle AI Database-Zielinstanz herzustellen.
- Der Oracle-Clientverbindungsdeskriptor enthält die erforderlichen Entra-ID-Attribute.
- Die GoldenGate CredentialStore ist verfügbar und wird initialisiert.
- Das Client Secret ist zur Registrierung in der CredentialStore verfügbar.
Database Connect-Deskriptor konfigurieren
Der von GoldenGate verwendete EZConnect- oder TNS-Alias muss die Entra-ID-Verbindungsattribute enthalten:
TOKEN_AUTH=AZURE_SERVICE_PRINCIPALTENANT_IDCLIENT_IDAZURE_DB_APP_ID_URI
Beispiel:
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)
)
)
Der Verbindungsdeskriptor speichert die Nicht-Secret-Entra-ID-Verbindungseigenschaften. Das Client Secret muss separat in der GoldenGate CredentialStore gespeichert werden.
Entra-ID-Zugangsdaten hinzufügen
Verwenden Sie das Schlüsselwort CLIENTSECRET, um Entra-ID-Zugangsdaten zu erstellen:
ALTER CREDENTIALSTORE ADD USER /@cdb1_pdb1
ALIAS ali_entra_u1
CLIENTSECRET H9pL2~vQeR7nMx3TaK8cWz1YdF4sJ_N6rP_Tx9aK
Wo:
/@cdb1_pdb1identifiziert den Verbindungsdeskriptor.ali_entra_u1ist der Zugangsdatenalias GoldenGate.CLIENTSECRETidentifiziert die Zugangsdaten als Entra-ID-Zugangsdaten OAuth.- Der Wert nach
CLIENTSECRETist das Client Secret der Entra-ID-Anwendung.
Ein Entra-ID-Eintrag CredentialStore enthält nur das Client Secret. Sie enthält keinen Datenbankbenutzernamen oder kein Datenbankkennwort.
Mit dem Zugangsdatenalias anmelden
Nachdem Sie die Zugangsdaten hinzugefügt haben, verwenden Sie den Alias mit DBLOGIN:
DBLOGIN USERIDALIAS ali_entra_u1
GoldenGate löst den Alias auf und verwendet die folgenden Authentifizierungsinformationen:
CLIENT_ID,TENANT_IDundAZURE_DB_APP_ID_URIaus dem Verbindungsdeskriptor.CLIENTSECRETaus der CredentialStore.
Für einen Datenbankbenutzernamen und ein Datenbankkennwort ist keine Anforderung vorhanden. Stattdessen stellt GoldenGate das Client Secret der OAuth-Session des Oracle-Clients bereit.
Verwenden Sie CLIENTSECRET für die Entra-ID-Authentifizierung OAuth. Verwenden Sie NOPASSWORD nicht, wenn das Client Secret in der GoldenGate CredentialStore gespeichert wird.
Überlegungen
- Das Client Secret muss der Entra-ID-Anwendung entsprechen, die mit
CLIENT_IDidentifiziert wird. - Die Werte
TENANT_ID,CLIENT_IDundAZURE_DB_APP_ID_URImüssen mit der Entra-ID-Anwendung und der Zieldatenbankkonfiguration konsistent sein. - Das Client Secret ist mit dem Alias GoldenGate verknüpft, während die anderen OAuth-Parameter mit dem Datenbankverbindungsdeskriptor verknüpft sind.
- Geben Sie beim Erstellen von Entra-ID-Zugangsdaten keinen Datenbankbenutzernamen oder kein Datenbankkennwort an.
- Verwenden Sie je nach Deployment einen separaten Zugangsdatenalias für jedes Client Secret oder jede Zielverbindung.
- Schützen Sie das Client Secret während der Befehlsausführung, und vermeiden Sie die Aufzeichnung in Skripten, Befehlshistorien oder Diagnoseausgaben.