Autenticación de la Conexión a la Base de Datos mediante el Plugin de Contraseña de Base de Datos
Oracle GoldenGate 23.5 y versiones posteriores incluye un plugin fácil de usar que permite escribir código personalizado para recuperar credenciales de base de datos de un almacén de terceros y, a continuación, devolverlo en una API predefinida a Oracle GoldenGate.
Con el aumento de las reglas de seguridad incluidas como mejores prácticas por parte de las organizaciones, algunas organizaciones no permiten almacenar las credenciales de la base de datos, como la contraseña, en la cartera local de Oracle GoldenGate (almacén de credenciales). La contraseña se debe almacenar en un almacén fuera de Oracle GoldenGate. Para implementar este método de autenticación, se ha introducido el plugin de contraseña de base de datos. Permite a Oracle GoldenGate recuperar la contraseña de cualquier almacén de terceros de su elección o de OCI Vault, cuando necesita conectarse a una instancia de base de datos.
Obtenga información sobre el flujo de trabajo para activar el plugin de contraseña de base de datos en Oracle GoldenGate y utilícelo para recuperar la contraseña secreta al establecer una conexión de base de datos desde Oracle GoldenGate.
Utilice cualquiera de las siguientes opciones para configurar un servicio de plugin de contraseña de base de datos para Oracle GoldenGate:
API necesarias para el plugin de contraseña de base de datos
Debe existir un mínimo de dos API de función en este plugin. Estas API se describen de la siguiente manera:
getManifest()
Cada plugin debe exponer la función getmanifest que devuelve una cadena de estilo JSON que describe el plugin, como se muestra:
{"$schema": "ogg:plugin", "version": "23.4" }
El número de versión puede ser igual o menor que el número de versión de Oracle GoldenGate. Por ejemplo, si ejecuta Oracle GoldenGate versión 23.6, el número de versión de la cadena JSON podría ser 23.4, 23.5 o 23.6.
getUseridAliasPassword(oggDomain *C.char, oggAlias *C.char, oggUserid *C.char, oggPassword *C.char)
Oracle GoldenGate llama a esta función para recuperar la contraseña de USERIDALIAS.
Devuelve un valor entero. 0 significa éxito y cualquier valor distinto de cero es un fallo.
oggDomain, oggAlias y oggUserid son los parámetros de entrada para identificar las credenciales de usuario de la base de datos. oggPassword es el parámetro de salida que devuelve la contraseña recuperada del almacén.
Configuración del Plugin de Contraseña de Base de Datos para Almacenar y Acceder a la Contraseña de Base de Datos desde un Almacén de Terceros
Para crear, almacenar y recuperar la contraseña secreta de un almacén de terceros de su elección, debe escribir su propio código personalizado. El código debe generar una biblioteca de usuarios compartida, que se utilizaría para activar el plugin como servicio desde Oracle GoldenGate Service Manager. Después de activar el plugin, puede acceder al almacén de terceros para recuperar la contraseña secreta almacenada, al establecer una conexión a la base de datos desde Oracle GoldenGate. Oracle GoldenGate almacena ese USERID como un alias en su almacén de credenciales en domain_name.alias_name. Los valores domain_name y alias_name se utilizan como parámetros de entrada para llamar al plugin. Por ejemplo, si el nombre de dominio es OracleGoldenGate y el alias es ggeastadmin, el nombre del secreto sería OracleGoldenGate.ggeastadmin. El plugin identifica el nombre del secreto para recuperar el secreto (contraseña) del almacén.
El código personalizado se puede escribir en cualquier idioma, siempre y cuando se pueda compilar en una biblioteca de usuarios compartida. Los lenguajes más populares que se pueden utilizar incluyen GoLang, C/C++ y Python.
En el siguiente diagrama se muestra el flujo de trabajo cuando se utiliza el plugin de contraseña de base de datos con Oracle GoldenGate para configurar una conexión de base de datos desde un almacén de terceros. Las USERIDALIAS se almacenan en el almacén de credenciales de Oracle GoldenGate y la contraseña secreta se almacena en el almacén de terceros.

