Partager via


Utiliser un principal de service Microsoft Entra pour authentifier l’accès aux dossiers Git Azure Databricks

Découvrez comment configurer l’accès authentifié aux dossiers Git d’Azure Databricks hébergés par Azure DevOps (Azure Repos) à l’aide d’un principal de service Microsoft Entra.

Si vous avez des dossiers Databricks Git dans votre projet Databricks soutenus par des référentiels Git Azure Repos et que vous souhaitez les gérer dans votre automatisation, vous pouvez utiliser les informations de cet article pour configurer l’authentification à l’aide d’un principal de service Microsoft Entra et d’Azure DevOps. ’Une fois cette tâche terminée, vous disposez d’informations d’identification Databricks Git authentifiées que vous pouvez utiliser dans votre automatisation.

Pourquoi utiliser Microsoft Entra et non pas PAT ?

Dans le passé, les jetons d’accès personnels (PAT) étaient le moyen préféré de s’authentifier lors de l’appel d’une API qui nécessite un accès et des autorisations spécifiques aux ressources. Ces jetons porteurs représenté un nom d’utilisateur et un mot de passe, et ont besoin d’une rotation régulière pour réduire le risque de sécurité qu’ils présentent. Les jetons d’accès Microsoft Entra ID répondent à ce problème en gérant automatiquement la rotation de ces jetons toutes les heures, et Databricks les recommande comme une bonne pratique lors de l’utilisation des ressources Azure. En créant un principal de service Microsoft Entra, vous pouvez gérer les autorisations accordées sur l’accès à ces ressources sans utiliser de compte d’utilisateur Microsoft Azure.

Spécifications

Vous devez avoir :

  • Accès à un projet Azure DevOps avec un dépôt Git Azure Repos connecté à un dossier Git Databricks.
  • Autorisations sur votre compte Azure pour créer un principal de service MS Entra.
  • Azure CLI installé.
  • Ls CLI Databricks est installée.

Étape 1 : Créer un principal de service Microsoft Entra ID

Vous pouvez sauter cette étape si vous avez déjà configuré un principal de service Microsoft Entra.

Pour créer un principal de service Microsoft Entra, suivez les étapes décrites dans la documentation Microsoft Azure : Inscrire une application Microsoft Entra et créer un principal de service. Dans la section « Configurer l’authentification » de cet article, ignorez les deux premières options et suivez les étapes de « l’option 3 : Créer une clé secrète client. »

Une fois que vous l’avez configuré, vous disposez des points suivants :

  • Une clé secrète client. Elle sera présente sous la forme d’une longue chaîne de caractères d’apparition aléatoire.
    • Un ID de principal de service. Il s’agit du nom unique que vous avez affecté au principal du service MS Entra. Comme bonne pratique, le nom doit également indiquer comment et quand il doit être utilisé (par exemple, Databricks_CICD_SP).

(Vous pouvez ignorer l’interface utilisateur de redirection facultative dans la boîte de dialogue de configuration MS Entra, car elle ne sera pas utilisée dans cette configuration.)

Copiez ces éléments quelque part, car vous les utiliserez dans les prochaines étapes. Une fois le processus terminé dans cette documentation, sécurisez ou supprimez ces informations.

Étape 2 : Configurer les autorisations Azure DevOps pour le principal du service MS Entra

Tout d’abord, vous devez accorder à votre principal de service MS Entra l’autorisation d’accéder à vos ressources Azure DevOps. Pour ce faire, vous devez utiliser le portail Azure DevOps.

  1. Connectez-vous à votre compte Azure DevOps et accédez à votre projet.

  2. Sous Paramètres du projet>Autorisations, cliquez sur Lecteurs.

    Le contenu du panneau Membres sous Autorisations dans les paramètres de projet d’Azure DevOps

  3. Cliquez sur l’onglet Membres, cliquez sur Ajouter, puis ajoutez le nom du principal de service MS Entra que vous avez créé.

  4. Dans la console, revenez au niveau de l’organisation de votre organisation Azure DevOps, puis cliquez sur Paramètres de l’organisation en bas du volet gauche.

  5. Cliquez sur Utilisateurs>Ajouter un(e) utilisateur(-trice), puis configurez l’accès pour votre principal de service comme suit :

    • Ajoutez votre principal de service MS Entra à l’aide de l’ID que vous avez créé précédemment.
    • Configurez l’accès du principal de service au niveau minimal nécessaire pour effectuer des opérations dans Azure Repos. En règle générale, les autorisations de niveau de base sont suffisantes. Si vous ne savez pas quel niveau utiliser, contactez votre administrateur(-trice) d’organisation Azure DevOps.
    • Ajoutez le principal de service à votre projet Azure DevOps.
    • Affectez le principal de service au groupe Contributeurs de projets.

    Contenu du panneau Utilisateurs dans les paramètres de l’organisation d’Azure DevOps

Étape 3 : Attribuer des autorisations au principal de service dans Azure Databricks

