Sdílet prostřednictvím


Povolení federace identit úloh pro Azure DevOps Pipelines

Federace tokenů OAuth Databricks, označovaná také jako OpenID Connect (OIDC), umožňuje automatizovaným úlohám spuštěným mimo Databricks zabezpečený přístup k Databricks bez nutnosti tajných kódů Databricks. Viz Ověřování přístupu k Azure Databricks pomocí federace tokenů OAuth.

Povolte federaci identity pracovního vytížení pro Azure DevOps Pipelines:

  1. Vytvořit politiku federace
  2. Konfigurace YAML kanálu Azure DevOps

Jakmile povolíte federaci identit úloh, sady SDK Databricks a rozhraní příkazového řádku Databricks automaticky načítají tokeny identity úloh z Azure DevOps Pipelines a vyměňují je za tokeny OAuth Databricks.

Vytvořit zásady federace

Nejprve vytvořte vlastní zásady federace identit úloh. Pokyny najdete v tématu Konfigurace zásad federace instančního objektu. Pro Azure DevOps nastavte pro zásadu následující hodnoty:

  • Adresa URL vystavitele:https://vstoken.dev.azure.com/<org_id>, kde <org-id> je identifikátor GUID vaší organizace Azure DevOps
  • Publika:api://AzureADTokenExchange
  • Předmět:p://<org-name>/<project-name>/<pipeline-name> kde <org-name> je název vaší organizace Azure DevOps, <project-name> je název vašeho projektu Azure DevOps a <pipeline-name> je název vašeho kanálu Azure DevOps.

Například následující příkaz rozhraní příkazového řádku Databricks vytvoří zásadu federace pro ID 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 organizace a číselné ID instančního 5581763342009999objektu Databricks:

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"
  }
}
'

Konfigurace YAML kanálu Azure DevOps

Dále nakonfigurujte soubor YAML kanálu Azure DevOps. Nastavte následující proměnné prostředí:

  • DATABRICKS_AUTH_TYPE: azure-devops-oidc
  • DATABRICKS_HOST: Adresa URL pracovního prostoru Databricks
  • DATABRICKS_CLIENT_ID: ID instančního objektu (aplikace)
  • SYSTEM_ACCESSTOKEN: Namapujte $(System.AccessToken) proměnnou potrubí na tuto proměnnou prostředí
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)