Utilice los siguientes pasos para configurar el plugin de contraseña de base de datos para almacenar la contraseña de base de datos en un almacén de terceros y recuperarla para autenticar una conexión de base de datos desde Oracle GoldenGate:
-
Localice el plugin de contraseña de base de datos, que está presente en el directorio
GG Service Manager Home/var/lib/plugins/. De manera predeterminada, no hay ninguna biblioteca en este directorio.Nota: Aunque no hay restricciones en el nombre de archivo de biblioteca, el plugin solo seleccionará el primer archivo de biblioteca que exista en esta ubicación.
-
Compruebe las API de función utilizadas con el plugin. Consulte API necesarias para el plugin de contraseña de base de datos para obtener más información.
-
Escriba y compile el código para crear una biblioteca de usuarios compartida que se utilizaría para activar el plugin de contraseña de base de datos. Debe escribir y compilar el código, según el almacén de terceros que utilice para configurar el plugin de contraseña de base de datos.
-
Copie la biblioteca de usuarios compilada en el directorio
Service_Manager_Home/var/lib/plugins/. -
Ejecute el comando de la API de REST para activar el plugin como un nuevo servicio en Service Manager. Suponiendo que el gestor de servicios se está ejecutando localmente en el puerto 9011, el comando tendrá un aspecto similar al siguiente:
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"}'Puede ver el estado del plugin desde el Administrador de servicios después de activarlo, como se muestra en la siguiente imagen. Puede ver el servicio como Servicio de plugin en Servicios.

