Partager via


Authentification OAuth machine à machine (M2M)

L’authentification OAuth machine à machine (M2M) utilise les informations d’identification d’une entité automatisée (dans ce cas, un principal de service géré Azure Databricks ou un principal de service géré Microsoft Entra ID – anciennement Azure Active Directory) pour authentifier l’entité cible.

Une fois qu’Azure Databricks réussit à authentifier le principal de service cible via la demande d’authentification M2M OAuth, un jeton OAuth Azure Databricks est fourni à l’outil ou au Kit de développement logiciel (SDK) participant afin d’effectuer l’authentification basée sur jetons à partir de ce moment-là pour le compte du principal de service. Le jeton OAuth Azure Databricks a une durée de vie d’une heure, suite à laquelle l’outil ou le SDK impliqué tente automatiquement en arrière-plan d’obtenir un nouveau jeton dont la validité dure également une heure.

Pour configurer l’authentification M2M OAuth, procédez comme suit :

Remarque

Vous devez être administrateur de compte Azure Databricks pour gérer les informations d’identification OAuth Azure Databricks pour les principaux de service.

Étape 1 : créer un principal de service Microsoft Entra ID dans votre compte Azure

Effectuez cette étape si vous souhaitez lier un principal de service Microsoft Entra ID à votre compte Azure Databricks, votre espace de travail, ou aux deux. Sinon, passez à l’étape 2.

  1. Connectez-vous au portail Azure.

    Remarque

    Le portail à utiliser diffère selon que votre application Microsoft Entra ID (anciennement Azure Active Directory) s’exécute dans le cloud public Azure ou dans un cloud national ou souverain. Pour plus d’informations, voir Clouds nationaux

  2. Si vous avez accès à plusieurs locataires, abonnements ou répertoires, cliquez sur l’icône Répertoires + abonnements (répertoire avec filtre) dans le menu supérieur pour basculer vers le répertoire dans lequel vous souhaitez approvisionner le principal de service.

  3. Dans Ressources de recherche, services et documents, recherchez et sélectionnez Microsoft Entra ID.

  4. Cliquez sur + Ajouter, puis sélectionnez Inscription d’application.

  5. Dans Nom, entrez le nom de l’application.

  6. Dans la section Types de comptes pris en charge, sélectionnez Comptes de cet annuaire organisationnel uniquement (Locataire unique).

  7. Cliquez sur S'inscrire.

  8. Dans la page Présentation de la page d’application, dans la section Essentials, copiez les valeurs suivantes :

    • ID d’application (client)
    • ID de l’annuaire (locataire)

    Vue d’ensemble de l’application inscrite dans Azure

  9. Pour générer une clé secrète client, dans Gérer, cliquez sur Certificats et secrets.

    Remarque

    Vous utilisez cette clé secrète client pour générer des jetons Microsoft Entra ID pour authentifier les principaux de service Microsoft Entra ID avec Azure Databricks. Pour déterminer si un outil Azure Databricks ou un kit de développement logiciel (SDK) peut utiliser des jetons Microsoft Entra ID, consultez la documentation de l’outil ou du kit de développement logiciel (SDK).

  10. Sous l’onglet Clés secrètes client, cliquez sur Nouvelle clé secrète client.

    Nouvelle clé secrète client

  11. Dans le volet Ajouter une clé secrète client, pour Description, entrez une description pour la clé secrète client.

  12. Pour Expirer, sélectionnez une période d’expiration pour la clé secrète client, puis cliquez sur Ajouter.

  13. Copiez et stockez la valeur de la clé secrète client dans un endroit sûr, car cette clé secrète client est le mot de passe de votre application.

Étape 2 : Ajouter un principal de service à votre compte Azure Databricks

