Bagikan melalui


Mengaktifkan federasi identitas beban kerja untuk Alur Azure DevOps

Federasi token OAuth Databricks, juga dikenal sebagai OpenID Connect (OIDC), memungkinkan beban kerja otomatis Anda yang berjalan di luar Databricks untuk mengakses Databricks dengan aman tanpa perlu rahasia Databricks. Lihat Mengautentikasi akses ke Azure Databricks menggunakan federasi token OAuth.

Untuk mengaktifkan federasi identitas beban kerja untuk Alur Azure DevOps:

  1. Membuat kebijakan federasi
  2. Mengonfigurasi YAML Pipeline Azure DevOps

Setelah Anda mengaktifkan federasi identitas beban kerja, Databricks SDK dan Databricks CLI secara otomatis mengambil token identitas beban kerja dari Alur Azure DevOps dan menukarnya dengan token OAuth Databricks.

Membuat kebijakan federasi

Pertama, buat kebijakan federasi identitas beban kerja kustom. Untuk petunjuknya, lihat Mengonfigurasi kebijakan federasi perwakilan layanan. Untuk Azure DevOps, atur nilai berikut untuk kebijakan:

  • URL Pengeluar Sertifikat:https://vstoken.dev.azure.com/<org_id>, di mana <org-id> adalah GUID organisasi Azure DevOps Anda
  • Khalayak:api://AzureADTokenExchange
  • Subyek:p://<org-name>/<project-name>/<pipeline-name> di mana <org-name> adalah nama organisasi Azure DevOps Anda, <project-name> adalah nama proyek Azure DevOps Anda dan <pipeline-name> merupakan nama alur Azure DevOps Anda

Misalnya, perintah Databricks CLI berikut membuat kebijakan federasi untuk ID organisasi dan ID 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 numerik perwakilan layanan Databricks dari 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"
  }
}
'

Mengonfigurasi YAML Alur Azure DevOps

Selanjutnya, konfigurasikan file YAML Alur Azure DevOps. Atur variabel lingkungan berikut:

  • DATABRICKS_AUTH_TYPE: azure-devops-oidc
  • DATABRICKS_HOST: URL ruang kerja Databricks Anda
  • DATABRICKS_CLIENT_ID: ID perwakilan layanan (aplikasi)
  • SYSTEM_ACCESSTOKEN: Petakan $(System.AccessToken) variabel alur ke variabel lingkungan ini
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)