Authentifier la connexion à la base de données OAuth avec Microsoft EntraID

EntraID est un moyen sans mot de passe d'authentification dans la base de données. Les informations d'identification standard utilisent le nom utilisateur/mot de passe pour s'authentifier auprès d'un SGBDR. Avec EntraID, utilisez client_id, tenant_id, app_id_uri et client_secret pour vous connecter à la base de données. Ces valeurs sont intégrées dans la chaîne de connexion à la base de données.

Oracle GoldenGate prend en charge l'authentification Microsoft Entra ID OAuth en autorisant le stockage d'une clé secrète client dans le fichier GoldenGate CredentialStore et en la fournissant pendant le fichier DBLOGIN. La clé secrète client est utilisée à la place d'un mot de passe de base de données.

Cette configuration est destinée à l'authentification OAuth basée sur un module d'extension à l'aide d'un principal de service Entra ID.

Fonctionnement de l'authentification

Le flux d'authentification GoldenGate est le suivant :

  1. GoldenGate reçoit DBLOGIN USERIDALIAS ali_entra_u1.
  2. Elle résout ali_entra_u1 dans CredentialStore.
  3. Identifie l'entrée en tant qu'informations d'identification Entra ID.
  4. Lit la clé secrète du client à partir de CredentialStore.
  5. Lit les attributs Entra ID restants à partir du descripteur de connexion cdb1_pdb1.
  6. Etablit la session de base de données à l'aide de l'authentification Microsoft Entra ID OAuth.

Prérequis

Avant de configurer GoldenGate DBLOGIN pour Microsoft EntraID, assurez-vous que :

Configuration du descripteur de connexion à la base de données

L'alias EZConnect ou TNS utilisé par GoldenGate doit contenir les attributs de connexion Entra ID :

Exemple :

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)
    )
  )

Le descripteur de connexion stocke les propriétés de connexion Entra ID non-secret. La clé secrète client doit être stockée séparément dans le fichier GoldenGate CredentialStore.

Ajouter les informations d'identification Entra ID

Utilisez le mot-clé CLIENTSECRET pour créer des informations d'identification Entra ID :

ALTER CREDENTIALSTORE ADD USER /@cdb1_pdb1
  ALIAS ali_entra_u1
  CLIENTSECRET H9pL2~vQeR7nMx3TaK8cWz1YdF4sJ_N6rP_Tx9aK

Où :

Une entrée d'ID d'intra CredentialStore contient uniquement la clé secrète client. Il ne contient pas de nom utilisateur ou de mot de passe de base de données.

Connexion à l'aide de l'alias d'identification

Après avoir ajouté les informations d'identification, utilisez l'alias avec DBLOGIN :

DBLOGIN USERIDALIAS ali_entra_u1

GoldenGate résout l'alias et utilise les informations d'authentification suivantes :

Aucun nom utilisateur et mot de passe de base de données n'est requis. Au lieu de cela, GoldenGate fournit la clé secrète client à la session OAuth du client Oracle.

Utilisez CLIENTSECRET pour l'authentification Entra ID OAuth. N'utilisez pas NOPASSWORD lorsque la clé secrète client est stockée dans le fichier GoldenGate CredentialStore.

Remarques