Partager via


Authentifier l’accès à Azure Databricks avec un compte utilisateur à l’aide d’OAuth (OAuth U2M)

Azure Databricks utilise l’authentification OAuth utilisateur à machine (U2M) pour activer l’accès CLI et API aux ressources de compte et d’espace de travail Azure Databricks pour le compte d’un utilisateur. Une fois que l’utilisateur s’est connecté et a donné son consentement à la demande d’authentification OAuth, un jeton OAuth est donné à l’outil ou au kit de développement logiciel (SDK) participant pour effectuer l’authentification basée sur les jetons au nom de l’utilisateur à partir de ce moment-là. Le jeton OAuth a une durée de vie d’une heure, à la suite de laquelle l’outil ou le kit de développement logiciel (SDK) impliqué effectue une tentative automatique en arrière-plan afin d’obtenir un nouveau jeton, qui est également valide pendant une heure.

Azure Databricks prend en charge deux façons d’authentifier l’accès pour un compte d’utilisateur avec OAuth :

  • Principalement automatiquement, avec la prise en charge de l’authentification client unifiée Databricks. Utilisez cette approche simplifiée si vous utilisez des outils et des SDK Azure Databricks spécifiques (comme le SDK Databricks Terraform). Les outils et SDK pris en charge sont répertoriés dans Authentification client unifiée Databricks.
  • Manuellement, en générant directement un vérificateur de code OAuth/une paire de vérificateur et un code d’autorisation, et en les utilisant pour créer le jeton OAuth initial que vous fournirez dans votre configuration. Utilisez cette approche si vous n’utilisez pas d’API prise en charge par l’authentification client unifiée Databricks. Pour plus d’informations, consultez :Générer manuellement et utiliser des jetons d’accès pour l’authentification utilisateur à machine (U2M) OAuth.

Authentification U2M avec l’authentification client unifiée Databricks

Remarque

Avant de commencer à configurer votre authentification, passez en revue les autorisations de liste de contrôle d’accès pour une catégorie spécifique d’opérations sur les objets d’espace de travail, et déterminez si votre compte a le niveau d’accès dont vous avez besoin. Pour plus de détails, consultez Listes de contrôle d'accès.

Pour effectuer l’authentification OAuth U2M avec les SDK Azure Databricks et les outils qui prennent en charge l’authentification du client unifiée, intégrez les éléments suivants dans votre code :

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 Authentifier l’accès aux ressources 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 Méthodes par défaut pour l’authentification unifiée du client.

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

  • DATABRICKS_HOST, défini sur la valeur de l’URL de la console de votre compte Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID

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

  • DATABRICKS_HOST, défini sur la valeur de votre URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

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 Authentifier l’accès aux ressources 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 Méthodes par défaut pour l’authentification unifiée 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>

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>

INTERFACE DE LIGNE DE COMMANDE

Pour l’interface CLI Databricks, exécutez la commande databricks auth login avec les options suivantes :

Après avoir exécuté cette commande, suivez les instructions de votre navigateur web pour vous connecter à votre compte ou à votre espace de travail Azure Databricks.

Pour plus d’informations, consultez Authentification OAuth U2M avec l’interface CLI Databricks.

Connexion

Remarque

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

  • Pour Python, Databricks Connect pour Databricks Runtime 13.1 et versions ultérieures.
  • Pour Scala, Databricks Connect pour Databricks Runtime 13.3 LTS et ultérieur.

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. Dans le volet Configuration, cliquez sur Configurer Databricks.
  2. 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.
  3. Sélectionnez OAuth (utilisateur à machine).
  4. Suivez les instructions à l’écran dans votre navigateur web pour terminer l’authentification avec votre compte Azure Databricks et autoriser l’accès à all-apis.

Pour plus d’informations, consultez Authentification OAuth U2M avec l’interface CLI Databricks.

Terraform

Remarque

L’authentification U2M OAuth n’est pas encore prise en charge.

Python

Pour les opérations au niveau du compte et au niveau de l’espace de travail, vous devez utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Python. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Python similaire à un des extraits de code suivants :

Pour l’authentification par défaut :

from databricks.sdk import AccountClient

a = AccountClient()
# ...

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 :

from databricks.sdk import AccountClient

a = AccountClient(
  host       = retrieveAccountConsoleUrl(),
  account_id = retrieveAccountId()
)
# ...

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

databricks auth login --host <worskpace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Python similaire à un des extraits de code suivants :

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 = retrieveWorkspaceUrl())
# ...

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 :

Java