Cette étape ne fonctionne que si la fédération des identités est activée pour l’espace de travail Azure Databricks cible. Si l’espace de travail n’est pas activé pour la fédération des identités, passez à l’étape 3.

  1. Dans la barre supérieure de l’espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur, puis sélectionnez Gérer le compte.

    Sinon, vous pouvez accéder directement à la console de votre compte Azure Databricks à l’adresse https://accounts.azuredatabricks.net.

  2. Si vous y êtes invité, connectez-vous à votre compte Azure Databricks.

  3. Dans la barre latérale, cliquez sur Gestion des utilisateurs.

  4. Cliquez sur l’onglet Principaux de service.

  5. Cliquez sur Ajouter un principal de service.

  6. Sous Gestion, choisissez Géré par Databricks ou Géré par Microsoft Entra ID.

  7. Si vous avez choisi Géré par Microsoft Entra ID, sous ID d’application Microsoft Entra, collez la valeur d’ID (client) de l’application de l’étape 1.

  8. Entrez un Nom pour le principal de service.

  9. Cliquez sur Ajouter.

  10. (Facultatif) Attribuez des autorisations au niveau du compte au principal de service :

    1. Sous l’onglet Principaux de service, cliquez sur le nom de votre principal de service.
    2. Sous l’onglet Rôles, utilisez le bouton pour activer ou désactiver chaque rôle cible que vous souhaitez que principal de service ait.
    3. Sous l’onglet Autorisations, octroyez l’accès aux utilisateurs, principaux de service et rôles de groupe de comptes Azure Databricks que vous souhaitez autoriser à gérer et utiliser ce principal de service. Consultez l’article Gérer les rôles d’un principal de service.

Étape 3 : Ajouter le principal de service à votre espace de travail Azure Databricks

Si l’espace de travail est activé pour la fédération des identités :

  1. Dans la barre supérieure de l’espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur, puis sélectionnez Paramètres.
  2. Cliquez sur l’onglet Identité et accès.
  3. À côté de Principaux de service, cliquez sur Gérer.
  4. Cliquez sur Ajouter un principal de service.
  5. Sélectionnez votre principal de service de l’étape 2, puis cliquez sur Ajouter.

Passez ensuite à l’Étape 4.

Si l’espace de travail n’est pas activé pour la fédération des identités :

  1. Dans la barre supérieure de l’espace de travail Azure Databricks, cliquez sur votre nom d’utilisateur, puis sélectionnez Paramètres.
  2. Cliquez sur l’onglet Identité et accès.
  3. À côté de Principaux de service, cliquez sur Gérer.
  4. Cliquez sur Ajouter un principal de service.
  5. Cliquez sur Ajouter nouveau.
  6. Sous Gestion, choisissez Géré par Databricks ou Géré par Microsoft Entra ID.
  7. Si vous avez choisi Géré par Microsoft Entra ID, sous ID d’application Microsoft Entra, collez la valeur d’ID (client) de l’application de l’étape 1.
  8. Indiquez un Nom d’affichage pour le nouveau principal de service, puis cliquez sur Ajouter.

Étape 4 : attribuer des autorisations au niveau de l’espace de travail au principal de service

  1. Si la console d’administration de l’espace de travail n’est pas déjà ouverte, cliquez sur votre nom d’utilisateur dans la barre supérieure, puis sur Paramètres.
  2. Cliquez sur l’onglet Identité et accès.
  3. À côté de Principaux de service, cliquez sur Gérer.
  4. Cliquez sur le nom de votre principal de service pour ouvrir la page de ses paramètres.
  5. Sous l’onglet Configurations, cochez la case en regard de chaque droit d’utilisation que vous souhaitez accorder au principal de service pour cet espace de travail, puis cliquez sur Mettre à jour.
  6. Sous l’onglet Autorisations, accordez l’accès à tous les utilisateurs, les principaux de service et les groupes Azure Databricks que vous souhaitez autoriser à gérer et utiliser ce principal de service. Consultez l’article Gérer les rôles d’un principal de service.

Étape 5 : Créer un secret OAuth Azure Databricks pour le principal de service

Avant de pouvoir utiliser OAuth pour vous authentifier auprès d’Azure Databricks, vous devez d’abord créer un secret OAuth, qui peut être utilisé pour générer des jetons d’accès OAuth. Un principal de service peut avoir jusqu’à cinq secrets OAuth. Pour créer un secret OAuth pour un principal de service à l’aide de la console de compte :

  1. Connectez-vous à la console de compte Azure Databricks, à l’adresse https://accounts.azuredatabricks.net.
  2. Si vous y êtes invité, connectez-vous à votre compte Azure Databricks.
  3. Dans la barre latérale, cliquez sur Gestion des utilisateurs.
  4. Cliquez sur l’onglet Principaux de service.
  5. Cliquez sur le nom du principal de service.
  6. Sous l’onglet Détails du principal, sous la section Secrets OAuth, cliquez sur Générer un secret.
  7. Dans la boîte de dialogue Générer un secret, copiez et stockez la valeur de Secret dans un emplacement sécurisé, car ce secret OAuth est le mot de passe du principal du service.
  8. Cliquez sur Done.

