使用 Microsoft EntraID 驗證 OAuth 資料庫連線

EntraID 是對資料庫進行認證的無密碼方式。一般證明資料使用使用者名稱 / 密碼來向 RDBMS 進行認證。使用 EntraID 時,請使用 client_id、tenant_id、app_id_uri 和 client_secret 來連線至資料庫。這些值會內嵌在資料庫連線字串中。

Oracle GoldenGate 支援 Microsoft Entra ID OAuth 認證,可允許將從屬端加密密碼儲存在 GoldenGate CredentialStore 中,並在 DBLOGIN 期間提供。使用從屬端加密密碼取代資料庫密碼。

此組態適用於使用 Entra ID 服務委派人的外掛程式型 OAuth 認證。

認證的運作方式

GoldenGate 認證流程如下:

  1. GoldenGate 接收 DBLOGIN USERIDALIAS ali_entra_u1。
  2. 它會解析 CredentialStore 中的 ali_entra_u1。
  3. 將項目識別為 Entra ID 證明資料。
  4. 從 CredentialStore 讀取用戶端密碼。
  5. 從 cdb1_pdb1 連線描述區讀取其餘的 Entra ID 屬性。
  6. 使用 Microsoft Entra ID OAuth 認證建立資料庫階段作業。

先決條件

在設定 Microsoft EntraID 的 GoldenGate DBLOGIN 之前,請確定:

設定資料庫連線描述區

GoldenGate 使用的 EZConnect 或 TNS 別名必須包含 Entra ID 連線屬性:

舉例而言:

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

連線描述區會儲存非密碼的 Entra ID 連線特性。用戶端密碼必須單獨儲存在 GoldenGate CredentialStore 中。

新增 Entra ID 證明資料

使用 CLIENTSECRET 關鍵字來建立 Entra ID 證明資料:

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

其中:

Entra ID CredentialStore 項目只包含從屬端加密密碼。它不包含資料庫使用者名稱或資料庫密碼。

使用證明資料別名登入

新增證明資料之後,請使用別名搭配 DBLOGIN:

DBLOGIN USERIDALIAS ali_entra_u1

GoldenGate 會解析別名並使用下列認證資訊:

沒有資料庫使用者名稱和密碼的要求。而是 GoldenGate 提供從屬端加密密碼給 Oracle 從屬端 OAuth 階段作業。

請使用 CLIENTSECRET 來進行 Entra ID OAuth 認證。當用戶端密碼儲存在 GoldenGate CredentialStore 中時,請勿使用 NOPASSWORD。

考慮事項