使用 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 認證流程如下:
- GoldenGate 接收
DBLOGIN USERIDALIAS ali_entra_u1。 - 它會解析 CredentialStore 中的
ali_entra_u1。 - 將項目識別為 Entra ID 證明資料。
- 從 CredentialStore 讀取用戶端密碼。
- 從
cdb1_pdb1連線描述區讀取其餘的 Entra ID 屬性。 - 使用 Microsoft Entra ID OAuth 認證建立資料庫階段作業。
先決條件
在設定 Microsoft EntraID 的 GoldenGate DBLOGIN 之前,請確定:
- 已設定 Microsoft Entra 應用程式和服務委派人。
- 已授權服務委派人連線至目標 Oracle AI Database。
- Oracle 從屬端連線描述區包含必要的 Entra ID 屬性。
- GoldenGate CredentialStore 可用且已初始化。
- 用戶端密碼可在 CredentialStore 中註冊。
設定資料庫連線描述區
GoldenGate 使用的 EZConnect 或 TNS 別名必須包含 Entra ID 連線屬性:
TOKEN_AUTH=AZURE_SERVICE_PRINCIPALTENANT_IDCLIENT_IDAZURE_DB_APP_ID_URI
舉例而言:
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
其中:
/@cdb1_pdb1識別連線描述區。ali_entra_u1是 GoldenGate 證明資料別名。CLIENTSECRET將證明資料識別為 Entra ID OAuth 證明資料。CLIENTSECRET之後的值為 Entra ID 應用程式從屬端加密密碼。
Entra ID CredentialStore 項目只包含從屬端加密密碼。它不包含資料庫使用者名稱或資料庫密碼。
使用證明資料別名登入
新增證明資料之後,請使用別名搭配 DBLOGIN:
DBLOGIN USERIDALIAS ali_entra_u1
GoldenGate 會解析別名並使用下列認證資訊:
- 連線描述區中的
CLIENT_ID、TENANT_ID和AZURE_DB_APP_ID_URI。 - CredentialStore 中的
CLIENTSECRET。
沒有資料庫使用者名稱和密碼的要求。而是 GoldenGate 提供從屬端加密密碼給 Oracle 從屬端 OAuth 階段作業。
請使用 CLIENTSECRET 來進行 Entra ID OAuth 認證。當用戶端密碼儲存在 GoldenGate CredentialStore 中時,請勿使用 NOPASSWORD。
考慮事項
- 用戶端密碼必須對應至由
CLIENT_ID識別的 Entra ID 應用程式。 TENANT_ID、CLIENT_ID和AZURE_DB_APP_ID_URI值必須與 Entra ID 應用程式和目標資料庫組態一致。- 從屬端加密密碼與 GoldenGate 別名關聯,而其他 OAuth 參數則與資料庫連線描述區關聯。
- 建立 Entra ID 證明資料時,請勿包括資料庫使用者名稱或密碼。
- 請視部署的需要為每個從屬端加密密碼或目標連線使用個別的證明資料別名。
- 在命令執行期間保護從屬端加密密碼,並避免在命令檔、命令歷史記錄或診斷輸出中記錄加密密碼。