共用方式為


啟用 Azure DevOps Pipelines 的工作負載身分識別同盟

Databricks OAuth 令牌聯邦,也稱為 OpenID Connect (OIDC),可讓您在 Databricks 外部執行的自動化工作負載安全地存取 Databricks,而無需使用 Databricks 憑證。 請參閱 使用 OAuth 令牌同盟驗證 Azure Databricks 的存取權。

若要啟用 Azure DevOps Pipelines 的工作負載身分識別同盟:

  1. 建立同盟原則
  2. 設定 Azure DevOps 管線 YAML

啟用工作負載身分識別同盟之後,Databricks SDK 和 Databricks CLI 會自動從 Azure DevOps Pipelines 擷取工作負載身分識別令牌,並將其交換為 Databricks OAuth 令牌。

建立同盟原則

首先,建立自訂工作負載身分識別聯合政策。 如需指示,請參閱 設定服務主體同盟原則。 針對 Azure DevOps,請為原則設定下列值:

  • 簽發者 URL:https://vstoken.dev.azure.com/<org_id>,其中 <org-id> 是 Azure DevOps 組織的 GUID
  • 受眾:api://AzureADTokenExchange
  • 題:p://<org-name>/<project-name>/<pipeline-name> 其中 <org-name> 是您的 Azure DevOps 組織名稱, <project-name> 是您的 Azure DevOps 專案名稱,以及 <pipeline-name> 是 Azure DevOps 管線的名稱

例如,下列 Databricks CLI 命令會為組織識別碼 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 和 Databricks 服務主體數值識別碼 5581763342009999建立同盟原則:

databricks account service-principal-federation-policy create 5581763342009999 --json '{
  "oidc_policy": {
	"issuer": "https://vstoken.dev.azure.com/7f1078d6-b20d-4a20-9d88-05a2f0d645a3",
	"audiences": [
  	    "api://AzureADTokenExchange"
	],
	"subject": "p://my-org/my-project/my-pipeline"
  }
}
'

配置 Azure DevOps 管道 YAML

接下來,設定 Azure DevOps 管線 YAML 檔案。 設定下列環境變數:

  • DATABRICKS_AUTH_TYPEazure-devops-oidc
  • DATABRICKS_HOST:您的 Databricks 工作區 URL
  • DATABRICKS_CLIENT_ID:服務主體 (應用程式) 識別碼
  • SYSTEM_ACCESSTOKEN:將 $(System.AccessToken) 管線變數對應至此環境變數
trigger: none
pool: test # my self-hosted pool name

variables:
  DATABRICKS_HOST: https://my-workspace.cloud.databricks.com/
  DATABRICKS_AUTH_TYPE: azure-devops-oidc
  DATABRICKS_CLIENT_ID: a1b2c3d4-ee42-1eet-1337-f00b44r

steps:
  - script: |
      databricks current-user me
    displayName: 'Display Databricks current user information'
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)