Datenbankverbindung mit dem Datenbankkennwort-Plug-in authentifizieren

Oracle GoldenGate 23.5 und höher enthält ein benutzerfreundliches Plug-in, mit dem benutzerdefinierter Code geschrieben werden kann, um Datenbankzugangsdaten aus einem Vault eines Drittanbieters abzurufen und dann in einer vordefinierten API an Oracle GoldenGate zurückzugeben.

Da erweiterte Sicherheitsregeln von Organisationen als Best Practices verwendet werden, erlauben einige Organisationen nicht, die Datenbankzugangsdaten, wie z.B. das Kennwort, im lokalen Wallet von Oracle GoldenGate (Credential Store) zu speichern. Das Kennwort muss in einem Vault außerhalb von Oracle GoldenGate gespeichert werden. Um diese Authentifizierungsmethode zu implementieren, wurde das Datenbankkennwort-Plug-in eingeführt. Damit kann Oracle GoldenGate das Kennwort aus einem beliebigen Vault eines Drittanbieters oder OCI Vault abrufen, wenn eine Verbindung zu einer Datenbankinstanz hergestellt werden muss.

Erfahren Sie mehr über den Workflow zum Aktivieren des Datenbankkennwort-Plug-ins in Oracle GoldenGate und zum Abrufen des Secret-Kennworts, wenn Sie eine Datenbankverbindung aus Oracle GoldenGate herstellen.

Verwenden Sie eine der folgenden Optionen, um einen Datenbankkennwort-Plug-in-Service für Oracle GoldenGate einzurichten:

Für Datenbankkennwort-Plug-in erforderliche APIs

In diesem Plug-in müssen mindestens zwei Funktions-APIs vorhanden sein. Diese APIs werden wie folgt beschrieben:

getManifest()

Jedes Plug-in muss die Funktion getmanifest bereitstellen, die eine JSON-Stilzeichenfolge zurückgibt, die das Plug-in beschreibt, wie folgt:

{"$schema": "ogg:plugin", "version": "23.4" }

Die Versionsnummer kann kleiner/gleich der Oracle GoldenGate-Versionsnummer sein. Beispiel: Wenn Sie Oracle GoldenGate Version 23.6 ausführen, könnte die Versionsnummer in der JSON-Zeichenfolge 23.4, 23.5 oder 23.6 lauten.

getUseridAliasPassword(oggDomain *C.char, oggAlias *C.char, oggUserid *C.char, oggPassword *C.char)

Diese Funktion wird von Oracle GoldenGate aufgerufen, um das Kennwort für eine USERIDALIAS abzurufen.

Gibt einen Ganzzahlwert zurück. 0 bedeutet Erfolg und ein Wert ungleich Null ist ein Fehler.

oggDomain, oggAlias und oggUserid sind die Eingabeparameter zur Identifizierung der Datenbankbenutzerzugangsdaten. oggPassword ist der Ausgabeparameter, der das aus dem Vault abgerufene Kennwort zurückgibt.

Datenbankkennwort-Plug-in zum Speichern und Zugreifen auf das Datenbankkennwort aus einem Drittanbieter-Vault konfigurieren

Um das Secret-Kennwort aus einem Vault eines Drittanbieters Ihrer Wahl zu erstellen, zu speichern und abzurufen, müssen Sie Ihren eigenen benutzerdefinierten Code schreiben. Der Code muss eine gemeinsame Benutzer-Library generieren, mit der das Plug-in als Service von Oracle GoldenGate Service Manager aktiviert wird. Nachdem das Plug-in aktiviert wurde, können Sie auf den Vault eines Drittanbieters zugreifen, um das gespeicherte Secret-Kennwort abzurufen, wenn Sie eine Datenbankverbindung aus Oracle GoldenGate herstellen. Oracle GoldenGate speichert diese USERID als Alias in seinem Zugangsdatenspeicher unter domain_name.alias_name. domain_name und alias_name werden als Eingabeparameter zum Aufrufen des Plug-ins verwendet. Beispiel: Wenn der Domainname OracleGoldenGate lautet und der Alias ggeastadmin lautet, lautet der Secret-Name OracleGoldenGate.ggeastadmin. Das Plug-in identifiziert den Secret-Namen, der das Secret (Kennwort) aus dem Vault abrufen soll.

