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, activez Jetons de réglage automatique de la portée . Le réglage automatique de la portée ajuste automatiquement la portée des jetons en fonction de l'utilisation. La portée all-apis est appliquée temporairement pendant la période d'observation. Vous pouvez toujours ajouter des portées manuellement à tout moment. Consultez la section 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
L'auto-scoping réduit automatiquement les autorisations d'un jeton aux seules APIs qu'il utilise activement. Databricks observe l'utilisation de l'API sur une période de 30 jours et applique les portées inférées au jeton. La portée automatique s'applique aux nouveaux jetons de longue durée (30 jours ou plus) et aux jetons existants avec accès à toutes les API. Databricks envoie un e-mail de rappel 7 jours avant l'application et un e-mail d'application lorsque les périmètres sont appliqués.
Pour vous désinscrire, définissez manuellement les étendues du jeton dans l'interface utilisateur du workspace ( Paramètres > Développeur > Jetons d'accès > Gérer , puis cliquez sur Mettre à jour le jeton ) ou en utilisant PATCH /api/2.0/token/{token_id_sha256}. Une fois que vous définissez les étendues manuellement, l'ajustement automatique de la portée est définitivement désactivé pour ce jeton.
Pour examiner l'état de l'auto-scoping et les étendues inférées pour vos jetons, consultez Surveiller et révoquer les jetons dans votre workspace.
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>Liste des périmètres à attribuer au jeton. Consultez les jetons d'accès personnels à périmètre limité.
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"
}'
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.