Remarque

Pour permettre au principal de service d’utiliser des clusters ou des entrepôts SQL, vous devez lui en accorder l’accès. Consultez Autorisations de calcul ou Gérer un entrepôt SQL.

Terminer la configuration de l’authentification OAuth M2M

Pour configurer l’authentification M2M OAuth, vous devez définir les variables d’environnement, les champs .databrickscfg, les champs Terraform ou les champs Config suivants :

  • L’hôte Azure Databricks, spécifié comme https://accounts.azuredatabricks.net pour les opérations de compte ou l’URL par espace de travail cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net, pour les opérations d’espace de travail.
  • Pour les opérations de compte Azure Databricks, l’ID de compte Azure Databricks.
  • ID de client du principal du service.
  • Le secret du principal du service.

Pour effectuer l’authentification M2M OAuth, intégrez les éléments suivants dans votre code en fonction de l’outil ou du SDK participant :

Environnement

Pour utiliser des variables d’environnement pour un type d’authentification Azure Databricks spécifique avec un outil ou un kit de développement logiciel (SDK), consultez la Documentation sur les types d’authentification pris en charge par l’outil ou le SDK Azure Databricks, ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Ordre d’évaluation par défaut pour les méthodes et informations d’identification d’authentification unifiées du client.

Pour les opérations au niveau du compte, définissez les variables d’environnement suivantes :

  • DATABRICKS_HOST, réglé sur l’URL de console du compte Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Pour les opérations au niveau de l’espace de travail, définissez les variables d’environnement suivantes :

  • DATABRICKS_HOST, défini sur l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_CLIENT_ID
  • DATABRICKS_CLIENT_SECRET

Profil

Créez ou identifiez un profil de configuration Azure Databricks avec les champs suivants dans votre fichier .databrickscfg. Si vous créez le profil, remplacez les espaces réservés par les valeurs appropriées. Pour utiliser le profil avec un outil ou un kit de développement logiciel (SDK), consultez les Types d’authentification pris en charge par l’outil ou le kit de développement logiciel (SDK) Azure Databricks ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Ordre d’évaluation par défaut pour les méthodes et informations d’identification d’authentification unifiées du client.

Pour les opérations au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

[<some-unique-configuration-profile-name>]
host          = <account-console-url>
account_id    = <account-id>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Pour les opérations au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

[<some-unique-configuration-profile-name>]
host          = <workspace-url>
client_id     = <service-principal-client-id>
client_secret = <service-principal-secret>

Cli

Pour l’interface CLI Databricks, effectuez l’une des opérations suivantes :

  • Définissez les variables d’environnement comme spécifié dans la section « Environnement » de cet article.
  • Définissez les valeurs de votre fichier .databrickscfg comme spécifié dans la section « Profil » de cet article.

Les variables d’environnement sont toujours prioritaires sur les valeurs de votre fichier .databrickscfg.

Consultez également Authentification machine à machine (M2M) OAuth.

Se connecter

Remarque

L’authentification OAuth machine à machine est prise en charge sur les versions de Databricks Connect suivantes :

  • Pour Python, Databricks Connect pour Databricks Runtime 14.0 et versions ultérieures.
  • Pour Scala, Databricks Connect pour Databricks Runtime 13.3 LTS et ultérieur. Le Kit de développement logiciel (SDK) Databricks pour Java inclus dans Databricks Connect pour Databricks Runtime 13.3 LTS et versions ultérieures doit être mis à niveau vers le Kit de développement logiciel (SDK) Databricks pour Java 0.17.0 ou version ultérieure.

