Partager via


Authentification utilisateur à machine (U2M) OAuth

L’authentification utilisateur à machine (U2M) OAuth utilise la connexion et le consentement humains en temps réel pour authentifier le compte d’utilisateur Azure Databricks cible. 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 à partir de ce moment-là au nom de l’utilisateur. 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.

Pour configurer l’authentification U2M OAuth avec Azure Databricks, vous devez définir les variables d’environnement, les champs .databrickscfg, les champs Terraform ou les champs Config associés 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.

Pour effectuer l’authentification OAuth U2M avec Azure Databricks, intégrez les éléments suivants dans votre code, en fonction de l’outil ou du Kit de développement logiciel (SDK) participant. Notez que, selon les opérations Azure Databricks que votre code appelle, vous n’avez pas nécessairement besoin d’être administrateur pour le compte Azure Databricks :

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, 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 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>

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

Se connecter

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 Configurer l’authentification U2M OAuth.

Terraform

Remarque

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

Python

Pour les opérations au niveau du compte, vous devez d’abord 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 :

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

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 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 :

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, 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 <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);
// ...

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, 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 <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(),
}))
// ...

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 plus loin à l’étape 2, pour générer un code d’autorisation OAuth. Vous utilisez le vérificateur de code et le code d’autorisation plus loin à 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_url=<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"