Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page explique comment autoriser l’accès utilisateur aux ressources Azure Databricks lors de l’utilisation de l’interface CLI Azure Databricks ou des API REST Azure Databricks.
Azure Databricks utilise OAuth 2.0 comme protocole préféré pour l’autorisation utilisateur et l’authentification en dehors de l’interface utilisateur. L’authentification client unifiée automatise la génération et l’actualisation des jetons. Une fois qu’un utilisateur se connecte et accorde son consentement, OAuth émet un jeton d’accès pour l’interface CLI, le SDK ou un autre outil à utiliser pour le compte de l’utilisateur. Chaque jeton d’accès est valide pendant une heure, après quoi un nouveau jeton est automatiquement demandé.
Dans cette page, l’autorisation fait référence à l’utilisation d’OAuth pour accorder l’accès aux ressources Azure Databricks, tandis que l’authentification fait référence à la validation des informations d’identification par le biais de jetons d’accès.
Pour plus d’informations générales, consultez Autoriser l’accès aux ressources Azure Databricks.
Façons d’autoriser l’accès aux ressources Azure Databricks
Azure Databricks prend en charge deux façons d’autoriser les comptes d’utilisateur avec OAuth :
Automatique (recommandé) : Utilisez l’authentification unifiée si vous utilisez des outils et des kits sdk pris en charge, tels que le Kit de développement logiciel (SDK) Terraform Azure Databricks. Cette approche gère automatiquement la génération de jetons et l’actualisation.
Manuelle: Générez un vérificateur de code et un défi, puis échangez-les pour un jeton OAuth. Utilisez cette méthode si votre outil ne prend pas en charge l’authentification unifiée. Pour plus d’informations, consultez Générer manuellement des jetons d’accès OAuth U2M.
Autorisation automatique avec authentification unifiée
Remarque
Avant de configurer l’autorisation, passez en revue les autorisations de liste de contrôle d’accès pour le type d’opérations d’espace de travail que vous envisagez d’effectuer et vérifiez que votre compte a le niveau d’accès requis. Pour plus d’informations, consultez les listes de contrôle d’accès.
Pour effectuer une autorisation OAuth avec des kits de développement logiciel (SDK) Azure Databricks et des outils qui prennent en charge l’authentification 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 SDK, consultez Autoriser l’accès aux ressources Azure Databricks ou à la documentation de l’outil ou du SDK. Consultez également les variables et champs d’environnement pour l’authentification unifiée et la priorité de la méthode d’authentification.
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 Autoriser l’accès aux ressources Azure Databricks ou à la documentation de l’outil ou du SDK. Consultez également les variables et champs d’environnement pour l’authentification unifiée et la priorité de la méthode d’authentification.
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 Azure Databricks CLI, exécutez la databricks auth login commande avec les options suivantes :
- Pour les opérations au niveau du compte,
--host https://accounts.cloud.databricks.com --account-id <account-id>. - Pour les opérations au niveau de l’espace de travail,
--host <workspace-url>.
Suivez ensuite les instructions de votre navigateur web pour vous connecter à votre compte ou espace de travail Azure Databricks.
Pour plus d’informations, consultez Autorisation OAuth avec l’interface CLI Databricks.
VS Code
Pour l’extension Databricks pour Visual Studio Code, suivez les étapes décrites dans Configurer l’autorisation pour l’extension Databricks pour Visual Studio Code.
Se connecter
L’authentification OAuth U2M est prise en charge dans Databricks Connect pour Python à partir de Databricks Runtime 13.1 et pour Scala à partir de Databricks Runtime 13.3 LTS.
Pour Databricks Connect, vous pouvez :
-
Utilisez un profil de configuration : Définissez les valeurs au niveau de l’espace de travail dans votre
.databrickscfgfichier, comme décrit sous l’onglet Profil . Définissez également l’URLcluster_idde votre instance d’espace de travail. -
Utilisez des variables d’environnement : Définissez les mêmes valeurs que celles affichées sous l’onglet Environnement . Définissez également l’URL
DATABRICKS_CLUSTER_IDde votre instance d’espace de travail.
Les valeurs sont .databrickscfg prioritaires sur les variables d’environnement.
Pour initialiser Databricks Connect avec ces paramètres, consultez Configuration de calcul pour Databricks Connect.
Terraformation
Avant d’appliquer votre configuration Terraform, vous devez exécuter l’une des databricks auth login commandes de l’onglet CLI selon que votre configuration utilise des opérations d’espace de travail ou de compte. Ces commandes génèrent et cachent le jeton .databricks/token-cache.json OAuth requis dans le dossier d’accueil de votre utilisateur.
Opérations au niveau du compte
Pour l’authentification par défaut :
provider "databricks" {
alias = "account"
}
Pour une configuration directe :
provider "databricks" {
alias = "account"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
}
Remplacez les espaces réservés retrieve- par votre propre implémentation afin de récupérer les valeurs auprès de la console ou d’un autre magasin de configuration, comme HashiCorp Vault. Consultez également le fournisseur de coffres. Dans cet exemple, vous pouvez définir account_id l’URL de la console de compte Azure Databricks.
Opérations au niveau de l’espace de travail
Pour l’authentification par défaut :
provider "databricks" {
alias = "workspace"
}
Pour une configuration directe :
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
}
Python
Avant d’exécuter votre code, vous devez exécuter la databricks auth login commande sous l’onglet CLI avec les options d’opérations d’espace de travail ou de compte. Ces commandes génèrent et cachent le jeton .databricks/token-cache.json OAuth requis dans le dossier d’accueil de votre utilisateur.
Opérations au niveau du compte
Pour l’authentification par défaut :
from databricks.sdk import AccountClient
a = AccountClient()
# ...
Pour une configuration directe :
from databricks.sdk import AccountClient
a = AccountClient(
host = retrieveAccountConsoleUrl(),
account_id = retrieveAccountId()
)
# ...
Remplacez les retrieve espaces réservés par votre propre implémentation pour récupérer les valeurs de la console ou d’un autre magasin de configuration, tel qu’Azure KeyVault.
Opérations au niveau de l’espace de travail
Pour l’authentification par défaut :
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# ...
Pour une configuration directe :
from databricks.sdk import WorkspaceClient
w = WorkspaceClient(host = retrieve_workspace_url())
# ...
Pour plus d’informations sur l’authentification auprès des outils et kits sdk Azure Databricks qui utilisent Python et qui implémentent l’authentification unifiée Databricks, consultez :
- Configurer le client Databricks Connect pour Python
- Configurer l’autorisation pour l’extension Databricks pour Visual Studio Code
- Authentification du SDK Databricks pour Python avec un compte ou un espace de travail Azure Databricks
Java
Avant d’exécuter votre code, vous devez exécuter la databricks auth login commande sous l’onglet CLI avec les options d’opérations d’espace de travail ou de compte. Ces commandes génèrent et cachent le jeton .databricks/token-cache.json OAuth requis dans le dossier d’accueil de votre utilisateur.
Opérations au niveau du compte
Pour l’authentification par défaut :
import com.databricks.sdk.AccountClient;
// ...
AccountClient a = new AccountClient();
// ...
Pour une configuration directe :
import com.databricks.sdk.AccountClient;
import com.databricks.sdk.core.DatabricksConfig;
// ...
DatabricksConfig cfg = new DatabricksConfig()
.setHost(retrieveAccountConsoleUrl())
.setAccountId(retrieveAccountId());
AccountClient a = new AccountClient(cfg);
// ...
Remplacez les retrieve espaces réservés par votre propre implémentation pour récupérer les valeurs de la console ou d’un autre magasin de configuration, tel qu’Azure KeyVault.
Opérations au niveau de l’espace de travail
Pour l’authentification par défaut :
import com.databricks.sdk.WorkspaceClient;
// ...
WorkspaceClient w = new WorkspaceClient();
// ...
Pour une configuration directe :
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’autorisation et l’authentification avec les outils et kits sdk Azure Databricks qui utilisent Java et qui implémentent l’authentification unifiée Databricks, consultez :
- Configurer le client Databricks Connect pour Scala (utilise le Kit de développement logiciel (SDK) Azure Databricks pour l’authentification)
- Authentifier le SDK Databricks pour Java avec votre compte ou espace de travail Azure Databricks
Allez
Avant d’exécuter votre code, vous devez exécuter la databricks auth login commande sous l’onglet CLI avec les options d’opérations d’espace de travail ou de compte. Ces commandes génèrent et cachent le jeton .databricks/token-cache.json OAuth requis dans le dossier d’accueil de votre utilisateur.
Opérations au niveau du compte
Pour l’authentification par défaut :
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Pour une configuration directe :
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
}))
// ...
Remplacez les retrieve espaces réservés par votre propre implémentation pour récupérer les valeurs de la console ou d’un autre magasin de configuration, tel qu’Azure KeyVault.
Opérations au niveau de l’espace de travail
Pour l’authentification par défaut :
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Pour une configuration directe :
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 SDK Databricks qui utilisent Go et qui implémentent l’Authentification unifiée du client Databricks, consultez Authentifier le SDK Databricks pour Go avec votre compte ou votre espace de travail Azure Databricks.
Générer manuellement des jetons d’accès OAuth U2M
Cette section concerne les utilisateurs travaillant avec des outils ou services tiers qui ne prennent pas en charge la norme d’authentification unifiée Databricks . Si vous devez générer, actualiser ou utiliser manuellement des jetons OAuth Azure Databricks pour l’authentification OAuth U2M, suivez les étapes décrites dans cette section.
Étape 1 : Générer un vérificateur de code et un défi
Pour générer manuellement des jetons d’accès OAuth U2M, commencez par créer un vérificateur de code et un défi de code correspondant. Vous allez utiliser le défi de l’étape 2 pour obtenir un code d’autorisation et le vérificateur à l’étape 3 pour échanger ce code pour un jeton d’accès.
Remarque
Suivez la norme OAuth PKCE :
- Le vérificateur de code est une chaîne aléatoire par chiffrement (43 à 128 caractères) à l’aide de caractères
A–Z,a–z,0–9.-._~ - Le défi de code est un hachage SHA256 codé en URL en Base64 du vérificateur.
Pour plus d’informations, consultez Demande d’autorisation.
Le script Python suivant génère un vérificateur et un défi. Bien que vous puissiez les utiliser plusieurs fois, Azure Databricks recommande de générer une nouvelle paire chaque fois que vous générez manuellement des jetons d’accès.
import hashlib, base64, secrets, string
# Allowed characters for the code verifier, per PKCE spec
allowed_chars = string.ascii_letters + string.digits + "-._~"
# Generate a secure code verifier (43–128 characters)
code_verifier = ''.join(secrets.choice(allowed_chars) for _ in range(64))
# Create the SHA256 hash of the code verifier
sha256_hash = hashlib.sha256(code_verifier.encode()).digest()
# Base64-url-encode the hash and strip any trailing '=' padding
code_challenge = base64.urlsafe_b64encode(sha256_hash).decode().rstrip("=")
# Output values
print(f"code_verifier: {code_verifier}")
print(f"code_challenge: {code_challenge}")
Étape 2 : Générer un code d’autorisation
Pour obtenir un jeton d’accès OAuth Azure Databricks, vous devez d’abord générer un code d’autorisation OAuth. Ce code expire immédiatement après l’utilisation. Vous pouvez générer le code au niveau du compte ou de l’espace de travail :
- Niveau du compte : Permet d’appeler les API REST au niveau du compte et au niveau de l’espace de travail sur tous les espaces de travail auxquels votre utilisateur peut accéder.
- Niveau de l’espace de travail : Permet d’appeler des API REST au sein d’un seul espace de travail.
Remarque
Ces exemples sont utilisés databricks-cli comme ID client. Si vous n’utilisez pas d’outil Azure Databricks intégré tel que l’interface CLI ou les kits SDK, vous devez activer une application OAuth personnalisée et l’utiliser client_id dans vos demandes. Consultez Activer ou désactiver des applications OAuth de partenaires.
Générer un code d’autorisation au niveau du compte
Dans votre navigateur, accédez à l’URL avec les remplacements suivants :
-
<account-id>: ID de votre compte Azure Databricks -
<redirect-url>: URI de redirection local (par exemple,http://localhost:8020) -
<state>: toute chaîne de texte brut pour valider la réponse -
<code-challenge>: Défi de code de 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-
Connectez-vous quand vous êtes invité à accéder à votre compte Azure Databricks.
Copiez le code d’autorisation à partir de la barre d’adresse de votre navigateur. Il s’agit de la valeur après
code=et avant&dans l’URL de redirection :http://localhost:8020/?code=dcod...7fe6&state=<state>Vérifiez que la valeur correspond à ce que vous avez fourni à l’origine
state. Si ce n’est pas le cas, ignorez le code.Continuez à générer un jeton d’accès au niveau du compte.
Générer un code d’autorisation au niveau de l’espace de travail
Dans votre navigateur, accédez à l’URL avec les remplacements suivants :
-
<databricks-instance>: Votre<databricks-instance>nom d’instance d’espace de travail Azure Databricks, par exempleadb-1234567890123456.7.azuredatabricks.net -
<redirect-url>: redirection locale (par exemple,http://localhost:8020) -
<state>: toute valeur de texte brut pour la validation de la réponse -
<code-challenge>: Chaîne de défi de 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-
Connectez-vous quand vous êtes invité à accéder à votre compte Azure Databricks.
Copiez le code d’autorisation à partir de la barre d’adresse de votre navigateur. Il s’agit de la valeur après
code=et avant&dans l’URL de redirection :http://localhost:8020/?code=dcod...7fe6&state=<state>Vérifiez que la valeur correspond à ce que vous avez fourni à l’origine
state. Si ce n’est pas le cas, ignorez le code.Continuez à générer un jeton d’accès au niveau de l’espace de travail.
Étape 3 : Échanger le code d’autorisation d’un jeton d’accès
Pour échanger le code d’autorisation d’un jeton d’accès OAuth Azure Databricks, choisissez le niveau approprié :
- Niveau du compte : Permet d’appeler à la fois les API REST au niveau du compte et au niveau de l’espace de travail sur tous les espaces de travail auquel votre utilisateur peut accéder.
- Niveau de l’espace de travail : Permet d’appeler des API REST au sein d’un seul espace de travail.
Générer un jeton d’accès au niveau du compte
Permet
curld’échanger le code d’autorisation au niveau du compte pour un jeton d’accès OAuth.Remplacez ce qui suit dans la requête :
-
<account-id>: ID de votre compte Azure Databricks -
<redirect-url>: URL de redirection de l’étape précédente -
<code-verifier>: vérificateur que vous avez généré précédemment -
<authorization-code>: code d’autorisation de l’étape précédente
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>"-
Copiez la valeur
access_tokende la réponse. Par exemple:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }Le jeton est valide pendant une heure.
Générer un jeton d’accès au niveau de l’espace de travail
Permet
curld’échanger le code d’autorisation au niveau de l’espace de travail pour un jeton d’accès OAuth.Remplacez ce qui suit dans la requête :
-
<databricks-instance>: Votre<databricks-instance>nom d’instance d’espace de travail Azure Databricks, par exempleadb-1234567890123456.7.azuredatabricks.net -
<redirect-url>: URL de redirection de l’étape précédente -
<code-verifier>: vérificateur que vous avez généré précédemment -
<authorization-code>: code d’autorisation au niveau de l’espace de travail
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>"-
Copiez la valeur
access_tokende la réponse. Par exemple:{ "access_token": "eyJr...Dkag", "refresh_token": "doau...f26e", "scope": "all-apis offline_access", "token_type": "Bearer", "expires_in": 3600 }Le jeton est valide pendant une heure.
Étape 4 : Appeler une API REST Azure Databricks
Utilisez le jeton d’accès pour appeler les API REST au niveau du compte ou de l’espace de travail, en fonction de son étendue. Pour appeler des API au niveau du compte, votre utilisateur Azure Databricks doit être administrateur de 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"