Pour Databricks Connect, vous pouvez effectuer une des opérations suivantes :

  • Définissez les valeurs de votre fichier .databrickscfg pour les opérations au niveau de l’espace de travail Azure Databricks comme spécifié dans la section « Profil » de cet article. Définissez également la variable d’environnement cluster_id dans votre profil sur votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.
  • Définissez les variables d’environnement pour les opérations au niveau de l’espace de travail Azure Databricks, comme spécifié dans la section « Environnement » de cet article. Définissez également la variable d’environnement DATABRICKS_CLUSTER_ID sur votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Les valeurs de votre fichier .databrickscfg sont toujours prioritaires sur les variables d’environnement.

Pour initialiser le client Databricks Connect avec ces variables d’environnement ou les valeurs de votre fichier .databrickscfg, consultez une des rubriques suivantes :

VS Code

Pour l’extension Databricks pour Visual Studio Code, procédez comme suit :

  1. Définissez les valeurs de votre fichier .databrickscfg pour les opérations au niveau de l’espace de travail Azure Databricks comme spécifié dans la section « Profil » de cet article.
  2. Dans le volet Configuration de l’extension Databricks pour Visual Studio Code, cliquez sur Configurer Databricks.
  3. Dans la palette de commandes, pour Hôte Databricks, entrez votre URL par espace de travail, par exemple https://adb-1234567890123456.7.azuredatabricks.net, puis appuyez sur Enter.
  4. Dans la palette de commandes, sélectionnez le nom de votre profil cible dans la liste pour votre URL.

Pour plus d’informations, consultez Configuration de l’authentification pour l’extension Databricks pour VS Code.

Terraform

Pour les opérations au niveau du compte, pour l’authentification par défaut :

provider "databricks" {
  alias = "accounts"
}

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme HashiCorp Vault. Référez-vous également à Vault Provider). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

provider "databricks" {
  alias         = "accounts"
  host          = <retrieve-account-console-url>
  account_id    = <retrieve-account-id>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

provider "databricks" {
  alias = "workspace"
}

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme HashiCorp Vault. Référez-vous également à Vault Provider). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

provider "databricks" {
  alias         = "workspace"
  host          = <retrieve-workspace-url>
  client_id     = <retrieve-client-id>
  client_secret = <retrieve-client-secret>
}

Pour plus d’informations sur l’authentification avec le fournisseur Databricks Terraform, consultez Authentification.

Python

Pour les opérations au niveau du compte, utilisez ce qui suit pour l’authentification par défaut :

from databricks.sdk import AccountClient

a = AccountClient()
# ...

Pour la configuration directe, utilisez ce qui suit en remplaçant les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault. Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

from databricks.sdk import AccountClient

a = AccountClient(
  host          = retrieve_account_console_url(),
  account_id    = retrieve_account_id(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

Pour les opérations au niveau de l’espace de travail, et particulièrement pour l’authentification par défaut :

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()
# ...

Pour la configuration directe, remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault. Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

from databricks.sdk import WorkspaceClient

w = WorkspaceClient(
  host          = retrieve_workspace_url(),
  client_id     = retrieve_client_id(),
  client_secret = retrieve_client_secret()
)
# ...

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Python et qui implémentent l’Authentification unifiée du client Databricks, consultez :

Remarque

L’extension Databricks pour Visual Studio Code utilise Python, mais n’a pas encore mis en œuvre l’authentification OAuth machine à machine (M2M).

Java

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

import com.databricks.sdk.WorkspaceClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveWorkspaceUrl())
  .setClientId(retrieveClientId())
  .setClientSecret(retrieveClientSecret());
WorkspaceClient w = new WorkspaceClient(cfg);
// ...

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Java et qui implémentent l’Authentification unifiée du client Databricks, consultez :

Go

Pour les opérations au niveau du compte, pour l’authentification par défaut :

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host:         retrieveAccountConsoleUrl(),
  AccountId:    retrieveAccountId(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Pour la configuration directe (remplacez les espaces réservés retrieve par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net :

import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:         retrieveWorkspaceUrl(),
  ClientId:     retrieveClientId(),
  ClientSecret: retrieveClientSecret(),
}))
// ...

Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Go et qui implémentent l’Authentification unifiée du client Databricks, consultez Authentifier le kit de développement logiciel (SDK) Databricks pour Go avec votre compte ou votre espace de travail Azure Databricks.

Générer manuellement et utiliser des jetons d’accès pour l’authentification OAuth pour la communication entre machines (M2M)

