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:

  1. GoldenGate empfängt DBLOGIN USERIDALIAS ali_entra_u1.
  2. Er löst ali_entra_u1 in der CredentialStore auf.
  3. Identifiziert den Eintrag als Entra-ID-Zugangsdaten.
  4. Liest das Client Secret aus der CredentialStore.
  5. Liest die verbleibenden Entra-ID-Attribute aus dem Verbindungsdeskriptor cdb1_pdb1.
  6. 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:

Database Connect-Deskriptor konfigurieren

Der von GoldenGate verwendete EZConnect- oder TNS-Alias muss die Entra-ID-Verbindungsattribute enthalten:

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:

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:

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