Aller au contenu principal

Activer la fédération d'identité de charge de travail pour les pipelines Azure DevOps

La fédération de jetons OAuth Databricks, également connue sous le nom d'OpenID Connect (OIDC), permet à vos workloads automatisés exécutés en dehors de Databricks d'accéder en toute sécurité à Databricks sans nécessiter de secrets Databricks. Voir Authentifier l'accès à Databricks à l'aide de la fédération de jetons OAuth.

Pour activer la fédération d'identité de charge de travail pour les pipelines Azure DevOps :

  1. Créer une politique de fédération
  2. Configurer le pipeline Azure DevOps YAML

Après avoir activé la fédération des identités de workload, les SDK Databricks et la CLI Databricks récupèrent automatiquement les jetons d'identité de workload d'Azure DevOps Pipelines et les échangent contre des jetons OAuth Databricks.

Créer une politique de fédération

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

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

Par exemple, la commande Databricks CLI suivante crée une politique de fédération pour un ID d’organisation 7f1078d6-b20d-4a20-9d88-05a2f0d645a3 et un ID numérique de Service Principal Databricks de 5581763342009999:

Bash
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 le pipeline YAML 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: Votre URL de workspace Databricks
  • DATABRICKS_CLIENT_ID: L’ID de l’application du service principal
  • SYSTEM_ACCESSTOKEN: Mappez la variable de pipeline $(System.AccessToken) à cette variable d'environnement
YAML
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)