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 exemplehttps://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 :
- Pour les opérations au niveau du compte Azure Databricks, ,
--host <account-console-url> --account-id <account-id>
. - Pour les opérations au niveau de l’espace de travail Azure Databricks,
--host <workspace-url>
.
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’environnementcluster_id
dans votre profil sur votre URL par espace de travail, par exemplehttps://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 exemplehttps://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 :
- Pour Python, consultez Configurer les propriétés de connexion pour Python.
- Pour Scala, consultez Configurer les propriétés de connexion pour Scala.
VS Code
Pour l’extension Databricks pour Visual Studio Code, procédez comme suit :
- Dans le volet Configuration, cliquez sur Configurer Databricks.
- 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 surEnter
. - Sélectionnez OAuth (utilisateur à machine).
- 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 valeurhttps://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 :
- Configurer le client Databricks Connect pour Python
- Configuration de l’authentification pour l’extension Databricks pour Visual Studio Code
- Authentification du kit SDK Databricks pour Python avec un compte ou un espace de travail Azure Databricks
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 valeurhttps://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 :
- Configurer le client Databricks Connect pour Scala (le client Databricks Connect pour Scala utilise le kit de développement logiciel (SDK) Databricks inclus pour Java pour l’authentification)
- Authentifier le kit de développement logiciel (SDK) Databricks pour Java avec votre compte ou espace de travail Azure Databricks
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 valeurhttps://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 :
- Pour appeler les API REST au niveau du compte et de l’espace de travail au sein des comptes et des espaces de travail auxquels votre compte d’utilisateur Azure Databricks a accès, générez un code d’autorisation au niveau du compte.
- Pour appeler des API REST au sein d’un espace de travail auquel votre compte d’utilisateur a accès, vous pouvez générer un code d’autorisation au niveau de l’espace de travail seulement pour cet espace de travail.
Générer un code d’autorisation au niveau du compte
En tant qu’administrateur de compte, connectez-vous à la console de compte.
Cliquez sur la flèche vers le bas à côté de votre nom d’utilisateur en haut à droite.
Copiez votre ID de compte.
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 exemplehttp://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
- Remplacez
Quand vous y êtes invité, suivez les instructions à l’écran pour vous connecter à votre compte Azure Databricks.
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 estdcod...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 valeurstate
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.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
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 exemplehttp://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
- Remplacez
Quand vous y êtes invité, suivez les instructions à l’écran pour vous connecter à votre espace de travail Azure Databricks.
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 estdcod...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 valeurstate
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 :
- Pour appeler les API REST au niveau du compte et de l’espace de travail au sein des comptes et des espaces de travail auxquels votre compte d’utilisateur Azure Databricks a accès, utilisez le code d’autorisation au niveau du compte pour générer un jeton d’accès au niveau du compte.
- Pour appeler des API REST au sein d’un espace de travail auquel votre compte d’utilisateur a accès, vous pouvez utiliser le code d’autorisation au niveau de l’espace de travail pour générer un jeton d’accès au niveau de l’espace de travail seulement pour cet espace de travail.
Générer un jeton d’accès au niveau du compte
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’appelcurl
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>"
- Remplacez
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 esteyJr...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.
Passez à l’Étape 4 : Appeler une API REST Databricks.
Générer un jeton d’accès au niveau de l’espace de travail
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’appelcurl
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>"
- Remplacez
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 esteyJr...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"