Les outils et kits de développement logiciel (SDK) Azure Databricks qui implémentent la norme d’authentification unifiée de client Databricks vont générer, actualiser et utiliser automatiquement des jetons d’accès OAuth Azure Databricks en votre nom en fonction des besoins de l’authentification OAuth M2M.

Si, pour une raison quelconque, vous devez générer, actualiser ou utiliser des jetons d’accès OAuth Azure Databricks pour l’authentification OAuth M2M, suivez les instructions de cette section.

Étape 1 : Créer un principal de service et un secret OAuth

Si vous ne disposez pas déjà d’un principal de service géré Azure Databricks ou d’un principal de service géré Microsoft Entra ID et de son secret OAuth Azure Databricks correspondant, créez-les en effectuant les étapes 1 à 5 au début de cet article.

Étape 2 : Générer manuellement un jeton d’accès

Vous pouvez utiliser l’ID client du principal de service géré Azure Databricks ou du principal de service géré Microsoft Entra ID et la clé secrète OAuth Azure Databricks pour demander un jeton d’accès OAuth Azure Databricks pour vous authentifier à la fois auprès des API REST au niveau du compte et au niveau de l’espace de travail. Le jeton expire au bout d’une heure. Vous devez demander un nouveau jeton d’accès OAuth Azure Databricks après l’expiration. L’étendue du jeton d’accès OAuth dépend du niveau à partir duquel vous créez le jeton. Vous pouvez créer un jeton au niveau du compte ou de l’espace de travail de la manière suivante :

Générer manuellement un jeton d’accès au niveau du compte

