Authentification avec des jetons d'accès personnels Databricks (hérité)
Les jetons d'accès personnels (PAT) Databricks vous permettent de vous authentifier auprès des Ressources et des APIs au niveau du workspace. Vous pouvez les stocker dans des variables d'environnement ou des profils de configuration Databricks. Chaque PAT est valide pour un seul workspace, et un utilisateur peut créer jusqu'à 600 PAT par workspace. Databricks révoque automatiquement les PAT qui n'ont pas été utilisés pendant 90 jours.
Dans la mesure du possible, Databricks recommande d'utiliser OAuth plutôt que des PAT pour l'authentification des comptes utilisateur, car OAuth offre une sécurité renforcée. Pour savoir comment s'authentifier avec un compte utilisateur Databricks à l'aide d'OAuth, consultez Autoriser l'accès des utilisateurs à Databricks avec OAuth.
Vous ne pouvez pas utiliser de jetons d'accès personnels pour automatiser les fonctionnalités au niveau du compte Databricks. Utilisez plutôt des jetons OAuth pour les utilisateurs administrateurs de compte Databricks ou des Service Principals. Pour plus d'informations, voir :
- Autoriser l'accès du Service Principal à Databricks avec OAuth
- Autoriser l'accès utilisateur à Databricks avec OAuth
Créer des jetons d'accès personnel pour les utilisateurs du workspace.
Pour créer un jeton d'accès personnel pour votre utilisateur du Workspace Databricks, procédez comme suit :
- Dans votre workspace Databricks, cliquez sur votre nom d'utilisateur dans la barre supérieure et sélectionnez Paramètres .
- Cliquez sur Développeur .
- À côté de **Jetons d'accès**, cliquez sur **Gérer**.
- Cliquez sur Générer un nouveau jeton .
- Saisissez un nom qui vous aide à identifier ce jeton plus tard.
- Définissez la durée de vie du jeton en jours. Consulter Définir la durée de vie maximale des nouveaux jetons d'accès personnels.
- Sélectionnez un type d'étendue et ajoutez des étendues d'API. Sélectionnez Outils de BI pour les outils qui se connectent aux warehouses Databricks SQL tels que Tableau ou Power BI, ou sélectionnez Autres APIs pour choisir les étendues manuellement. Voir les jetons d'accès personnels à étendue limitée.
- Pour activer le réglage automatique de la portée pour ce jeton, activez Jetons de réglage automatique de la portée . Le réglage automatique de la portée restreint automatiquement les portées du jeton aux APIs qu'il utilise, en appliquant la portée
all-apistemporairement pendant la période d'observation. Cette option n'apparaît que lorsqu'un administrateur a activé la version préliminaire du réglage automatique de la portée pour votre Workspace, et le réglage automatique de la portée s'applique uniquement aux jetons dont la durée de vie est supérieure à 30 jours. Consultez la page Réglage automatique de la portée pour les jetons d'accès personnels. - Cliquez sur Générer .
- Copiez le jeton affiché dans un endroit sécurisé, puis cliquez sur OK . Enregistrez le jeton en toute sécurité et ne le partagez pas. Si vous le perdez, vous devez créer un nouveau jeton.
Si vous ne pouvez pas créer ou utiliser de jetons, l'administrateur de votre Workspace pourrait avoir désactivé les jetons ou ne vous a pas accordé l'autorisation. Contactez l'administrateur de votre Workspace ou ce qui suit :
- Activer ou désactiver l'authentification par jeton d'accès personnel pour le Workspace
- Autorisations du jeton d'accès personnel
Jetons d'accès personnels délimités
Les jetons d’accès personnels à étendue restreignent les autorisations d’un jeton à des opérations d’API spécifiques. Au lieu d'accorder un accès complet au Workspace, vous attribuez un ou plusieurs périmètres d'API, tels que sql, unity-catalog ou scim, qui limitent les Opérations de l'API REST que le jeton peut appeler.
Les jetons avec le champ d'application authentication peuvent créer de nouveaux jetons avec n'importe quel champ d'application. Accordez ce champ d'application uniquement aux jetons qui doivent gérer d'autres jetons.
Pour créer un jeton délimité dans l’interface utilisateur du Workspace, sélectionnez un type de portée et ajoutez des portées d’API lorsque vous générez un nouveau jeton. Sélectionnez Outils de BI pour les outils qui se connectent aux Databricks SQL warehouse, tels que Tableau ou Power BI, ou sélectionnez Autres APIs pour choisir les portées manuellement.
Pour une liste complète des portées et de leurs opérations d’API associées, consultez API scopes.
Réglage automatique de la portée pour les jetons d'accès personnels
Le réglage automatique de la portée réduit automatiquement les autorisations d’un jeton aux seules APIs qu’il utilise activement. Databricks observe l'utilisation de l'API des jetons sur une période de 30 jours, puis applique les portées déduites. Le réglage automatique de la portée s'exécute une fois par jeton. Pendant la période d'observation, le jeton conserve un accès complet au workspace (la portée all-apis). Databricks envoie un e-mail de rappel 7 jours avant l'application et un e-mail d'application lorsque les portées déduites sont appliquées.
Contrôles de réglage automatique de la portée
- Workspace preview (admin-controlled): An admin enables or disables the auto-scoping preview for the whole workspace from the account console or workspace Previews page. See Manage Databricks previews.
- Paramètre par jeton (
autoscope_enabled) : lorsque l'aperçu est activé, chaque jeton s'active ou se désactive individuellement au moment de la création.
Le réglage automatique de la portée s'applique uniquement aux jetons dont la durée de vie dépasse 30 jours. Cela inclut les nouveaux jetons créés avec le réglage automatique de la portée activé et les jetons existants de longue durée. Pour un jeton éligible existant, la période d'observation de 30 jours start lorsqu'un administrateur active l'aperçu. Databricks applique les portées déduites à la fin de cette période et envoie un rappel par e-mail 7 jours avant l'application, soit le même calendrier que pour un jeton à portée automatique nouvellement créé.
Refuser le réglage automatique de la portée
- Un jeton, avant application : définissez le jeton sur des périmètres spécifiques dans l'interface utilisateur du Workspace ( Settings > Developer > Access Tokens > Manage , puis cliquez sur Update token ) ou avec l'API Token (consultez Update the scopes of a personal access token). La définition de périmètres spécifiques arrête définitivement le réglage automatique de la portée pour ce jeton. Rétablir le jeton sur le périmètre
all-apis(un tableauscopesvide) est une opération sans effet et n’arrête pas le réglage automatique de la portée. Pour conserver un jeton doté d’un accès completall-apisqui ne fait jamais l’objet d’un réglage automatique de la portée, créez un nouveau jeton en désactivant le réglage automatique de la portée. - L’ensemble du workspace : demandez à un administrateur de désactiver l’aperçu de délimitation automatique sur la page Previews . Consultez Gérer les aperçus Databricks.
After enforcement completes, auto-scoping does not run again for that token, so you can set its scopes freely, including back to all-apis.
Le refus de la nouvelle interface utilisateur du Workspace ne fonctionne que pour un jeton dont vous êtes propriétaire. Pour refuser le jeton d’un Service Principal, définissez plutôt ses périmètres avec la requête PATCH /api/2.0/token/{token_id_sha256}.
To review auto-scoping status and inferred scopes for your tokens, see Review token auto-scoping status.
Créez des jetons d'accès personnels pour les services principaux.
Un administrateur de workspace crée le PAT initial pour un service principal, puis le service principal peut créer des jetons supplémentaires pour lui-même.
Étape 1 : Créez un PAT pour votre Service Principal
En tant qu'administrateur de Workspace, créez un jeton d'accès personnel Databricks pour le compte d'un Service Principal :
-
Configurez l'authentification pour la CLI Databricks si elle n'est pas déjà configurée.
-
Obtenez l'ID d'application pour le Service Principal Databricks :
- Cliquez sur votre nom d'utilisateur dans la barre supérieure, puis sur Paramètres .
- Sous Workspace admin , cliquez sur Identité et accès > Gérer (à côté de Service Principals ).
- Cliquez sur le nom du service principal Databricks pour ouvrir sa page de paramètres.
- Sous l'onglet Configurations , notez la valeur de l' ID de l'application .
-
Exécutez la commande suivante pour générer le jeton d'accès :
Bashdatabricks token-management create-obo-token \
<application-id> \
--lifetime-seconds <lifetime-seconds> \
-p <profile-name>Remplacez les valeurs suivantes :
<application-id>: L'ID de l'application du Service Principal Databricks.<lifetime-seconds>: durée de vie du jeton en secondes, par exemple, 86400 pour 1 jour. La valeur par default est le maximum du Workspace (généralement 730 jours).<profile-name>: Profil de configuration avec les informations d'authentification. La valeur default estDEFAULT.
-
Dans la réponse, copiez le
token_value, qui est le jeton d'accès pour votre Service Principal Databricks. Enregistrez le jeton en toute sécurité et ne le partagez pas. Si vous le perdez, vous devez créer un nouveau jeton.
Si vous ne pouvez pas créer ou utiliser de jetons, l'administrateur de votre Workspace pourrait avoir désactivé les jetons ou ne vous a pas accordé l'autorisation. Contactez l'administrateur de votre Workspace ou ce qui suit :
- Activer ou désactiver l'authentification par jeton d'accès personnel pour le Workspace
- Autorisations du jeton d'accès personnel
Étape 2 : Créer des PAT supplémentaires pour votre service principal
Utilisez le PAT existant pour créer des jetons supplémentaires pour le Service Principal.
-
Exécutez la commande suivante pour générer un jeton d'accès :
Bashdatabricks tokens create \
--lifetime-seconds <lifetime-seconds> \
-p <profile-name>Remplacez les valeurs suivantes :
<lifetime-seconds>: durée de vie du jeton en secondes, par exemple, 86400 pour 1 jour. La valeur par default est le maximum du Workspace (généralement 730 jours).<profile-name>: Profil de configuration avec les informations d'authentification. La valeur default estDEFAULT.
-
Copiez le
token_valuede la réponse, qui est le jeton d'accès de votre Service Principal Databricks. Enregistrez le jeton en toute sécurité et ne le partagez pas. Si vous le perdez, vous devez créer un nouveau jeton.
Si vous ne pouvez pas créer ou utiliser de jetons, l'administrateur de votre Workspace pourrait avoir désactivé les jetons ou ne vous a pas accordé l'autorisation. Contactez l'administrateur de votre Workspace ou ce qui suit :
- Activer ou désactiver l'authentification par jeton d'accès personnel pour le Workspace
- Autorisations du jeton d'accès personnel
Effectuer l'authentification par jeton d'accès personnel
Pour configurer l'authentification par jeton d'accès personnel Databricks, définissez les variables d'environnement associées, les champs .databrickscfg, les champs Terraform ou les champs Config :
- L'hôte Databricks, spécifié comme l'URL du Workspace Databricks cible, par exemple
https://dbc-a1b2345c-d6e7.cloud.databricks.com. - Le jeton d'accès personnel Databricks, pour le compte utilisateur Databricks ou le Service Principal Databricks.
Pour effectuer l'authentification par jeton d'accès personnel Databricks, intégrez ce qui suit dans votre code, en fonction de l'outil ou du SDK participant :
- Environment
- Profile
- CLI
- Connect
Pour utiliser des variables d'environnement pour un type d'authentification Databricks spécifique avec un outil ou un SDK, consultez Autoriser l'accès aux ressources Databricks ou la documentation de l'outil ou du SDK. Voir aussi Variables et champs d'environnement pour l'authentification unifiée et la Priorité de la méthode d'authentification.
Définissez les variables d'environnement suivantes :
DATABRICKS_HOST, défini sur l'URL du Workspace Databricks, par exemplehttps://dbc-a1b2345c-d6e7.cloud.databricks.com.DATABRICKS_TOKEN, défini sur la chaîne de jetons.
Créez ou identifiez un profil de configuration 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 SDK, consultez Autoriser l'accès aux ressources Databricks ou la documentation de l'outil ou du SDK. Voir aussi Variables d’environnement et champs pour l’authentification unifiée et la Priorité de la méthode d’authentification.
Définissez les valeurs suivantes dans votre fichier .databrickscfg. Dans ce cas, l’hôte est l’ URL du workspace Databricks, par exemple https://dbc-a1b2345c-d6e7.cloud.databricks.com:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
token = <token>
Au lieu de définir manuellement les valeurs, vous pouvez utiliser l'interface CLI de Databricks pour les définir à la place :
La procédure suivante utilise le CLI Databricks pour créer un profil de configuration Databricks avec le nom DEFAULT. Si vous avez déjà un profil de configuration DEFAULT, cette procédure écrase votre profil de configuration DEFAULT existant.
Pour vérifier si vous avez déjà un profil de configuration DEFAULT, et pour afficher les paramètres de ce profil s'il existe, utilisez l'interface de ligne de commande Databricks pour exécuter la commande databricks auth env --profile DEFAULT.
Pour créer un profil de configuration avec un nom autre que DEFAULT, remplacez la partie DEFAULT de --profile DEFAULT dans la commande databricks configure suivante par un nom différent pour le profil de configuration.
-
Utilisez le CLI Databricks pour créer un profil de configuration Databricks nommé
DEFAULTqui utilise l'authentification par jeton d'accès personnel Databricks. Pour ce faire, exécutez la commande suivante :Bashdatabricks configure --profile DEFAULT -
Pour l'invite Hôte Databricks , saisissez l'URL de votre instance de workspace Databricks, par exemple
https://dbc-a1b2345c-d6e7.cloud.databricks.com. -
Pour l'invite Jeton d'accès personnel , entrez le jeton d'accès personnel Databricks de votre Workspace.
Pour l'interface CLI Databricks, exécutez la commande databricks configure. Aux invites, saisissez les paramètres suivants :
- L'hôte Databricks, spécifié comme l'URL du Workspace Databricks cible, par exemple
https://dbc-a1b2345c-d6e7.cloud.databricks.com. - Le jeton d'accès personnel Databricks, pour le compte utilisateur Databricks ou le Service Principal Databricks.
Pour plus d'informations, veuillez consulter Authentification par jeton d'accès personnel (hérité).
L'authentification par jeton d'accès personnel Databricks est prise en charge sur les versions Databricks Connect suivantes :
- Pour Python, Databricks Connect pour Databricks Runtime 13,3 LTS et versions ultérieures.
- Pour Scala, Databricks Connect pour Databricks Runtime 13.3 LTS et versions ultérieures.
Pour Databricks Connect, utilisez la CLI Databricks pour définir les valeurs dans votre fichier .databrickscfg, pour les Opérations au niveau du Workspace Databricks, comme spécifié dans la section Profil.
La procédure suivante crée un profil de configuration Databricks nommé DEFAULT, qui écrase tout profil DEFAULT existant. Pour vérifier si un profil DEFAULT existe, exécutez databricks auth env --profile DEFAULT. S'il existe, utilisez un nom de profil différent.
-
Exécutez la commande suivante pour créer un profil de configuration Databricks nommé
DEFAULTqui utilise l’authentification par jeton d'accès personnel.Bashdatabricks configure \
--configure-cluster \
--profile DEFAULT -
Pour l'invite Hôte Databricks , saisissez l'URL de votre instance de workspace Databricks, par exemple
https://dbc-a1b2345c-d6e7.cloud.databricks.com. -
Pour l'invite **Jeton d'accès personnel**, saisissez le jeton d'accès personnel de votre workspace.
-
Dans la liste des clusters disponibles, sélectionnez le cluster Databricks cible dans votre Workspace. Vous pouvez saisir n'importe quelle partie du nom d'affichage du cluster pour filtrer la liste des clusters disponibles.
Utilisez l'API REST Databricks pour émettre des jetons d'accès personnels
Databricks fournit un Endpoint REST /api/2.0/token/create pour émettre des PAT. Consultez la section Créer un jeton utilisateur pour obtenir des détails sur l'API.
Dans l’exemple suivant, définissez ces valeurs :
<databricks-instance>: l'URL de votre workspace Databricks. Par exemple,dbc-abcd1234-5678.cloud.databricks.com.<your-existing-access-token>: Un PAT (chaîne de caractères) valide existant qui a les autorisations de créer de nouveaux jetons.<lifetime-seconds>: Durée de vie du jeton en secondes.<scopes>: une liste de champs d’application à attribuer au jeton, ou un tableau vide ([]) pour accorder un accès complet au workspace (le champ d’applicationall-apis). Consultez Jetons d’accès personnels à périmètre restreint.
curl -X POST https://<databricks-instance>/api/2.0/token/create \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"lifetime_seconds": <lifetime-seconds>,
"scopes": [
"sql",
"authentication"
],
"autoscope_enabled": true
}'
En cas de succès, cela donne une charge utile de réponse similaire à :
{
"token_value": "<your-newly-issued-pat>",
"token_info": {
"token_id": "<token-id>",
"creation_time": <creation-timestamp>,
"expiry_time": <expiry-timestamp>,
"comment": "<comment>",
"scopes": ["authentication", "sql"],
"last_accessed_time": 0
}
}
Fournissez le nouveau jeton de la réponse dans l'en-tête d'autorisation des appels ultérieurs aux API REST de Databricks. Par exemple :
# This example uses a simple GET. For POST or other REST verbs, you may need to provide additional parameters.
curl -X GET "https://<databricks-instance>/api/2.0/<path-to-endpoint>" \
-H "Authorization: Bearer <your-new-pat>"
import requests
headers = {
'Authorization': 'Bearer <your-new-pat>'
}
# This example is for an HTTP GET operation.
response = requests.get('https://<databricks-instance>/api/2.0/<path-to-endpoint>', headers=headers)
Mettre à jour la portée d'un jeton d'accès personnel
Si un jeton doté d'un champ d'application ne dispose pas du champ d'application requis pour un appel d'API, la requête échoue avec une erreur indiquant le champ d'application manquant. Pour mettre à jour les champs d'application d'un jeton, utilisez l'Endpoint REST /api/2.0/token/<token_id>. Le jeton d'appel doit avoir le champ d'application authentication, ce qui permet de gérer d'autres jetons. Utilisez le champ update_mask pour spécifier les champs de jeton à mettre à jour.
curl -X PATCH https://<databricks-instance>/api/2.0/token/<token_id> \
-H "Authorization: Bearer <your-existing-access-token>" \
-H "Content-Type: application/json" \
-d '{
"token": {
"scopes": ["sql", "unity-catalog"]
},
"update_mask": "scopes"
}'
Pour accorder à un token un accès complet au workspace (le scope all-apis), définissez scopes sur un tableau vide ("scopes": []). La chaîne littérale all-apis n'est pas une valeur de portée acceptée.
Databricks recommande d'attribuer des portées spécifiques au lieu d'accorder l'accès all-apis. Voir Réglage automatique de la portée pour les jetons d'accès personnels.
Les modifications de portée peuvent prendre jusqu'à dix minutes pour se propager.
Pour afficher tous les périmètres disponibles, utilisez GET /api/2.0/token-scopes.