Vous devez également attribuer des autorisations dans Azure Databricks à votre principal de service Microsoft Entra.

  1. Connectez-vous à la console d’administration de votre compte Azure Databricks.
  2. Cliquez sur Utilisateurs et groupes.
  3. Cliquez sur l’onglet Principaux de service, et puis sur Ajouter un principal de service. L’ onglet Principaux du service sous Utilisateurs et groupes dans la console d’administration du compte Databricks
  4. Dans la page Ajouter un principal de service, cliquez sur l’ID Microsoft Entra managé, puis ajoutez votre ID d’application Microsoft Entra et le nom du principal de service à « l’étape 1 : Créer un principal de service Microsoft Entra. » Cliquez sur Ajouter quand vous avez terminé. La boîte de dialogue Ajouter un principal de service dans la console d’administration du compte Databricks
  5. Cliquez sur le principal de service Microsoft Entra ajouté pour afficher l’onglet Informations principales.
  6. Cliquez sur Générer un secret en bas à gauche de la page pour générer un secret OAuth. Ce secret vous permet d’authentifier les appels d’API Azure Databricks à l’aide de l’interface CLI Databricks.
  7. Copiez la chaîne secrète et l’identifiant du client, puis cliquez sur Terminé. Vous utiliserez les deux à l’étape suivante. Cliquez sur Terminé. La boîte de dialogue Générer in secret dans la console d’administration du compte Databricks
  8. Dans la barre latérale gauche, cliquez sur Espaces de travail, choisissez votre espace de travail, puis cliquez sur l’onglet Autorisations.
  9. Accordez des autorisations « utilisateur » à votre principal de service, puis cliquez sur Ajouter des autorisations.

Important

Si l’onglet Autorisations est grisé, votre espace de travail Azure Databricks n’est pas affecté à un metastore du catalogue Unity. Contactez votre administrateur(-trice) Databricks.

Ensuite, vous créez vos informations d’identification Git Azure Databricks.

Étape 4 : Créez un jeton d’accès d’ID Microsoft Entra et stockez-le en tant qu’informations d’identification Git Azure Databricks.

Remarque

Cette étape nécessite l’utilisation des API Azure et Databricks.

Pour vous authentifier auprès d’Azure Databricks, vous devez disposer d’un profil de configuration (.databrickscfg) configuré avec le secret OAuth que vous avez créé à l’étape précédente. Pour configurer cette configuration, ouvrez le fichier .databrickscfg dans l’éditeur et ajoutez ce qui suit au fichier :

[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>

Là où host est l’URL de votre espace de travail Databricks, client_id est l’ID du principal du service Microsoft Entra et client_secret est la clé secrète client OAuth que vous avez créée à « l’étape 3 : Attribuer des autorisations au principal de service dans Azure Databricks. »

Vous devez maintenant disposer des valeurs suivantes pour fournir des appels CLI dans ce processus :

  • ID client du principal de service des étapes 1 ou 3 : ils doivent être identiques. (sp_iddans les exemples de CLI suivants.)
  • Le nom du principal de service de l’étape 1. (sp_name)
  • La chaîne secrète du client du principal de service de l’étape 1. (sp_secret)
  • Votre nom d’organisation Azure DevOps. (devops_org)
  • Votre nom de projet Azure DevOps. (devops_project)
  • Votre nom de référentiel de code Azure Repos. (devops_repo)

En outre, vous avez besoin de l’ID de locataire Azure (tenant_id dans les exemples suivants) pour votre abonnement Azure. Suivez les instructions suivantes pour l’obtenir à partir du portail Azure.

À présent, vous pouvez créer des informations d’identification Git à partir d’Azure CLI.

  1. Ouvrez une fenêtre de ligne de commande avec accès aux API Azure et Databricks.
  2. Exécutez la commande Azure CLI suivante pour vous connecter en tant que principal de service Microsoft Entra : az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. En tant que principal du service Microsoft Entra, demandez un jeton d’accès d’ID Microsoft Entra et affectez-le à une variable : ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. Utilisez le jeton d’accès pour créer des informations d’identification Git pour l’accès Azure Databricks à l’aide des niveaux d’autorisation que vous avez configurés pour celui-ci : databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. Enfin, créez un dossier Git à l’aide du principal du service Microsoft Entra : databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo

Le dossier Git correspondant pour ce référentiel Azure DevOps est désormais disponible dans votre espace de travail Azure Databricks. Vous pouvez fournir les informations d’identification Git pour les gérer à partir de votre code à l’aide des API REST Databricks Repos ou de l’interface CLI Databricks.

Vous avez maintenant appris à générer un jeton d’accès d’ID Microsoft Entra limité à Azure DevOps et à le stocker en tant qu’informations d’identification Git Databricks.

Bonnes pratiques

Le jeton d’accès Entra ID est de courte durée. Votre pipeline doit donc mettre à jour les informations d’identification Git Databricks à l’aide de git-credentials update. Vous pouvez ensuite déclencher une demande de tirage à partir de celle-ci à l’aide de databricks repos update.

Important

Des mesures de sécurité supplémentaires sont requises dans un paramètre de production. Dans un environnement de production, vous devez stocker la clé secrète client du principal de service et le jeton Databricks OAuth dans un magasin de secrets sécurisé tel qu’Azure Key Vault.

Voir aussi