Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile chiamare un'app Databricks che espone un'API HTTP (ad esempio, un'app FastAPI o Gradio) utilizzando l'autenticazione tramite token Bearer OAuth 2.0. Questo metodo funziona dall'ambiente di sviluppo locale, dalle applicazioni esterne e da altre app di Azure Databricks.
Annotazioni
Questo metodo si applica solo alle app che espongono API o endpoint (accessibili tramite /api/ route). Per le app che forniscono solo un'interfaccia utente o un'elaborazione in background, non è possibile connettersi usando l'autenticazione basata su token.
Requisiti
Per connettersi a un'app Databricks usando l'autenticazione basata su token, è necessario soddisfare i requisiti seguenti:
- L'app deve esporre almeno un endpoint API accessibile tramite
/api/route. - È necessario disporre
CAN USEdell'autorizzazione per l'applicazione. Vedere Configurare le autorizzazioni per un'app Databricks. - È necessario essere in grado di generare un token di accesso di Azure Databricks usando uno dei metodi di autenticazione supportati.
Metodi di autenticazione
Annotazioni
Non è possibile chiamare un'app Databricks direttamente usando un token ID Entra di Azure. La federazione dei token richiede un passaggio di scambio di token sul lato client, che Azure Databricks non esegue il lato server. Per usare i token ID entra di Azure per l'autenticazione, è prima necessario scambiarli per i token OAuth. Consulta l'autenticazione con un token del fornitore di identità.
Scegliere il metodo di autenticazione corrispondente allo scenario di connessione:
Sviluppo locale
Per la connessione dall'ambiente di sviluppo locale, usare l'interfaccia della riga di comando di Azure Databricks o gli SDK con le credenziali utente.
Accedi con il CLI:
databricks auth login --host https://<workspace-url> --profile my-envAzure Databricks consiglia di usare l'autenticazione da utente a computer (U2M) OAuth.
Generare un token di accesso:
CLI
databricks auth token --profile my-envPitone
from databricks.sdk.core import Config config = Config(profile="my-env") token = config.oauth_token().access_token
Applicazioni esterne
Per l'accesso programmatico da applicazioni esterne, usare l'autenticazione dei principali di servizio con credenziali inter-macchina (M2M). Vedere Autorizzare l'accesso dell'entità servizio ad Azure Databricks con OAuth.
Creare un principale del servizio e ottenere l'ID client e la chiave segreta. Vedi Principali del servizio.
Generare un token di accesso usando Azure Databricks SDK:
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()
Da altre app di Databricks
Quando ci si connette da un'app Databricks a un'altra, l'app gestisce automaticamente l'autenticazione usando l'entità servizio assegnata.
from databricks.sdk import WorkspaceClient
import requests
# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()
Specificare gli ambiti OAuth per l'autorizzazione utente
Quando si usa l'interfaccia della riga di comando di Azure Databricks o gli SDK con l'autenticazione unificata, come illustrato nella sezione precedente, gli strumenti richiedono automaticamente l'ambito di base all-apis . Tuttavia, se l'app usa l'autorizzazione utente, è necessario richiedere manualmente un token di accesso con ambiti aggiuntivi usando un flusso OAuth personalizzato.
Assicurarsi che il token di accesso includa gli ambiti configurati in Modifica>autorizzazione utente. Se il token non ha gli ambiti necessari, le richieste possono avere esito negativo con errori 401 o 403.
Ad esempio, la richiesta seguente richiede esplicitamente un token di accesso con gli ambiti sql, file.files e 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"
Per istruzioni complete, vedere Generare manualmente token di accesso U2M OAuth.
Inviare richieste all'app
Quando chiami gli endpoint API della tua app, includi il token Bearer nell'intestazione Autorizzazione e sostituisci <your-endpoint> con il percorso API effettivo della tua app.
CURL
curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
-H "Authorization: Bearer <YOUR_TOKEN>"
Python con richieste
import requests
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers={"Authorization": f"Bearer {token}"}
)
Python con 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
)
Considerazioni sulla sicurezza
Quando ci si connette alle app dall'ambiente locale, seguire queste procedure consigliate per la sicurezza:
- Non incorporare mai i token di accesso nel codice sorgente. Usare variabili di ambiente o archivi di credenziali sicure.
- Aggiornare regolarmente i token per ridurre al minimo i rischi di sicurezza in caso di compromissione.
- Evitare di registrare i token di accesso o i dati sensibili nei log dell'applicazione.
Risoluzione dei problemi
Se si verificano problemi durante la connessione all'app da un computer locale, provare queste soluzioni.
Errori di autenticazione (errori 401)
Verificare quanto segue:
- Il token è valido (eseguire
databricks auth token --profile my-env) - Il profilo è configurato correttamente con
databricks auth login - Il token non è scaduto
- Il token include gli ambiti OAuth necessari. Gli strumenti CLI e SDK forniscono solo ambiti di base come
all-apis, che potrebbero non essere sufficienti per l'autorizzazione dell'utente.
Autorizzazione negata (errori 403)
Verificare quanto segue:
- Hai
CAN USEil permesso per l'app - Il token include gli ambiti OAuth necessari. Gli ambiti di autorizzazione insufficienti possono causare errori 403 anche con permessi validi.
App non trovata (errori 404)
Verificare quanto segue:
- L'ID e l'URL dell'area di lavoro sono corretti
- L'applicazione è stata distribuita ed è in esecuzione
- Il percorso dell'endpoint è presente nell'app
Problemi relativi alla connettività di rete
Verificare quanto segue:
- La rete consente connessioni HTTPS in uscita
- Il
*.databricksapps.comdominio è accessibile dalla rete
Controllare inoltre se l'organizzazione usa un proxy che richiede la configurazione.
Risorse aggiuntive
Per altre informazioni, vedere le risorse seguenti:
- Cookbook: Connettersi dal computer locale
- Cookbook: Connettersi da applicazioni esterne
- Cookbook: Connettersi da altre app
- Configurare le autorizzazioni per un'app Databricks
- Configurare l'area di lavoro e l'ambiente di sviluppo di Databricks Apps
- Autenticazione per l'interfaccia della riga di comando di Databricks
- Autenticazione unificata di Databricks