Autenticare la connessione al database mediante il plugin password del database
Oracle GoldenGate 23.5 e versioni successive include un plugin intuitivo che consente di scrivere codice personalizzato per recuperare le credenziali del database da un vault di terze parti e quindi restituirle in un'API predefinita a Oracle GoldenGate.
Grazie all'aumento delle regole di sicurezza incluse come best practice dalle organizzazioni, alcune organizzazioni non consentono di memorizzare le credenziali del database, ad esempio la password, nel wallet locale (area di memorizzazione delle credenziali) di Oracle GoldenGate. La password deve essere memorizzata in un vault esterno a Oracle GoldenGate. Per implementare questo metodo di autenticazione, è stato introdotto il plugin password database. Consente a Oracle GoldenGate di recuperare la password da qualsiasi vault di terze parti di tua scelta o da OCI Vault, quando è necessario connettersi a un'istanza di database.
Informazioni sul workflow per abilitare il plugin Password database in Oracle GoldenGate e utilizzarlo per recuperare la password segreta quando si stabilisce una connessione al database da Oracle GoldenGate.
Utilizzare una delle opzioni riportate di seguito per impostare un servizio plugin password database per Oracle GoldenGate.
API richieste per il plugin password database
In questo plugin devono esistere almeno due API funzione. Di seguito sono riportate le interfacce API descritte.
getManifest()
Ogni plugin deve esporre la funzione getmanifest che restituisce una stringa di stile JSON che descrive il plugin, come mostrato di seguito.
{"$schema": "ogg:plugin", "version": "23.4" }
Il numero di versione può essere uguale o inferiore al numero di versione di Oracle GoldenGate. Ad esempio, se si esegue Oracle GoldenGate versione 23.6, il numero di versione nella stringa JSON potrebbe essere 23.4, 23.5 o 23.6.
getUseridAliasPassword(oggDomain *C.char, oggAlias *C.char, oggUserid *C.char, oggPassword *C.char)
Questa funzione viene chiamata da Oracle GoldenGate per recuperare la password per un USERIDALIAS.
Restituisce un valore intero. 0 significa operazione riuscita e qualsiasi valore diverso da zero è un errore.
oggDomain, oggAlias e oggUserid sono i parametri di input per identificare le credenziali utente del database. oggPassword è il parametro di output che restituisce la password recuperata dal vault.
Configurare il plugin Password database per memorizzare e accedere alla password del database da un vault di terze parti
Per creare, archiviare e recuperare la password segreta da un vault di terze parti di tua scelta, devi scrivere il tuo codice personalizzato. Il codice deve generare una libreria utente condivisa, che verrà utilizzata per attivare il plugin come servizio da Oracle GoldenGate Service Manager. Dopo l'attivazione del plugin, è possibile accedere al vault di terze parti per recuperare la password del segreto memorizzato quando si stabilisce una connessione al database da Oracle GoldenGate. Oracle GoldenGate memorizza tale USERID come alias nell'area di memorizzazione delle credenziali in domain_name.alias_name. domain_name e alias_name vengono utilizzati come parametri di input per chiamare il plugin. Ad esempio, se il nome di dominio è OracleGoldenGate e l'alias è ggeastadmin, il nome del segreto sarà OracleGoldenGate.ggeastadmin. Il plugin identifica il nome segreto per recuperare il segreto (password) dal vault.
Il codice personalizzato può essere scritto in qualsiasi lingua purché possa essere compilato in una libreria utenti condivisa. I linguaggi più popolari che possono essere utilizzati includono GoLang, C/C++ e Python.
Il diagramma riportato di seguito mostra il workflow quando il plugin password database viene utilizzato con Oracle GoldenGate per impostare una connessione al database da un vault di terze parti. USERIDALIAS viene memorizzato nell'area di memorizzazione delle credenziali di Oracle GoldenGate e la password segreta viene memorizzata nel vault di terze parti.

