Partager via


Activer la fédération des identités de charge de travail pour Azure DevOps Pipelines

La fédération de jetons OAuth Databricks, également appelée OpenID Connect (OIDC), permet à vos charges de travail automatisées s’exécutant en dehors de Databricks d’accéder en toute sécurité à Databricks sans avoir besoin de secrets Databricks. Consultez Authentifier l’accès à Azure Databricks à l’aide de la fédération de jeton OAuth.

Pour activer la fédération des identités de charge de travail pour Azure DevOps Pipelines :

  1. Créer une stratégie de fédération
  2. Configurer YAML du pipeline Azure DevOps

Après avoir activé la fédération des identités de charge de travail, les sdk Databricks et l’interface CLI Databricks récupèrent automatiquement des jetons d’identité de charge de travail à partir d’Azure DevOps Pipelines et les échangent pour les jetons OAuth Databricks.

Créer une stratégie de fédération

Tout d’abord, créez une stratégie de fédération d’identité de charge de travail personnalisée. Pour obtenir des instructions, consultez Configurer une stratégie de fédération de principal de service. Pour Azure DevOps, définissez les valeurs suivantes pour la stratégie :

  • URL de l’émetteur :https://vstoken.dev.azure.com/<org_id>, où <org-id> est le GUID de votre organisation Azure DevOps
  • Public:api://AzureADTokenExchange
  • Objet:p://<org-name>/<project-name>/<pipeline-name><org-name> est le nom de votre organisation Azure DevOps, <project-name> est le nom de votre projet Azure DevOps et <pipeline-name> le nom de votre pipeline Azure DevOps

Par exemple, la commande CLI Databricks suivante crée une stratégie de fédération pour un ID d’organisation et un ID 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 numérique de principal de service 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"
  }
}
'

Configurer YAML du pipeline Azure DevOps

Ensuite, configurez le fichier YAML du pipeline Azure DevOps. Définissez les variables d’environnement suivantes :

  • DATABRICKS_AUTH_TYPE: azure-devops-oidc
  • DATABRICKS_HOST: URL de votre espace de travail Databricks
  • DATABRICKS_CLIENT_ID: ID du principal de service (application)
  • SYSTEM_ACCESSTOKEN : associer la variable de pipeline $(System.AccessToken) à cette variable d’environnement
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)