使用 Microsoft Entra 識別符設定 dbt Core 的 Azure Databricks 登入
重要
這項功能處於公開預覽狀態。
本文說明如何使用 Microsoft Entra ID 從 dbt Core 設定 Azure Databricks 登入。 以 Azure Databricks 帳戶管理員身分完成此單次設定之後,使用者可以使用單一登錄將 Azure Databricks 連線到 dbt Core。
除了使用 Microsoft Entra ID 之外,您還可以使用 Databricks M2M OAuth 與 dbt Core 整合。 請參閱 啟用或停用合作夥伴 OAuth 應用程式。
開始之前
完成本文中的步驟之前,您必須:
- 可存取本機 dbt Core 環境
- 取得 Azure Databricks 工作區中 SQL 倉儲的伺服器主機名和 HTTP 路徑
- 成為 Azure Databricks 帳戶管理員
- 有權在 Azure 租使用者中為您的 Azure Databricks 帳戶建立 Azure 應用程式註冊。
設定 dbt Core 的電腦對電腦 (M2M) 驗證
本節說明如何設定 Azure Databricks 和 dbt Core 的機器對機器(M2M)驗證。 OAuth 的 M2M 工作流程可讓自動化程式,例如 CI/CD 整合,在不需人為介入的情況下安全地存取資源。 dbt 用戶端會以服務主體的形式執行、使用服務主體從 Azure AD 取得 OAuth 令牌,並利用此令牌來與 Databricks SQL API 連線。
建立 Azure 應用程式註冊
- 使用 Azure 入口網站,在 登入 Azure Databricks 帳戶的 Azure 租使用者
https://portal.azure.com/<tenant-id>
。 - 按兩下 [應用程式註冊]。 如果看不到 應用程式註冊,請按兩下 [更多服務],並使用 [篩選服務] 文字框來搜尋 應用程式註冊。
- 按一下 [新增註冊]。
- 輸入應用程式的 [名稱]。
- 針對 [ 重新導向 URI],從下拉功能表中選取 [公用用戶端/原生和桌面], 然後輸入
http://localhost:8020
。 - 按一下 [註冊] 。
- 複製應用程式 (用戶端) 識別碼。 您稍後將需要此值。
產生 Azure 應用程式註冊的客戶端密碼
- 在 Azure 入口網站 中,選取您在上一個步驟中建立的應用程式註冊。
- 按兩下 [ 憑證和密碼],然後按兩下 [ 新增客戶端密碼]。
- 輸入描述,然後按兩下 [ 新增]。
- 複製 [祕密值]。 您稍後將需要此值,而且只能在建立秘密之後存取此值。
將Microsoft Entra ID 服務主體新增至工作區
- 在 Azure Databricks 工作區中,按下右上方的使用者名稱,然後按兩下 [ 設定]。
- 按兩下 [ 身分識別和存取 ] 索引標籤。
- 按兩下 [服務主體] 旁 的 [ 管理]。
- 按兩下 [ 新增服務主體],然後按兩下 [ 用戶端標識符]。
- 針對 ApplicationId,輸入 您稍早複製的應用程式(用戶端)標識碼 。
- 針對 [ 顯示名稱],輸入服務主體的邏輯名稱,然後按兩下[ 新增]。
將 M2M 設定檔新增至 dbt 專案
將您稍早複製的應用程式 (用戶端) 識別碼和客戶端密碼設定為環境變數。 Databricks 不建議直接儲存機密資訊,例如秘密
profiles.yml
。~ export DATABRICKS_CLIENT_ID=<client-id> ~ export DATABRICKS_CLIENT_SECRET=<client-secret>
將 M2M 設定檔新增至
profiles.yml
dbt 專案中的檔案。以下是指定 M2M 設定檔
azure-oauth-m2m
的範例profiles.yml
檔案。azure-oauth-m2m
target
指定 將 M2M 設定檔設定為 dbt 使用的預設執行設定檔。databricks_demo: outputs: ... azure-oauth-m2m: catalog: uc_demos host: "adb-xxx.azuredatabricks.net" http_path: "/sql/1.0/warehouses/9196548d010cf14d" schema: databricks_demo threads: 1 type: databricks auth_type: oauth client_id: "{{ env_var('DATABRICKS_CLIENT_ID') }}" client_secret: "{{ env_var('DATABRICKS_CLIENT_SECRET') }}" target: azure-oauth-m2m
授權服務主體存取 SQL 倉儲
- 在提要欄位中,按兩下 [SQL 倉儲]、按兩下您的 SQL 倉儲,然後按兩下 [ 許可權]。
- 在本文稍早建立的服務主體旁邊,從下拉功能表中選取 [CAN USE]。
確認 OAuth 應用程式設定
dbt debug
執行 命令以確認您的 OAuth 應用程式已正確設定。 例如:
dbt debug --target azure-oauth-m2m
以下是成功 dbt debug
執行的範例輸出:
...
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]
Required dependencies:
- git [OK found]
Connection:
...
Connection test: OK connection ok
設定 dbt Core 的使用者對電腦 (U2M) 驗證
本節說明如何使用 Azure Databricks 和 dbt Core 設定使用者對機器驗證。 OAuth 的 U2M 工作流程可透過從 Azure AD 的瀏覽器彈出視窗安全地取得 OAuth 令牌,以代表使用者存取 dbt 用戶端。 Dbt 會使用此令牌來連線到 Databricks SQL API,簡化驗證和授權。
建立 Azure 應用程式註冊
- 使用 Azure 入口網站,在 登入 Azure Databricks 帳戶的 Azure 租使用者
https://portal.azure.com/<tenant-id>
。 - 按兩下 [應用程式註冊]。 如果看不到 應用程式註冊,請按兩下 [更多服務],並使用 [篩選服務] 文字框來搜尋 應用程式註冊。
- 按一下 [新增註冊]。
- 輸入應用程式的 [名稱]。
- 針對 [ 重新導向 URI],從下拉功能表中選取 [公用用戶端/原生和桌面], 然後輸入
http://localhost:8020
。 - 按一下 [註冊] 。
- 複製應用程式 (用戶端) 識別碼和租用戶標識碼。 您稍後會需要這些值。
將 U2M 設定檔新增至 dbt 專案
將 U2M 設定檔新增至 profiles.yml
dbt 專案中的檔案。
以下是指定 U2M 設定檔azure-oauth-u2m
的範例profiles.yml
檔案。 指定 azure-oauth-u2m
將 target
U2M 設定檔設定為 dbt 使用的預設執行設定檔。
databricks_demo:
outputs:
azure-oauth-u2m:
catalog: uc_demos
host: "adb-xxx.azuredatabricks.net"
http_path: "/sql/1.0/warehouses/9196548d010cf14d"
schema: databricks_demo
threads: 1
type: databricks
auth_type: oauth
client_id: "9729e77e-ba94-4d53-8cfb-bb609f43f881"
target: azure-oauth-u2m
確認 OAuth 應用程式設定
dbt debug
執行 命令以確認您的 OAuth 應用程式已正確設定。 例如:dbt debug --target azure-oauth-u2m
[ 要求 的許可權] 頁面會在瀏覽器中開啟。
按一下 [接受]。
以下是成功 dbt debug
執行的範例輸出:
...
Configuration:
profiles.yml file [OK found and valid]
dbt_project.yml file [OK found and valid]
Required dependencies:
- git [OK found]
Connection:
...
Connection test: OK connection ok
其他資源
若要建立新的 dbt Core 專案,並使用 SSO 驗證連線到 Azure Databricks,請參閱 連線到 dbt Core。