Utilizzare i passi riportati di seguito per configurare il plugin password database per memorizzare la password del database in un vault di terze parti e recuperarla per autenticare una connessione al database da Oracle GoldenGate.
-
Individuare il plugin password database presente nella directory
GG Service Manager Home/var/lib/plugins/. Per impostazione predefinita, non è presente alcuna libreria in questa directory.Nota: sebbene il nome del file della libreria non sia soggetto a limitazioni, il plugin raccoglierà solo il primo file della libreria esistente in questa posizione.
-
Controllare le API di funzione utilizzate con il plugin. Per ulteriori informazioni, vedere API richieste per il plugin password database.
-
Scrivere e compilare il codice per creare una libreria utenti condivisa che verrà utilizzata per attivare il plugin password database. È necessario scrivere e compilare il codice in base al vault di terze parti utilizzato per impostare il plugin password database.
-
Copiare la libreria utenti compilata nella directory
Service_Manager_Home/var/lib/plugins/. -
Eseguire il comando API REST per attivare il plugin come nuovo servizio in Service Manager. Supponendo che Service Manager sia in esecuzione localmente sulla porta 9011, il comando avrà un aspetto simile al seguente:
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"}'È possibile visualizzare lo stato del plugin da Service Manager dopo che è stato attivato, come mostrato nella seguente immagine. È possibile visualizzare il servizio come Servizio plugin in Servizi.