Pour les opérations au niveau du compte et au niveau de l’espace de travail, vous devez utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Java. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-console-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Java similaire à un des extraits de code suivants :

Pour l’authentification par défaut :

import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...

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 com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
  .setHost(retrieveAccountConsoleUrl())
  .setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

Pour les opérations au niveau de l’espace de travail, vous devez d’abord utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Java. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

databricks auth login --host <worskpace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Java similaire à un des extraits de code suivants :

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())
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 et au niveau de l’espace de travail, vous devez utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Go. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

Configuration pour les opérations au niveau du compte Databricks

databricks auth login --host <account-login-url> --account-id <account-id>

Remplacez les espaces réservés suivants :

  • Remplacez <account-console-url> par la valeur https://accounts.azuredatabricks.net. (Ne définissezpas cette valeur sur la valeur de l’URL de votre espace de travail Azure Databricks.)
  • Remplacez <account-id> par la valeur de votre compte Azure Databricks. Consultez Localiser votre ID de compte.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec les champs host et account_id déjà définis, vous pouvez remplacer --host <account-console-url> --account-id <account-id> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de connexion du compte et l’ID de compte en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Go similaire à un des extraits de code suivants :

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’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net :

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
  Host:      retrieveAccountConsoleUrl(),
  AccountId: retrieveAccountId(),
}))
// ...

Configuration pour les opérations au niveau de l’espace de travail Azure Databricks

Pour les opérations au niveau de l’espace de travail, vous devez d’abord utiliser l’interface CLI Databricks pour exécuter la commande suivante avant d’exécuter votre code Go. Cette commande indique à l’interface CLI Databricks de générer et de mettre en cache le jeton OAuth nécessaire dans le chemin d’accès .databricks/token-cache.json dans le dossier de base de votre utilisateur sur votre ordinateur :

databricks auth login --host <worskpace-url>

Remplacez l’espace réservé <workspace-url> par l’URL de l’espace de travail Azure Databricks cible, par exemple https://adb-1234567890123456.7.azuredatabricks.net.

Remarque

Si vous disposez déjà d’un profil de configuration Azure Databricks avec le champ host déjà défini, vous pouvez remplacer --host <workspace-url> par --profile <profile-name>.

Après avoir exécuté la commande auth login, vous êtes invité à enregistrer l’URL de l’espace de travail en tant que profil de configuration Azure Databricks. Quand vous y êtes invité, entrez le nom d’un profil nouveau ou existant dans votre fichier .databrickscfg. Tout profil existant portant le même nom dans votre fichier .databrickscfg est remplacé.

Si vous y êtes invité, suivez les instructions sur l’écran de votre navigateur web pour établir la connexion. Utilisez ensuite du code Go similaire à un des extraits de code suivants :

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’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"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
  Host: retrieveWorkspaceUrl(),
}))
// ...

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 utilisateur à machine (U2M) OAuth

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 U2M OAuth.

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

Étape 1 : Générer une paire vérificateur de code et test de code OAuth

Pour générer et utiliser manuellement des jetons d’accès pour l’authentification U2M OAuth, vous devez d’abord avoir un vérificateur de code OAuth et un test de code OAuth qui est dérivée du vérificateur de code. Vous utilisez le test de code à l’étape 2, pour générer un code d’autorisation OAuth. Vous utilisez le vérificateur de code et le code d’autorisation à l’étape 3, pour générer le jeton d’accès OAuth.

Remarque

Bien qu’il soit techniquement possible d’utiliser des chaînes de texte brut non codées pour le vérificateur de code et le test de code, Databricks encourage fortement à suivre au lieu de cela la norme OAuth pour générer le vérificateur de code et le test de code.

Plus précisément, le vérificateur de code doit être une chaîne aléatoire par chiffrement utilisant des caractères des ensembles A-Z, a-z et 0-9, et les signes de ponctuation -._~ (trait d’union, point, trait de soulignement et tilde), d’une longueur comprise entre 43 et 128 caractères. Le test de code doit être une chaîne codée sous forme d’URL en Base64 du hachage SHA256 du vérificateur de code. Pour plus d’informations, consultez Demande d’autorisation.

Vous pouvez exécuter le script Python suivant pour générer rapidement une paire unique de vérificateur de code et de test de code. Même si vous pouvez réutiliser cette paire de vérificateur de code et de test de code générée plusieurs fois, Databricks vous recommande de générer une nouvelle paire de vérificateur de code et de test de code chaque fois que vous générez manuellement des jetons d’accès pour l’authentification U2M OAuth.

