Obtenir des jetons Microsoft Entra ID pour des principaux de service Microsoft Entra ID à l’aide d’Azure CLI

Important

Cet article explique comment créer manuellement des jetons Microsoft Entra ID pour des principaux de service en utilisant l’interface Azure CLI.

Les principaux de service géré Azure Databricks sont gérés directement dans Azure Databricks. Les principaux de service géré Microsoft Entra ID sont gérés dans Microsoft Entra ID, ce qui nécessite des autorisations supplémentaires. Databricks recommande d’utiliser des principaux de service géré Azure Databricks pour la plupart des cas d’usage. Toutefois, Databricks vous recommande d’utiliser des principaux de service géré Microsoft Entra ID dans les cas où vous devez vous authentifier auprès d’Azure Databricks et d’autres ressources Azure en même temps.

Pour créer un principal de service géré Azure Databricks au lieu d’un principal de service géré Microsoft Entra ID, consultez Gérer les principaux de service.

Databricks ne vous recommande pas de créer manuellement des jetons Microsoft Entra ID pour les principaux de service Microsoft Entra ID. C’est parce que chaque jeton Microsoft Entra ID est de courte durée et expire généralement dans l’heure. Au-delà de ce délai, vous devez générer manuellement un jeton Microsoft Entra ID de remplacement. Utilisez plutôt l’un des outils ou SDK participants qui implémentent la norme d’authentification unifiée du client Databricks. Ces outils et SDK génèrent et remplacent automatiquement pour vous les jetons Microsoft Entra ID expirés, en tirant parti des types d’authentification Databricks suivants :

Vous pouvez utiliser Azure CLI pour obtenir des jetons d’accès Microsoft Entra ID pour des principaux de service Microsoft Entra ID.

  1. Rassemblez les informations suivantes :

    Paramètre Description
    Tenant ID Directory (tenant) ID pour l’application associée inscrite dans Microsoft Entra ID.
    Client ID Application (client) ID pour l’application associée inscrite dans Microsoft Entra ID.
    Client secret Value de la clé secrète client pour l’application associée inscrite dans Microsoft Entra ID.
  2. Obtenez l’ID d’abonnement Azure approprié pour le principal de service Microsoft Entra ID. Si vous ne le connaissez pas encore, effectuez l’une des opérations suivantes :

    • Dans la barre de navigation supérieure de votre espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur, puis sur Portail Azure. Dans la page de ressources de l’espace de travail Azure Databricks qui s’affiche, cliquez sur Vue d’ensemble dans la barre latérale. Recherchez ensuite le champ ID d’abonnement, qui contient l’ID d’abonnement.

    • Utilisez l’interface Azure CLI pour exécuter la commande az databricks workspace list en utilisant les options --query et -o ou --output pour affiner les résultats. Remplacez adb-0000000000000000.0.azuredatabricks.net par le nom de votre instance d’espace de travail, sans inclure https://. Dans cet exemple, le 00000000-0000-0000-0000-000000000000 après /subscriptions/ dans la sortie est l’ID d’abonnement.

      az databricks workspace list --query "[?workspaceUrl==\`adb-0000000000000000.0.azuredatabricks.net\`].{id:id}" -o tsv
      
      # /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg/providers/Microsoft.Databricks/workspaces/my-ws
      

      Si le message suivant s’affiche, vous êtes connecté au mauvais tenant : The subscription of '<subscription-id>' doesn't exist in cloud 'AzureCloud'. Pour vous connecter au bon tenant, vous devez réexécuter la commande az login en utilisant l’option -t ou --tenant pour spécifier l’ID du tenant approprié.

      Vous pouvez obtenir l’ID de locataire d’un espace de travail Azure Databricks en exécutant la commande curl -v <per-workspace-URL>/aad/auth, puis en recherchant la sortie < location: https://login.microsoftonline.com/00000000-0000-0000-0000-000000000000, où 00000000-0000-0000-0000-000000000000 représente l’ID de locataire. Consultez également Obtenir des ID d’abonnement et de locataire dans le Portail Azure.

      az login -t <tenant-id>
      
  3. Une fois que vous avez l’ID de tenant Azure, l’ID client, la clé secrète client et l’ID d’abonnement pour votre principal de service Microsoft Entra ID, connectez-vous à Azure en utilisant l’interface Azure CLI pour exécuter la commande az login. Utilisez l’option --service-principal avec la spécification des valeurs pour les paramètres de Tenant ID (Directory (tenant) ID), Client ID (Application (client) ID) et Client secret (Value) pour l’application associée inscrite dans Microsoft Entra ID.

    az login \
    --service-principal \
    -t <Tenant-ID> \
    -u <Client-ID> \
    -p <Client-secret>
    
  4. Vérifiez que vous êtes connecté à l’abonnement correct pour votre principal de service Microsoft Entra ID connecté. Pour ce faire, exécutez la commande az account set en utilisant l’option -s ou --subscription pour spécifier l’ID d’abonnement approprié.

    az account set -s <subscription-id>
    
  5. Générez le jeton d’accès Microsoft Entra ID pour le principal de service Microsoft Entra ID connecté en exécutant la commande az account get-access-token. Utilisez l’option --resource pour spécifier l’ID de ressource unique pour le service Azure Databricks, qui est 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d. Vous pouvez afficher uniquement la valeur du jeton Microsoft Entra ID dans la sortie de la commande en utilisant les options --query et -o ou --output.

    az account get-access-token \
    --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d \
    --query "accessToken" \
    -o tsv
    

Remarque

L’interface de ligne de commande Azure basée sur MSAL utilise Microsoft Authentication Library (MSAL) comme bibliothèque d’authentification sous-jacente. Si vous ne parvenez pas à utiliser le jeton d’accès Microsoft Entra ID généré par Azure CLI, vous pouvez également essayer d'utiliser MSAL directement afin d’obtenir un jeton d’accès Microsoft Entra ID pour un principal de service Microsoft Entra ID. Consultez Obtenir des jetons Microsoft Entra ID pour les principaux de service.