Un jeton d’accès OAuth Azure Databricks créé à partir du niveau du compte peut être utilisé avec des API REST Databricks dans le compte et dans tous les espaces de travail auxquels le principal de service géré Azure Databricks ou le principal de service géré Microsoft Entra ID a été affecté.

  1. En tant qu’administrateur de compte, connectez-vous à la console de compte.

  2. Cliquez sur la flèche vers le bas à côté de votre nom d’utilisateur en haut à droite.

  3. Copiez votre ID de compte.

  4. Construisez l’URL du point de terminaison du jeton en remplaçant <my-account-id> dans l’URL suivante par l’ID de compte que vous avez copié.

    https://accounts.azuredatabricks.net/oidc/accounts/<my-account-id>/v1/token
    
  5. Utilisez un client tel que curl pour demander un jeton d’accès OAuth Azure Databricks avec l’URL du point de terminaison de jeton, l’ID client (également appelé ID d’application) du principal de service géré Azure Databricks ou du principal de service géré Microsoft Entra ID et le secret Azure Databricks OAuth que vous avez créé pour le principal du service géré Azure Databricks ou le principal de service géré Microsoft Entra ID. L’étendue all-apis demande un jeton d’accès OAuth Azure Databricks qui peut être utilisé pour accéder à toutes les API REST Databricks auxquelles le principal du service géré Azure Databricks ou le principal du service géré Microsoft Entra ID a été autorisé à accéder.

    • Remplacez <token-endpoint-URL> par l’URL du point de terminaison du jeton ci-dessus.
    • Remplacez <client-id> par l’ID client du principal de service géré Azure Databricks ou du principal de service géré Microsoft Entra ID, également appelé ID d’application.
    • Remplacez <client-secret> par le secret OAuth Azure Databricks que vous avez créé pour le principal de service géré Azure Databricks ou le principal de service géré Microsoft Entra ID.
    export CLIENT_ID=<client-id>
    export CLIENT_SECRET=<client-secret>
    
    curl --request POST \
    --url <token-endpoint-URL> \
    --user "$CLIENT_ID:$CLIENT_SECRET" \
    --data 'grant_type=client_credentials&scope=all-apis'
    

    Une réponse similaire à celle ci est générée :

    {
      "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
      "scope": "all-apis",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Copiez l’access_token à partir de la réponse.

    Le jeton d’accès OAuth Azure Databricks expire au bout d’une heure. Vous devez générer manuellement un nouveau jeton d’accès OAuth Azure Databricks après l’expiration.

  6. Passez à l’étape 3 : Appeler une API REST Databricks.

Générer manuellement un jeton d’accès au niveau de l’espace de travail

Un jeton d’accès OAuth Azure Databricks créé à partir du niveau de l’espace de travail ne peut accéder qu’aux API REST de cet espace de travail, même si le principal de service géré Azure Databricks ou le principal de service géré Microsoft Entra ID est administrateur de compte ou membre d’autres espaces de travail.

  1. Construisez l’URL du point de terminaison du jeton en remplaçant https://<databricks-instance> par l’URL de l’espace de travail de votre déploiement Azure Databricks :

    https://<databricks-instance>/oidc/v1/token
    
  2. Utilisez un client tel que curl pour demander un jeton d’accès OAuth Azure Databricks avec l’URL du point de terminaison de jeton, l’ID client (également appelé ID d’application) du principal de service géré Azure Databricks ou du principal de service géré Microsoft Entra ID et le secret Azure Databricks OAuth que vous avez créé pour le principal du service géré Azure Databricks ou le principal de service géré Microsoft Entra ID. L’étendue all-apis demande un jeton d’accès OAuth Azure Databricks qui peut être utilisé pour accéder à toutes les API REST Databricks auxquelles le principal du service géré Azure Databricks ou le principal de service géré Microsoft Entra ID a été accordé à l’espace de travail à partir duquel vous demandez le jeton.

    • Remplacez <token-endpoint-URL> par l’URL du point de terminaison du jeton ci-dessus.

    • Remplacez <client-id> par l’ID client du principal de service géré Azure Databricks ou du principal de service géré Microsoft Entra ID, également appelé ID d’application.

    • Remplacez <client-secret> par le secret OAuth Azure Databricks que vous avez créé pour le principal de service géré Azure Databricks ou le principal de service géré Microsoft Entra ID.

      export CLIENT_ID=<client-id>
      export CLIENT_SECRET=<client-secret>
      
      curl --request POST \
      --url <token-endpoint-URL> \
      --user "$CLIENT_ID:$CLIENT_SECRET" \
      --data 'grant_type=client_credentials&scope=all-apis'
      

      Une réponse similaire à celle ci est générée :

      {
        "access_token": "eyJraWQiOiJkYTA4ZTVjZ…",
        "scope": "all-apis",
        "token_type": "Bearer",
        "expires_in": 3600
      }
      

      Copiez l’access_token à partir de la réponse.

      Le jeton d’accès OAuth Azure Databricks expire au bout d’une heure. Vous devez générer manuellement un nouveau jeton d’accès OAuth Azure Databricks après l’expiration.

Étape 3 : Appeler une API REST Databricks

Vous pouvez maintenant utiliser un jeton d’accès OAuth Azure Databricks pour vous authentifier auprès des API REST au niveau du compte et au niveau de l’espace de travail Azure Databricks. Le principal de service géré Azure Databricks ou le principal de service géré Microsoft Entra ID doit être un administrateur de compte pour appeler des API REST au niveau du compte.

Vous pouvez inclure le jeton dans l’en-tête à l’aide Bearer de l’authentification. Vous pouvez utiliser cette approche avec curl ou n’importe quel client que vous générez.

Exemple de demande d’API REST au niveau du compte

Cet exemple utilise l’authentification Bearer pour obtenir la liste de tous les espaces de travail associés à un compte.

  • Remplacez <oauth-access-token> par le jeton d’accès OAuth Azure Databricks pour le principal du service géré Azure Databricks ou le principal du service géré Microsoft Entra ID.
  • Remplacez <account-id> par votre ID de compte.
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
'https://accounts.azuredatabricks.net/api/2.0/accounts/<account-id>/workspaces'

Exemple de demande d’API REST au niveau de l’espace de travail

Cet exemple utilise l’authentification Bearer pour répertorier tous les clusters disponibles dans l’espace de travail spécifié.

  • Remplacez <oauth-access-token> par le jeton d’accès OAuth Azure Databricks pour le principal du service géré Azure Databricks ou le principal du service géré Microsoft Entra ID.

  • Remplacez <workspace-URL> par l’URL de votre espace de travail de base, dont la forme est similaire à adb-1111111111111111.1.azuredatabricks.net.

    export OAUTH_TOKEN=<oauth-access-token>
    
    curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
    'https://<workspace-URL>/api/2.0/clusters/list'