import uuid, hashlib, base64

# Generate a UUID.
uuid1 = uuid.uuid4()

# Convert the UUID to a string.
uuid_str1 = str(uuid1).upper()

# Create the code verifier.
code_verifier = uuid_str1 + "-" + uuid_str1

# Create the code challenge based on the code verifier.
code_challenge = base64.urlsafe_b64encode(hashlib.sha256(code_verifier.encode()).digest()).decode('utf-8')

# Remove all padding from the code challenge.
code_challenge = code_challenge.replace('=', '')

# Print the code verifier and the code challenge.
# Use these in your calls to manually generate
# access tokens for OAuth U2M authentication.
print(f"code_verifier:  {code_verifier}")
print(f"code_challenge: {code_challenge}")

Étape 2 : Générer un code d’autorisation

Vous utilisez un code d’autorisation OAuth pour générer un jeton d’accès OAuth Azure Databricks. Le code d’autorisation expire immédiatement après que vous l’avez utilisé pour générer un jeton d’accès OAuth Azure Databricks. L’étendue du code d’autorisation dépend du niveau à partir duquel vous le générez. Vous pouvez générer un code d’autorisation au niveau du compte ou au niveau de l’espace de travail Azure Databricks, comme suit :

Générer un code d’autorisation au niveau du compte

  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. Dans la barre d’adresse de votre navigateur web, accédez à l’URL suivante. Des sauts de ligne ont été ajoutés pour des raisons de lisibilité. Votre URL ne doit pas contenir ces sauts de ligne.

    Dans l’URL suivante, faites les remplacements suivants :

    • Remplacez <account-id> par l’ID de compte que vous avez copié.
    • Remplacez <redirect-url> par une URL de redirection vers votre machine locale, par exemple http://localhost:8020.
    • Remplacez <state> par une chaîne de texte brut que vous pouvez utiliser pour vérifier l’intégrité du code d’autorisation.
    • Remplacez <code-challenge> par le test de code que vous avez généré à l’étape 1.
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  5. Quand vous y êtes invité, suivez les instructions à l’écran pour vous connecter à votre compte Azure Databricks.

  6. Dans la barre d’adresse de votre navigateur web, copiez le code d’autorisation. Le code d’autorisation est la chaîne de caractères complète entre code= et le caractère & dans l’URL. Par exemple, le code d’autorisation dans l’URL suivante est dcod...7fe6 :

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Vous devez vérifier l’intégrité de ce code d’autorisation en vérifiant visuellement que la valeur <state> dans cette URL de réponse correspond à la valeur state que vous avez fournie dans votre URL de demande. Si les valeurs sont différentes, vous ne devez pas utiliser ce code d’autorisation, car il peut être compromis.

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

Générer un code d’autorisation au niveau de l’espace de travail

  1. Dans la barre d’adresse de votre navigateur web, accédez à l’URL suivante. Des sauts de ligne ont été ajoutés pour des raisons de lisibilité. Votre URL ne doit pas contenir ces sauts de ligne.

    Dans l’URL suivante, faites les remplacements suivants :

    • Remplacez <databricks-instance> par le nom de l’instance d’espace de travail Azure Databricks (par exemple, adb-1234567890123456.7.azuredatabricks.net).
    • Remplacez <redirect-url> par une URL de redirection vers votre machine locale, par exemple http://localhost:8020.
    • Remplacez <state> par une chaîne de texte brut que vous pouvez utiliser pour vérifier l’intégrité du code d’autorisation.
    • Remplacez <code-challenge> par le test de code que vous avez généré à l’étape 1.
    https://<databricks-instance>/oidc/v1/authorize
    ?client_id=databricks-cli
    &redirect_uri=<redirect-url>
    &response_type=code
    &state=<state>
    &code_challenge=<code-challenge>
    &code_challenge_method=S256
    &scope=all-apis+offline_access
    
  2. Quand vous y êtes invité, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.

  3. Dans la barre d’adresse de votre navigateur web, copiez le code d’autorisation. Le code d’autorisation est la chaîne de caractères complète entre code= et le caractère & dans l’URL. Par exemple, le code d’autorisation dans l’URL suivante est dcod...7fe6 :

    http://localhost:8020/?code=dcod...7fe6&state=<state>
    

    Vous devez vérifier l’intégrité de ce code d’autorisation en vérifiant visuellement que la valeur <state> dans cette URL de réponse correspond à la valeur state que vous avez fournie dans votre URL de demande. Si les valeurs sont différentes, vous ne devez pas utiliser ce code d’autorisation, car il peut être compromis.

