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.
Vous pouvez appeler une application Databricks qui expose une API HTTP (par exemple, une application FastAPI ou Gradio) à l’aide de l’authentification par jeton du porteur OAuth 2.0. Cette méthode fonctionne à partir de votre environnement de développement local, d’applications externes et d’autres applications Azure Databricks.
Note
Cette méthode s’applique uniquement aux applications qui exposent des API ou des points de terminaison (accessibles à l’aide /api/ d’itinéraires). Pour les applications qui fournissent uniquement une interface utilisateur ou un traitement en arrière-plan, vous ne pouvez pas vous connecter à l’aide de l’authentification par jeton.
Spécifications
Pour vous connecter à une application Databricks à l’aide de l’authentification par jeton, vous devez répondre aux exigences suivantes :
- L’application doit exposer au moins un point de terminaison d’API accessible à l’aide des itinéraires
/api/. - Vous devez disposer d'une autorisation
CAN USEsur l’application. Consultez Configurer des autorisations pour une application Databricks. - Vous devez être en mesure de générer un jeton d’accès Azure Databricks à l’aide de l’une des méthodes d’authentification prises en charge.
Méthodes d’authentification
Note
Vous ne pouvez pas appeler une application Databricks directement à l’aide d’un jeton d’ID Azure Entra. La fédération de jetons nécessite une étape d’échange de jeton côté client, qu’Azure Databricks n’effectue pas côté serveur. Pour utiliser les jetons d’ID Azure Entra pour l’authentification, vous devez d’abord les échanger pour les jetons OAuth. Consultez S'authentifier avec un jeton de fournisseur d'identité.
Choisissez la méthode d’authentification qui correspond à votre scénario de connexion :
Développement local
Pour vous connecter à partir de votre environnement de développement local, utilisez l’interface CLI Azure Databricks ou les kits sdk avec vos informations d’identification utilisateur.
Connectez-vous avec l’interface CLI :
databricks auth login --host https://<workspace-url> --profile my-envAzure Databricks recommande d’utiliser l’authentification utilisateur-machine OAuth (U2M).
Générez un jeton d’accès :
Interface de ligne de commande (CLI)
databricks auth token --profile my-envPython
from databricks.sdk.core import Config config = Config(profile="my-env") token = config.oauth_token().access_token
Applications externes
Pour l’accès par programmation à partir d’applications externes, utilisez l’authentification du principal de service avec les informations d’identification de machine à machine (M2M). Consultez Autoriser l’accès au principal de service à Azure Databricks avec OAuth.
Créez un principal de service et obtenez l’ID client et le secret. Consultez Principaux de service.
Générez un jeton d’accès à l’aide du Kit de développement logiciel (SDK) Azure Databricks :
from databricks.sdk import WorkspaceClient import requests # Option 1: Explicit credentials wc = WorkspaceClient( host="https://<workspace-url>", client_id="<service-principal-client-id>", client_secret="<service-principal-client-secret>" ) # Option 2: Environment variables # Set DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET wc = WorkspaceClient() # Generate Bearer token headers = wc.config.authenticate()
À partir d’autres applications Databricks
Lorsque vous vous connectez à partir d’une application Databricks à une autre, l’application gère automatiquement l’authentification à l’aide de son principal de service affecté.
from databricks.sdk import WorkspaceClient
import requests
# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()
Spécifier des étendues OAuth pour l’autorisation utilisateur
Lorsque vous utilisez l’interface CLI Azure Databricks ou les kits SDK avec l’authentification unifiée, comme indiqué dans la section précédente, les outils demandent automatiquement l’étendue de base all-apis . Toutefois, si votre application utilise l’autorisation utilisateur, vous devez demander manuellement un jeton d’accès avec des étendues supplémentaires à l’aide d’un flux OAuth personnalisé.
Assurez-vous que votre jeton d’accès inclut les étendues configurées dans Modifier>l’autorisation utilisateur. Si le jeton n’a pas les étendues requises, les demandes peuvent échouer avec des erreurs 401 ou 403.
Par exemple, la requête suivante demande explicitement un jeton d’accès avec les étendues sql, file.files, et dashboards.genie :
curl --request POST \
https://<databricks-instance>/oidc/v1/token \
--data "client_id=databricks-cli" \
--data "grant_type=authorization_code" \
--data "redirect_uri=<redirect-url>" \
--data "code_verifier=<code-verifier>" \
--data "code=<authorization-code>" \
--data "scope=sql+file.files+dashboards.genie"
Pour obtenir des instructions complètes, consultez Générer manuellement des jetons d’accès OAuth U2M.
Envoyer des demandes à l’application
Lorsque vous appelez les points de terminaison d’API de votre application, incluez le jeton du porteur dans l’en-tête d’autorisation et remplacez <your-endpoint> par le chemin d’accès d’API réel de votre application :
CURL
curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
-H "Authorization: Bearer <YOUR_TOKEN>"
Python avec des requêtes
import requests
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers={"Authorization": f"Bearer {token}"}
)
Python avec le Kit de développement logiciel (SDK)
from databricks.sdk import WorkspaceClient
import requests
wc = WorkspaceClient()
headers = wc.config.authenticate()
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers=headers
)
Considérations relatives à la sécurité
Lorsque vous vous connectez à des applications à partir de votre environnement local, suivez les bonnes pratiques de sécurité suivantes :
- Ne codez jamais en dur les jetons d’accès dans votre code source. Utilisez des variables d’environnement ou des dépôts d'identifiants sécurisés.
- Actualisez régulièrement les jetons pour réduire les risques de sécurité s’ils sont compromis.
- Évitez de journaliser les jetons d’accès ou les données sensibles dans les journaux de votre application.
Résolution des problèmes
Si vous rencontrez des problèmes lors de la connexion à votre application à partir d’un ordinateur local, essayez ces solutions.
Échecs d’authentification (erreurs 401)
Vérifiez les éléments suivants :
- Votre jeton est valide (exécuter
databricks auth token --profile my-env) - Votre profil est correctement configuré avec
databricks auth login - Le jeton n’a pas expiré
- Votre jeton inclut les étendues OAuth requises. Les outils CLI et SDK fournissent uniquement des étendues de base telles que
all-apis, qui peuvent ne pas suffire pour l'autorisation utilisateur.
Autorisation refusée (erreurs 403)
Vérifiez les éléments suivants :
- Vous disposez
CAN USEdes droits sur cette application - Votre jeton inclut les étendues OAuth requises. Les étendues insuffisantes peuvent entraîner des erreurs 403 même avec des autorisations valides.
Application introuvable (erreurs 404)
Vérifiez les éléments suivants :
- L’ID et l’URL de l’espace de travail sont correctes
- L’application est déployée et en cours d’exécution
- Le chemin d’accès au point de terminaison existe dans l’application
Problèmes de connectivité réseau
Vérifiez les éléments suivants :
- Votre réseau autorise les connexions HTTPS sortantes
- Le
*.databricksapps.comdomaine est accessible à partir de votre réseau
En outre, vérifiez si votre organisation utilise un proxy nécessitant une configuration.
Ressources supplémentaires
Pour plus d’informations, consultez les ressources suivantes :
- Livre de recettes : Se connecter à partir d’un ordinateur local
- Livre de recettes : Se connecter à partir d’applications externes
- Livre de recettes : Se connecter à partir d’autres applications
- Configurer des autorisations pour une application Databricks
- Configurer votre espace de travail Databricks Apps et votre environnement de développement
- Authentification pour l’interface CLI Databricks
- Authentification unifiée Databricks