Nota: se si utilizza NGINX o una distribuzione protetta, è necessario utilizzare https anziché http e il percorso del certificato CA appropriato nella riga di comando.
-
Impostare eventuali variabili di ambiente per il vault di terze parti, se necessario, e riavviare Service Manager.
-
Configurare il vault di terze parti e memorizzarvi la password.
-
Eseguire il client di amministrazione e impostare le credenziali di login al database con l'opzione
PLUGINo l'opzioneNOPASSWORDutilizzata in precedenza e verificare che la connessione al database sia riuscita. Nell'esempio seguente viene illustrata questa configurazione.a. Connettersi alla distribuzione:
OGG (not connected) 1> CONNECT http://127.0.0.1:9011 AS oggadminb. Aggiunta credenziali:
-
Utilizzando l'opzione
Plugin:OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 PLUGIN ALIAS ggeastadminOutput:
2026-04-02T18:34:14Z INFO OGG-15114 Credential store altered. Credential Type: Plugin -
Utilizzando l'opzione
PLUGIN SECRET:OGG (http://127.0.0.1:9011 Deployment) 2> ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 PLUGIN SECRET abc ALIAS ggeastadminOutput:
2026-04-02T18:34:14Z INFO OGG-15114 Credential store altered. Credential Type: Plugin Secret -
Usando l'opzione
NOPASSWORDlegacy, usare il comando seguente:ALTER CREDENTIALSTORE ADD USER ggeastadmin@//dbms:1521/ORCLPDB1 NOPASSWORD ALIAS u1alias;
c. Eseguire il login al database utilizzando l'alias delle credenziali:
OGG (http://127.0.0.1:9011 Deployment) 3> DBLOGIN USERIDALIAS ggadmin -
Configurare il plugin Password database per memorizzare e accedere alla password del database da OCI Vault
Per creare, memorizzare e recuperare la password segreta da OCI Vault, è possibile utilizzare il codice di esempio, che mostra come recuperare la password segreta dal vault OCI. Oracle GoldenGate memorizza USERID come alias nell'area di memorizzazione delle credenziali in domain_name.alias_name. La password viene memorizzata in OCI Vault come segreto con il nome segreto domain_name.alias_name. Ad esempio, se il nome del dominio è OracleGoldenGate e l'alias è ggeastadmin, il nome del segreto sarà OracleGoldenGate.ggeastadmin. Il plugin identifica il nome segreto per recuperare il segreto (password) dal vault.
I passi nel diagramma mostrano il workflow per l'impostazione del plugin password database con OCI Vault:

-
Creare una password nel vault OCI.
-
Verificare che il segreto sia stato creato nel vault OCI contenente la password per questo utente del database `ggeastadmin`. Assicurarsi che il nome segreto corrisponda alla convenzione di denominazione prevista, ad esempio `OracleGoldenGate.ggeastadmin` nel formato `domain_name.alias_name`. 
-
Individuare il plugin password database presente nella directory
GG Service Manager Home/var/lib/plugins/. Per impostazione predefinita, non è presente alcuna libreria in questa directory.Nota: sebbene il nome del file della libreria non sia soggetto a limitazioni, il plugin raccoglierà solo il primo file della libreria esistente in questa posizione.
-
Controllare le API di funzione che è necessario utilizzare con il plugin. Per ulteriori informazioni, vedere API richieste per il plugin password database.
-
Accedere al codice di esempio da
OGG_HOME/src/PluginExamples/OCIVault/OCIVault.goper generare la libreria utenti condivisa. -
Compilare il codice eseguendo il comando
makedaOGG_HOME/src/PluginExamples/OCIVault/OCIVault.go. La libreria utenti viene generata con il nomelibOCIVault.so. -
Copiare la libreria utenti
libOCIVault.sonella directoryService_Manager_Home/var/lib/plugins/. -
Eseguire il comando API REST per attivare questo plugin come nuovo servizio in Gestione servizi. Supponendo che Service Manager sia in esecuzione localmente sulla porta 9011, il comando avrà un aspetto simile al seguente:
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"}'È possibile visualizzare lo stato del plugin da Service Manager dopo che è stato attivato, come mostrato nella seguente immagine. È possibile visualizzare il servizio come Servizio plugin in Servizi.

Nota: se si utilizza NGINX o una distribuzione protetta, è necessario utilizzare
httpsanzichéhttpe il percorso del certificato CA appropriato nella riga di comando. -
Nell'interfaccia Web di Service Manager impostare le variabili di ambiente
OCI_AUTHeOCID_VAULT_OCIDsui valori seguenti:-
OCI_AUTH = instance_principal: in questo esempio è stato utilizzato il metodo di autenticazione
instance_principal. Tuttavia, il plugin Password database supporta i seguenti metodi di autenticazione per OCI Vault, tra cui:-
instance_pricinpal: autenticazione principal dell'istanza. -
DEFAULT: profilo predefinito nel file di configurazione OCI. -
Nome personalizzato: profilo personalizzato nel file di configurazione OCI.
-
OCID_VAULT_OCID = ocid1.vault.oc1-us-sanjose-1.exxxxxxxxxxxxxxxxxx42upinp4mfxwta: questo valore deriva dal passo 2.Entrambe queste variabili di ambiente devono essere impostate correttamente nella sezione Variabile di ambiente sotto Configurazione di Service Manager.

Nota: se si utilizza NGINX o una distribuzione protetta, è necessario utilizzare
httpsanzichéhttpe il percorso del certificato CA appropriato nella riga di comando.
-
-
-
Riavviare Service Manager per attivare le impostazioni.
-
Identificare l'istanza VM in cui è in esecuzione Oracle GoldenGate Service Manager.
-
Aggiungere l'istanza VM a un gruppo dinamico per eseguire l'autenticazione
instance_principal. -
Assegnare una tag per l'istanza VM, ad esempio EASTVaultTest. Ciò faciliterebbe la creazione di gruppi dinamici. Per informazioni dettagliate, vedere Gestione dei gruppi dinamici. Il gruppo dinamico ha bisogno di un criterio per utilizzare il segreto in tale vault.
-
Creare un criterio per consentire a questo gruppo dinamico di utilizzare la risorsa segreta (password segreta). Per i dettagli sulla creazione dei criteri per controllare l'accesso al servizio vault, vedere Dettagli per il servizio vault.

-
Eseguire il client di amministrazione per creare l'alias di login al database con l'opzione
NOPASSWORDe verificare che la connessione sia riuscita, come mostrato nell'esempio riportato di seguito.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.
Configurare il plugin Password database per memorizzare e accedere alla password del database da Oracle Key Vault
Le release successive di Oracle GoldenGate 23.5 includono un servizio di plugin che consente di scrivere codice personalizzato per il recupero delle credenziali del database da un vault di terze parti, quindi di restituire le credenziali in un'API predefinita a Oracle GoldenGate, come indicato in Configurare il plugin password del database per memorizzare e accedere alla password del database da un vault di terze parti. Questa funzione include la libreria libokvoggdbpwd.so che può essere configurata in Oracle GoldenGate per gestire le password da Oracle Key Vault.
Il diagramma riportato di seguito rappresenta il workflow tra Oracle GoldenGate e Oracle Key Vault per configurare il servizio plugin e quindi utilizzare la libreria di plugin OKV per richiedere e recuperare le password del database dal server Oracle Key Vault.

Il processo di memorizzazione e recupero delle password del database da Oracle Key Vault può essere riepilogato come indicato di seguito.
-
L'amministratore di Oracle GoldenGate utilizza la utility dei servizi RESTful per caricare le password di Oracle GoldenGate in Oracle Key Vault.
-
Oracle GoldenGate richiede le credenziali del database dal server Oracle Key Vault utilizzando la libreria di plugin
libokvoggdbpwd.so. Questa password viene recuperata dal server OKV dopo le convalide backend riuscite. -
Dopo il recupero della password, i processi di Oracle GoldenGate saranno in grado di connettersi al database utilizzando una password memorizzata in remoto.
Per informazioni dettagliate sull'implementazione di questa funzione per lo storage e il recupero delle password del database Oracle GoldenGate, vedere Centralizing the Management of Oracle GoldenGate Passwords nel manuale Oracle Key Vault Administrator's Guide.