Aller au contenu principal

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.

important

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 :

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 :

  1. Dans votre workspace Databricks, cliquez sur votre nom d'utilisateur dans la barre supérieure et sélectionnez Paramètres .
  2. Cliquez sur Développeur .
  3. À côté de **Jetons d'accès**, cliquez sur **Gérer**.
  4. Cliquez sur Générer un nouveau jeton .
  5. Saisissez un nom qui vous aide à identifier ce jeton plus tard.
  6. 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.
  7. 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.
  8. 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-apis temporairement 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.
  9. Cliquez sur Générer .
  10. 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 :

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.

attention

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 tableau scopes vide) 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 complet all-apis qui 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.

remarque

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 :

  1. Configurez l'authentification pour la CLI Databricks si elle n'est pas déjà configurée.

  2. Obtenez l'ID d'application pour le Service Principal Databricks :

    1. Cliquez sur votre nom d'utilisateur dans la barre supérieure, puis sur Paramètres .
    2. Sous Workspace admin , cliquez sur Identité et accès > Gérer (à côté de Service Principals ).
    3. Cliquez sur le nom du service principal Databricks pour ouvrir sa page de paramètres.
    4. Sous l'onglet Configurations , notez la valeur de l' ID de l'application .
  3. Exécutez la commande suivante pour générer le jeton d'accès :

    Bash
    databricks 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 est DEFAULT.
  4. 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 :

É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.

  1. Exécutez la commande suivante pour générer un jeton d'accès :

    Bash
    databricks 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 est DEFAULT.
  2. Copiez le token_value de 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 :

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 :

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 exemple https://dbc-a1b2345c-d6e7.cloud.databricks.com.
  • DATABRICKS_TOKEN, défini sur la chaîne de jetons.

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’application all-apis). Consultez Jetons d’accès personnels à périmètre restreint.
Bash
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 à :

JSON
{
"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 :

Bash
# 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>"
Python
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.

Bash
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.

remarque

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.