Nota: Si utiliza NGINX o un despliegue seguro, debe utilizar https en lugar de http y la ruta de certificado de CA adecuada en la línea de comandos.
-
Configure las variables de entorno para el almacén de terceros, si es necesario, y reinicie el gestor de servicios.
-
Configure el almacén de terceros y almacene la contraseña en él.
-
Ejecute el cliente de administración y configure las credenciales de conexión a la base de datos con la opción
PLUGINo la opciónNOPASSWORDutilizada anteriormente y pruebe que la conexión a la base de datos se ha realizado correctamente. El ejemplo siguiente ilustra esta configuración:a. Conéctese al despliegue:
OGG (not connected) 1> CONNECT http://127.0.0.1:9011 AS oggadminb. Agregar credenciales:
-
Mediante la opción
Plugin:OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 PLUGIN ALIAS ggeastadminSalida:
2026-04-02T18:34:14Z INFO OGG-15114 Credential store altered. Credential Type: Plugin -
Mediante la opción
PLUGIN SECRET:OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 PLUGIN SECRET abc ALIAS ggeastadminSalida:
2026-04-02T18:34:14Z INFO OGG-15114 Credential store altered. Credential Type: Plugin Secret -
Mediante la opción
NOPASSWORDheredada, mediante el siguiente comando:ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 NOPASSWORD ALIAS u1alias;
c. Conéctese a la base de datos con el alias de credencial:
OGG (http://127.0.0.1:9011 Deployment) 3> DBLOGIN USERIDALIAS ggadmin -
Configuración del plugin de contraseña de base de datos para almacenar y acceder a la contraseña de base de datos desde OCI Vault
Para crear, almacenar y recuperar la contraseña secreta de OCI Vault, puede utilizar el código de ejemplo, que muestra cómo recuperar la contraseña secreta de OCI Vault. Oracle GoldenGate almacena el USERID como alias en su almacén de credenciales en domain_name.alias_name. La contraseña se almacena en OCI Vault como un secreto con el nombre de secreto domain_name.alias_name. Por ejemplo, si el nombre de dominio es OracleGoldenGate y el alias es ggeastadmin, el nombre del secreto sería OracleGoldenGate.ggeastadmin. El plugin identifica el nombre del secreto para recuperar el secreto (contraseña) del almacén.
En los pasos del diagrama se muestra el flujo de trabajo para configurar el plugin de contraseña de base de datos con OCI Vault:

-
Cree una contraseña en OCI Vault.
-
Verifique que el secreto se ha creado en OCI Vault que contiene la contraseña para este usuario de base de datos `ggeastadmin`. Asegúrese de que el nombre del secreto coincide con la convención de nomenclatura esperada, por ejemplo, `OracleGoldenGate.ggeastadmin` con el formato `domain_name.alias_name`. 
-
Localice el plugin de contraseña de base de datos, que está presente en el directorio
GG Service Manager Home/var/lib/plugins/. De manera predeterminada, no hay ninguna biblioteca en este directorio.Nota: Aunque no hay restricciones en el nombre de archivo de biblioteca, el plugin solo seleccionará el primer archivo de biblioteca que exista en esta ubicación.
-
Compruebe las API de función que necesita utilizar con el plugin. Consulte API necesarias para el plugin de contraseña de base de datos para obtener más información.
-
Acceda al código de ejemplo desde
OGG_HOME/src/PluginExamples/OCIVault/OCIVault.gopara generar la biblioteca de usuarios compartidos. -
Compile el código ejecutando el comando
makedesdeOGG_HOME/src/PluginExamples/OCIVault/OCIVault.go. Esto genera la biblioteca de usuarios, denominadalibOCIVault.so. -
Copie la biblioteca de usuarios
libOCIVault.soen el directorioService_Manager_Home/var/lib/plugins/. -
Emita el comando de la API de REST para activar este plugin como un nuevo servicio en Service Manager. Suponiendo que el gestor de servicios se está ejecutando localmente en el puerto 9011, el comando tendrá un aspecto similar al siguiente:
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"}'Puede ver el estado del plugin desde el Administrador de servicios después de activarlo, como se muestra en la siguiente imagen. Puede ver el servicio como Servicio de plugin en Servicios.

Nota: Si utiliza NGINX o un despliegue seguro, debe utilizar
httpsen lugar dehttpy la ruta de certificado de CA adecuada en la línea de comandos. -
En la interfaz web de Service Manager, defina las variables de entorno
OCI_AUTHyOCID_VAULT_OCIDen los siguientes valores:-
OCI_AUTH = instance_principal: en este ejemplo se ha utilizado el método de autenticación
instance_principal. Sin embargo, el plugin de contraseña de base de datos soporta los siguientes métodos de autenticación para OCI Vault, incluidos:-
instance_pricinpal: autenticación de entidad de instancia. -
DEFAULT: perfil por defecto en el archivo de configuración de OCI. -
Nombre personalizado: perfil personalizado en el archivo de configuración de OCI.
-
OCID_VAULT_OCID = ocid1.vault.oc1-us-sanjose-1.exxxxxxxxxxxxxxxxxx42upinp4mfxwta: este valor se deriva del paso 2.Ambas variables de entorno se deben configurar correctamente en la sección de variables de entorno en la configuración del gestor de servicios.

Nota: Si utiliza NGINX o un despliegue seguro, debe utilizar
httpsen lugar dehttpy la ruta de certificado de CA adecuada en la línea de comandos.
-
-
-
Reinicie el Administrador de servicios para activar la configuración.
-
Identifique la instancia de VM en la que se ejecuta Oracle GoldenGate Service Manager.
-
Agregue la instancia de VM a un grupo dinámico para que la autenticación
instance_principalfuncione. -
Asigne una etiqueta para la instancia de VM, por ejemplo, EASTVaultTest. Esto facilitaría la creación de grupos dinámicos. Consulte Gestión de grupos dinámicos para obtener más información. El grupo dinámico necesita una política para utilizar el secreto en ese almacén.
-
Cree una política para permitir que este grupo dinámico utilice el recurso secreto (contraseña secreta). Para obtener más información sobre la creación de políticas para controlar el acceso al servicio Vault, consulte Detalles para el servicio Vault.

-
Ejecute el cliente de administración para crear un alias de conexión a la base de datos con la opción
NOPASSWORDy pruebe que la conexión se ha realizado correctamente, como se muestra en el siguiente ejemplo: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.
Configurar el plugin de contraseña de base de datos para almacenar y acceder a la contraseña de base de datos desde Oracle Key Vault
Oracle GoldenGate 23.5 y versiones posteriores incluyen un servicio de plugin que permite escribir código personalizado para recuperar credenciales de base de datos de un almacén de terceros y, a continuación, devolver las credenciales de una API predefinida a Oracle GoldenGate, como se menciona en Configurar el plugin de contraseña de base de datos para almacenar y acceder a la contraseña de base de datos desde un almacén de terceros. Esta función incluye la biblioteca libokvoggdbpwd.so que se puede configurar en Oracle GoldenGate para gestionar las contraseñas de Oracle Key Vault.
El siguiente diagrama representa el flujo de trabajo entre Oracle GoldenGate y Oracle Key Vault para configurar el servicio de plugin y, a continuación, utilizar la biblioteca de plugins de OKV para solicitar y recuperar contraseñas de base de datos del servidor de Oracle Key Vault.

El proceso de almacenamiento y recuperación de las contraseñas de base de datos de Oracle Key Vault se puede resumir de la siguiente manera:
-
El administrador de Oracle GoldenGate utiliza la utilidad de servicios RESTful para cargar contraseñas de Oracle GoldenGate en Oracle Key Vault.
-
Oracle GoldenGate solicita las credenciales de base de datos del servidor de Oracle Key Vault mediante la biblioteca de plugins
libokvoggdbpwd.so. Esta contraseña se recupera del servidor de OKV después de validaciones de backend correctas. -
Una vez recuperada la contraseña, los procesos de Oracle GoldenGate podrán conectarse a la base de datos mediante una contraseña almacenada de forma remota.
Consulte la sección sobre centralización de la gestión de contraseñas de Oracle GoldenGate en la Guía del administrador de Oracle Key Vault para obtener más información sobre la implantación de esta función para el almacenamiento y la recuperación de contraseñas de la base de datos Oracle GoldenGate.