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:

  1. GoldenGate recebe DBLOGIN USERIDALIAS ali_entra_u1.
  2. Ele resolve ali_entra_u1 no CredentialStore.
  3. Identifica a entrada como uma credencial de ID de Entra.
  4. Lê o segredo do cliente no CredentialStore.
  5. Lê os atributos restantes do ID do Entra do descritor de conexão cdb1_pdb1.
  6. 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:

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:

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:

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:

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