Étape 3 : Utiliser le code d’autorisation pour générer un jeton d’accès OAuth

Vous utilisez le code d’autorisation OAuth de l’étape précédente pour générer un jeton d’accès OAuth Azure Databricks, comme suit :

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

  1. Utilisez un client tel que curl avec le code d’autorisation au niveau du compte pour générer le jeton d’accès OAuth au niveau du compte. Dans l’appel curl suivant, remplacez les espaces réservés suivants :

    • Remplacez <account-id> par l’ID de compte de l’étape 2.
    • Remplacez <redirect-url> par l’URL de redirection de l’étape 2.
    • Remplacez <code-verifier> par le vérificateur de code que vous avez généré à l’étape 1.
    • Remplacez <authorization-code> par le code d’autorisation au niveau du compte que vous avez généré à l’étape 2.
    curl --request POST \
    https://accounts.azuredatabricks.net/oidc/accounts/<account-id>/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. Dans la réponse, copiez le jeton d’accès OAuth au niveau du compte. Le jeton d’accès est la chaîne de caractères complète dans l’objet access_token. Par exemple, le jeton d’accès dans la réponse suivante est eyJr...Dkag :

    {
      "access_token": "eyJr...Dkag",
      "refresh_token": "doau...f26e",
      "scope": "all-apis offline_access",
      "token_type": "Bearer",
      "expires_in": 3600
    }
    

    Ce jeton d’accès expire en une heure. Pour générer un nouveau jeton d’accès, répétez cette procédure à partir de l’étape 1.

  3. Passez à l’Étape 4 : Appeler une API REST Databricks.

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

  1. Utilisez un client tel que curl avec le code d’autorisation au niveau de l’espace de travail pour générer le jeton d’accès OAuth au niveau de l’espace de travail. Dans l’appel curl suivant, remplacez les espaces réservés suivants :

    • Remplacez <databricks-instance> par le nom de l’instance d’espace de travail Azure Databricks (par exemple, adb-1234567890123456.7.azuredatabricks.net).
    • Remplacez <redirect-url> par l’URL de redirection de l’étape 2.
    • Remplacez <code-verifier> par le vérificateur de code que vous avez généré à l’étape 1.
    • Remplacez <authorization-code> par le code d’autorisation au niveau de l’espace de travail que vous avez généré à l’étape 2.
    curl --request POST \
    https://<databricks-instance>/oidc/v1/token \
    --data "client_id=databricks-cli" \
    --data "grant_type=authorization_code" \
    --data "scope=all-apis offline_access" \
    --data "redirect_uri=<redirect-url>" \
    --data "code_verifier=<code-verifier>" \
    --data "code=<authorization-code>"
    
  2. Dans la réponse, copiez le jeton d’accès OAuth au niveau de l’espace de travail. Le jeton d’accès est la chaîne de caractères complète dans l’objet access_token. Par exemple, le jeton d’accès dans la réponse suivante est eyJr...Dkag :

    {
     "access_token": "eyJr...Dkag",
     "refresh_token": "doau...f26e",
     "scope": "all-apis offline_access",
     "token_type": "Bearer",
     "expires_in": 3600
    }
    

    Ce jeton d’accès expire en une heure. Pour générer un nouveau jeton d’accès, répétez cette procédure à partir de l’étape 1.

Étape 4 : Appeler une API REST Databricks

Vous utilisez le jeton d’accès OAuth au niveau du compte ou de l’espace de travail pour vous authentifier auprès des API REST au niveau du compte Azure Databricks et des API REST au niveau de l’espace de travail, selon l’étendue du jeton d’accès. Votre compte d’utilisateur Azure Databricks doit être un administrateur de compte pour appeler des API REST au niveau du compte.

Exemple de demande d’API REST au niveau du compte

Cet exemple utilise curl avec 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 au niveau du compte.
  • 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 curl avec l’authentification Bearer pour lister tous les clusters disponibles dans l’espace de travail spécifié.

  • Remplacez <oauth-access-token> par le jeton d’accès OAuth au niveau du compte ou de l’espace de travail.
  • Remplacez <databricks-instance> par le nom de l’instance d’espace de travail Azure Databricks (par exemple, adb-1234567890123456.7.azuredatabricks.net).
export OAUTH_TOKEN=<oauth-access-token>

curl --request GET --header "Authorization: Bearer $OAUTH_TOKEN" \
"https://<databricks-instance>/api/2.0/clusters/list"