Der benutzerdefinierte Code kann in jeder Sprache geschrieben werden, solange er in einer gemeinsamen Benutzerbibliothek kompiliert werden kann. Die beliebtesten Sprachen, die verwendet werden können, sind GoLang, C/C++ und Python.

Das folgende Diagramm zeigt den Workflow, wenn das Datenbankkennwort-Plug-in mit Oracle GoldenGate zum Einrichten einer Datenbankverbindung aus einem Vault eines Drittanbieters verwendet wird. Der USERIDALIAS wird im Oracle GoldenGate-Zugangsdatenspeicher gespeichert, und das Secret-Kennwort wird im Vault eines Drittanbieters gespeichert.

Dieses Diagramm zeigt den schrittweisen Prozess der Funktionsweise der Oracle GoldenGate-Kennwort-Plug-in-Komponente im neuen Workflow, der einen Vault von 3rd-Party umfasst, um das Kennwort für die Anmeldung bei der Datenbank zu speichern.

Führen Sie die folgenden Schritte aus, um das Datenbankkennwort-Plug-in zum Speichern des Datenbankkennworts in einem Vault eines Drittanbieters zu konfigurieren und es abzurufen, um eine Datenbankverbindung von Oracle GoldenGate zu authentifizieren:

  1. Suchen Sie das Datenbankkennwort-Plug-in, das im Verzeichnis GG Service Manager Home/var/lib/plugins/ vorhanden ist. Unter diesem Verzeichnis befindet sich standardmäßig keine Bibliothek.

    Hinweis: Obwohl es keine Einschränkungen für den Bibliotheksdateinamen gibt, greift das Plug-in nur die erste Bibliotheksdatei auf, die an diesem Speicherort vorhanden ist.

  2. Prüfen Sie die Funktions-APIs, die mit dem Plug-in verwendet werden. Weitere Informationen finden Sie unter APIs erforderlich für Datenbankkennwort-Plug-in.

  3. Schreiben und kompilieren Sie den Code, um eine gemeinsame Benutzerbibliothek zu erstellen, die zur Aktivierung des Datenbankkennwort-Plug-ins verwendet wird. Sie müssen den Code basierend auf dem Vault eines Drittanbieters schreiben und kompilieren, mit dem Sie das Datenbankkennwort-Plug-in einrichten.

  4. Kopieren Sie die kompilierte Benutzer-Library in das Verzeichnis Service_Manager_Home/var/lib/plugins/.

  5. Führen Sie den REST-API-Befehl aus, um das Plug-in als neuen Service unter "Service Manager" zu aktivieren. Wenn der Service Manager lokal auf Port 9011 ausgeführt wird, sieht der Befehl wie folgt aus:

    shell>OGG_ADMIN_PASSWORD="xxxx"
    shell>curl -svu "oggadmin:${OGG_ADMIN_PASSWORD}"
    http://127.0.0.1:9011/services/v2/deployments/ServiceManager/services/pluginsrvr \ -XPOST --data '{"$schema":"ogg:service", "config":"external", "enabled":true,
    "critical":true, "status":"running"}'

    Sie können den Status des Plugins im Service Manager anzeigen, nachdem es aktiviert wurde, wie in der folgenden Abbildung gezeigt. Sie können den Service als Plug-in-Service unter Services anzeigen.

    Das Datenbankkennwort-Plug-in wird im Fenster "Service Manager-Services" angezeigt, nachdem es aktiviert wurde.

    Hinweis: Wenn Sie NGINX oder ein gesichertes Deployment verwenden, müssen Sie https anstelle von http und den entsprechenden CA-Zertifikatspfad in der Befehlszeile verwenden.

  6. Richten Sie gegebenenfalls Umgebungsvariablen für den Vault eines Drittanbieters ein, und starten Sie den Service Manager neu.

  7. Konfigurieren Sie den Vault eines Drittanbieters, und speichern Sie das Kennwort darin.

  8. Führen Sie den Admin-Client aus, und richten Sie die Zugangsdaten für die Datenbankanmeldung mit der Option PLUGIN oder der zuvor verwendeten Option NOPASSWORD ein, und testen Sie, ob die Verbindung zur Datenbank erfolgreich ist. Diese Konfiguration wird im folgenden Beispiel veranschaulicht:

    a. Stellen Sie eine Verbindung zum Deployment her:

     OGG (not connected) 1> CONNECT http://127.0.0.1:9011 AS oggadmin

    b. Zugangsdaten hinzufügen:

    • Verwenden Sie die Option Plugin:

      OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 PLUGIN ALIAS ggeastadmin

      Ausgabe:

      2026-04-02T18:34:14Z  INFO OGG-15114  Credential store altered.
      Credential Type: Plugin
    • Verwenden Sie die Option PLUGIN SECRET:

      OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 PLUGIN SECRET abc ALIAS ggeastadmin

      Ausgabe:

      2026-04-02T18:34:14Z  INFO OGG-15114  Credential store altered.
      Credential Type: Plugin Secret
    • Verwenden der Legacy-Option NOPASSWORD mit dem folgenden Befehl:

      ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 NOPASSWORD ALIAS u1alias;

    c. Melden Sie sich mit dem Zugangsdatenalias bei der Datenbank an:

     OGG (http://127.0.0.1:9011 Deployment) 3> DBLOGIN USERIDALIAS ggadmin

Datenbankkennwort-Plug-in zum Speichern und Zugreifen auf das Datenbankkennwort aus OCI Vault konfigurieren

Um das Secret-Kennwort aus OCI Vault zu erstellen, zu speichern und abzurufen, können Sie den Beispielcode verwenden. Dieser zeigt, wie Sie das Secret-Kennwort aus dem OCI Vault abrufen. Oracle GoldenGate speichert die USERID als Alias in seinem Zugangsdatenspeicher unter domain_name.alias_name. Das Kennwort wird in OCI Vault als Secret unter dem Secret-Namen domain_name.alias_name gespeichert. Beispiel: Wenn der Domainname OracleGoldenGate lautet und der Alias ggeastadmin lautet, lautet der Secret-Name OracleGoldenGate.ggeastadmin. Das Plug-in identifiziert den Secret-Namen, der das Secret (Kennwort) aus dem Vault abrufen soll.

Die Schritte im Diagramm veranschaulichen den Workflow zum Einrichten des Datenbankkennwort-Plug-ins mit OCI Vault:

Workflow zum Konfigurieren des Datenbankkennwort-Plug-ins mit OCI Vault für die Verbindung mit der Datenbank von Oracle GoldenGate.

  1. Erstellen Sie ein Kennwort in OCI Vault.

  2. Prüfen Sie, ob das Secret im OCI Vault erstellt wurde, der das Kennwort für diesen Datenbankbenutzer "ggeastadmin" enthält. Stellen Sie sicher, dass der Secret-Name mit der erwarteten Benennungskonvention übereinstimmt. Beispiel: `OracleGoldenGate.ggeastadmin` im Format `domain_name.alias_name`. ![Im OCI Vault muss der Secret-Name mit der erwarteten Benennungskonvention übereinstimmen. Beispiel: OracleGoldenGate.ggeastadmin im Format domain_name.alias_name.](images/vault-1.png " ")
  3. Suchen Sie das Datenbankkennwort-Plug-in, das im Verzeichnis GG Service Manager Home/var/lib/plugins/ vorhanden ist. Unter diesem Verzeichnis befindet sich standardmäßig keine Bibliothek.

    Hinweis: Obwohl es keine Einschränkungen für den Bibliotheksdateinamen gibt, greift das Plug-in nur die erste Bibliotheksdatei auf, die an diesem Speicherort vorhanden ist.

  4. Prüfen Sie die Funktions-APIs, die Sie mit dem Plug-in verwenden müssen. Weitere Informationen finden Sie unter APIs erforderlich für Datenbankkennwort-Plug-in.

  5. Greifen Sie über OGG_HOME/src/PluginExamples/OCIVault/OCIVault.go auf den Beispielcode zu, um die gemeinsam verwendete Benutzerbibliothek zu generieren.

  6. Kompilieren Sie den Code, indem Sie den Befehl make aus OGG_HOME/src/PluginExamples/OCIVault/OCIVault.go ausführen. Dadurch wird die Benutzerbibliothek mit dem Namen libOCIVault.so generiert.

  7. Kopieren Sie die Benutzer-Library libOCIVault.so in das Verzeichnis Service_Manager_Home/var/lib/plugins/.

  8. Geben Sie den REST-API-Befehl aus, um dieses Plug-in als neuen Service unter "Service Manager" zu aktivieren. Wenn der Service Manager lokal auf Port 9011 ausgeführt wird, sieht der Befehl wie folgt aus:

    shell>OGG_ADMIN_PASSWORD="xxxx"
    shell>curl -svu "oggadmin:${OGG_ADMIN_PASSWORD}"
    http://127.0.0.1:9011/services/v2/deployments/ServiceManager/services/pluginsrvr \ -XPOST --data '{"$schema":"ogg:service", "config":"external", "enabled":true,
    "critical":true, "status":"running"}'

    Sie können den Status des Plugins im Service Manager anzeigen, nachdem es aktiviert wurde, wie in der folgenden Abbildung gezeigt. Sie können den Service als Plug-in-Service unter Services anzeigen.

    Das Datenbankkennwort-Plug-in wird im Fenster "Service Manager-Services" angezeigt, nachdem es aktiviert wurde.

    Hinweis: Wenn Sie NGINX oder ein gesichertes Deployment verwenden, müssen Sie https anstelle von http und den entsprechenden CA-Zertifikatspfad in der Befehlszeile verwenden.

  9. Setzen Sie in der Service Manager-Weboberfläche die Umgebungsvariablen OCI_AUTH und OCID_VAULT_OCID auf die folgenden Werte:

    • OCI_AUTH = instance_principal: In diesem Beispiel wurde die Authentifizierungsmethode instance_principal verwendet. Das Datenbankkennwort-Plug-in unterstützt jedoch die folgenden Authentifizierungsmethoden für OCI Vault, einschließlich:

      • instance_pricinpal: Instanz-Principal-Authentifizierung.

      • DEFAULT: Standardprofil in der OCI-Konfigurationsdatei.

      • Angepasster Name: Angepasstes Profil in der OCI-Konfigurationsdatei.

      • OCID_VAULT_OCID = ocid1.vault.oc1-us-sanjose-1.exxxxxxxxxxxxxxxxxx42upinp4mfxwta: Dieser Wert wird aus Schritt 2 abgeleitet.

        Beide Umgebungsvariablen müssen im Abschnitt "Umgebungsvariable" unter der Konfiguration des Service Managers korrekt eingerichtet werden.

        Legen Sie die Umgebungsvariablen OCI_AUTH und OCI_VAULT_OCID fest.

        Hinweis: Wenn Sie NGINX oder ein gesichertes Deployment verwenden, müssen Sie https anstelle von http und den entsprechenden CA-Zertifikatspfad in der Befehlszeile verwenden.

  10. Starten Sie den Service Manager neu, um die Einstellungen zu aktivieren.

  11. Identifizieren Sie die VM-Instanz, auf der Oracle GoldenGate Service Manager ausgeführt wird.

  12. Fügen Sie die VM-Instanz einer dynamischen Gruppe hinzu, damit die instance_principal-Authentifizierung funktioniert.

  13. Weisen Sie ein Tag für die VM-Instanz zu. Beispiel: EASTVaultTest. Dies würde es einfacher machen, dynamische Gruppen zu erstellen. Weitere Informationen finden Sie unter Dynamische Gruppen verwalten. Die dynamische Gruppe benötigt eine Policy, um das Secret in diesem Vault zu verwenden.

  14. Erstellen Sie eine Policy, damit diese dynamische Gruppe die Secret-Ressource (Secret-Kennwort) verwenden kann. Einzelheiten zum Erstellen einer Policy zur Kontrolle des Zugriffs auf den Vault-Service finden Sie unter Details zum Vault-Service.

    Policy für den Zugriff auf das Secret-Kennwort aus OCI Vault

  15. Führen Sie den Admin-Client aus, um den Datenbankanmeldealias mit der Option NOPASSWORD zu erstellen, und testen Sie, ob die Verbindung erfolgreich ist, wie im folgenden Beispiel dargestellt:

    OGG (not connected) 1> CONNECT http://127.0.0.1:9011 AS oggadmin
    Using default deployment 'Deployment'
    OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 ALIAS ggeastadmin NOPASSWORD
    2024-04-02T18:34:14Z  INFO    OGG-15114  Credential store altered.
    OGG (http://127.0.0.1:9011 Deployment) 3> DBLOGIN USERIDALIAS ggadmin
    Successfully logged into database.

Datenbankkennwort-Plug-in zum Speichern und Zugreifen auf das Datenbankkennwort aus Oracle Key Vault konfigurieren

Oracle GoldenGate 23.5 und höhere Releases enthalten einen Plug-in-Service, mit dem Sie benutzerdefinierten Code zum Abrufen von Datenbankzugangsdaten aus einem Vault eines Drittanbieters schreiben und die Zugangsdaten in einer vordefinierten API an Oracle GoldenGate zurückgeben können, wie unter Datenbankkennwort-Plug-in zum Speichern und Zugreifen auf das Datenbankkennwort aus einem Vault eines Drittanbieters konfigurieren beschrieben. Dieses Feature umfasst die libokvoggdbpwd.so-Bibliothek, die in Oracle GoldenGate zur Verwaltung von Kennwörtern aus Oracle Key Vault konfiguriert werden kann.

Das folgende Diagramm stellt den Workflow zwischen Oracle GoldenGate und Oracle Key Vault dar, mit dem der Plug-in-Service konfiguriert wird. Anschließend können Sie mit der OKV-Plug-in-Bibliothek Datenbankkennwörter vom Oracle Key Vault-Server anfordern und abrufen.

Workflow zur Darstellung der Konfiguration des Plug-in-Service zum Abrufen von Datenbankkennwörtern aus OKV für Oracle GoldenGate-Prozesse.

Der Prozess zum Speichern und Abrufen der Datenbankkennwörter aus Oracle Key Vault kann wie folgt zusammengefasst werden:

  1. Oracle GoldenGate-Administrator lädt Oracle GoldenGate-Kennwörter mit dem Serviceutility RESTful in Oracle Key Vault hoch.

  2. Oracle GoldenGate fordert die Datenbankzugangsdaten vom Oracle Key Vault-Server mit der Plug-in-Library libokvoggdbpwd.so an. Dieses Kennwort wird nach erfolgreichen Backend-Validierungen vom OKV-Server abgerufen.

  3. Nachdem das Kennwort abgerufen wurde, können Oracle GoldenGate-Prozesse mit einem remote gespeicherten Kennwort eine Verbindung zur Datenbank herstellen.

Weitere Informationen zur Implementierung dieses Features für das Speichern und Abrufen von Oracle GoldenGate-Datenbankkennwörtern finden Sie unter Verwalten von Oracle GoldenGate-Kennwörtern zentralisieren im Oracle Key Vault-Administratorhandbuch.