Autenticar Conexão do Banco de Dados OAuth com o Microsoft EntraID
EntraID é uma maneira sem senha de se autenticar no banco de dados. Uma credencial regular usa nome de usuário/senha para autenticação com RDBMS. Com EntraID, use client_id, tenant_id, app_id_uri e client_secret para estabelecer conexão com o banco de dados. Esses valores são incorporados na string de conexão do banco de dados.
O Oracle GoldenGate suporta a autenticação OAuth do ID do Microsoft Entra permitindo que um segredo do cliente seja armazenado no GoldenGate CredentialStore e fornecido durante o DBLOGIN. O segredo do cliente é usado em vez de uma senha do banco de dados.
Essa configuração se destina à autenticação OAuth baseada em plug-in usando um controlador de serviço Entra ID.
Como Funciona a Autenticação
O fluxo de autenticação GoldenGate é o seguinte:
- GoldenGate recebe
DBLOGIN USERIDALIAS ali_entra_u1. - Ele resolve
ali_entra_u1no CredentialStore. - Identifica a entrada como uma credencial de ID de Entra.
- Lê o segredo do cliente no CredentialStore.
- Lê os atributos restantes do ID do Entra do descritor de conexão
cdb1_pdb1. - Estabelece a sessão do banco de dados usando a autenticação OAuth do ID do Microsoft Entra.
Pré-requisitos
Antes de configurar GoldenGate DBLOGIN para Microsoft EntraID, certifique-se de que:
- O aplicativo Microsoft Entra e o controlador de serviço são configurados.
- O controlador de serviços está autorizado a estabelecer conexão com o Oracle AI Database de destino.
- O descritor de conexão do cliente Oracle contém os atributos de ID de Entra necessários.
- A GoldenGate CredentialStore está disponível e inicializada.
- O segredo do cliente está disponível para registro no CredentialStore.
Configurar o Descritor de Conexão do Banco de Dados
O alias EZConnect ou TNS usado por GoldenGate deve conter os atributos de conexão do ID do Entra:
TOKEN_AUTH=AZURE_SERVICE_PRINCIPALTENANT_IDCLIENT_IDAZURE_DB_APP_ID_URI
Por exemplo:
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)
)
)
O descritor de conexão armazena as propriedades de conexão de ID de Entra não secreto. O segredo do cliente deve ser armazenado separadamente no GoldenGate CredentialStore.
Adicionar Credencial de ID de Entra
Use a palavra-chave CLIENTSECRET para criar uma credencial de ID de Entra:
ALTER CREDENTIALSTORE ADD USER /@cdb1_pdb1
ALIAS ali_entra_u1
CLIENTSECRET H9pL2~vQeR7nMx3TaK8cWz1YdF4sJ_N6rP_Tx9aK
Onde:
/@cdb1_pdb1identifica o descritor de conexão.ali_entra_u1é o alias de credencial GoldenGate.CLIENTSECRETidentifica a credencial como uma credencial OAuth do ID do Entra.- O valor seguinte a
CLIENTSECRETé o segredo do cliente do aplicativo Entra ID.
Uma entrada de ID de Entra CredentialStore contém apenas o segredo do cliente. Ele não contém um nome de usuário ou senha do banco de dados.
Fazer Log-in Usando o Alias da Credencial
Depois de adicionar a credencial, use o alias com DBLOGIN:
DBLOGIN USERIDALIAS ali_entra_u1
GoldenGate resolve o alias e usa as seguintes informações de autenticação:
CLIENT_ID,TENANT_IDeAZURE_DB_APP_ID_URIdo descritor de conexão.CLIENTSECRETdo CredentialStore.
Não há exigência para um nome de usuário e senha do banco de dados. Em vez disso, o GoldenGate fornece o segredo do cliente para a sessão OAuth do cliente Oracle.
Use CLIENTSECRET para autenticação Entra ID OAuth. Não use NOPASSWORD quando o segredo do cliente estiver sendo armazenado no GoldenGate CredentialStore.
Considerações
- O segredo do cliente deve corresponder ao aplicativo Entra ID identificado pelo
CLIENT_ID. - Os valores
TENANT_ID,CLIENT_IDeAZURE_DB_APP_ID_URIdevem ser consistentes com o aplicativo Entra ID e a configuração do banco de dados de destino. - O segredo do cliente está associado ao alias GoldenGate, enquanto os outros parâmetros OAuth estão associados ao descritor de conexão do banco de dados.
- Não inclua um nome de usuário ou senha do banco de dados ao criar uma credencial de ID do Entra.
- Use um alias de credencial separado para cada conexão secreta ou de destino do cliente, conforme exigido pela sua implantação.
- Proteja o segredo do cliente durante a execução do comando e evite gravá-lo em scripts, históricos de comandos ou saída de diagnóstico.