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 :
- GoldenGate reçoit
DBLOGIN USERIDALIAS ali_entra_u1. - Elle résout
ali_entra_u1dans CredentialStore. - Identifie l'entrée en tant qu'informations d'identification Entra ID.
- Lit la clé secrète du client à partir de CredentialStore.
- Lit les attributs Entra ID restants à partir du descripteur de connexion
cdb1_pdb1. - 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 :
- L'application Microsoft Entra et le principal de service sont configurés.
- Le principal de service est autorisé à se connecter à l'instance Oracle AI Database cible.
- Le descripteur de connexion du client Oracle contient les attributs Entra ID requis.
- Le fichier GoldenGate CredentialStore est disponible et initialisé.
- La clé secrète client est disponible pour inscription dans CredentialStore.
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 :
TOKEN_AUTH=AZURE_SERVICE_PRINCIPALTENANT_IDCLIENT_IDAZURE_DB_APP_ID_URI
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ù :
/@cdb1_pdb1identifie le descripteur de connexion.ali_entra_u1est l'alias d'informations d'identification GoldenGate.CLIENTSECRETidentifie les informations d'identification en tant qu'informations d'identification OAuth avec l'ID Entra.- La valeur suivante
CLIENTSECRETest la clé secrète du client d'application Entra ID.
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 :
CLIENT_ID,TENANT_IDetAZURE_DB_APP_ID_URIà partir du descripteur de connexion.CLIENTSECRETà partir de CredentialStore.
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
- La clé secrète client doit correspondre à l'application Entra ID identifiée par
CLIENT_ID. - Les valeurs
TENANT_ID,CLIENT_IDetAZURE_DB_APP_ID_URIdoivent être cohérentes avec la configuration de l'application Entra ID et de la base de données cible. - La clé secrète client est associée à l'alias GoldenGate, tandis que les autres paramètres OAuth sont associés au descripteur de connexion à la base de données.
- N'incluez pas de nom utilisateur ou de mot de passe de base de données lors de la création d'informations d'identification Entra ID.
- Utilisez un alias d'informations d'identification distinct pour chaque clé secrète client ou connexion cible, comme l'exige votre déploiement.
- Protégez la clé secrète client lors de l'exécution de la commande et évitez de l'enregistrer dans des scripts, des historiques de commande ou une sortie de diagnostic.