Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können eine Databricks-App aufrufen, die eine HTTP-API (z. B. eine FastAPI- oder Gradio-App) mithilfe der OAuth 2.0 Bearer-Tokenauthentifizierung verfügbar macht. Diese Methode funktioniert aus Ihrer lokalen Entwicklungsumgebung, externen Anwendungen und anderen Azure Databricks-Apps.
Hinweis
Diese Methode gilt nur für Apps, die APIs oder Endpunkte verfügbar machen (über Routen zugänglich /api/ ). Für Apps, die nur eine Benutzeroberfläche oder Hintergrundverarbeitung bereitstellen, können Sie keine Verbindung mit der Tokenauthentifizierung herstellen.
Anforderungen
Um eine Verbindung mit einer Databricks-App mithilfe der Tokenauthentifizierung herzustellen, müssen Sie die folgenden Anforderungen erfüllen:
- Die App muss mindestens einen API-Endpunkt verfügbar machen, auf den über
/api/Routen zugegriffen werden kann. - Sie müssen über
CAN USEBerechtigung für die App verfügen. Siehe Konfigurieren von Berechtigungen für eine Databricks-App. - Sie müssen ein Azure Databricks-Zugriffstoken mithilfe einer der unterstützten Authentifizierungsmethoden generieren können.
Authentifizierungsmethoden
Hinweis
Sie können eine Databricks-App nicht direkt mit einem Azure Entra-ID-Token aufrufen. Für den Tokenverbund ist ein clientseitiger Tokenaustauschschritt erforderlich, der von Azure Databricks nicht serverseitig ausgeführt wird. Um Azure Entra-ID-Token für die Authentifizierung zu verwenden, müssen Sie sie zuerst für OAuth-Token austauschen. Siehe Authentifizieren mit einem Identitätsanbietertoken.
Wählen Sie die Authentifizierungsmethode aus, die Ihrem Verbindungsszenario entspricht:
Lokale Entwicklung
Verwenden Sie zum Herstellen einer Verbindung aus Ihrer lokalen Entwicklungsumgebung die Azure Databricks CLI oder SDKs mit Ihren Benutzeranmeldeinformationen.
Melden Sie sich mit der CLI an:
databricks auth login --host https://<workspace-url> --profile my-envAzure Databricks empfiehlt die Verwendung der OAuth-Benutzer-zu-Computer-Authentifizierung (U2M).
Generieren eines Zugriffstokens:
Befehlszeilenschnittstelle (CLI)
databricks auth token --profile my-envPython
from databricks.sdk.core import Config config = Config(profile="my-env") token = config.oauth_token().access_token
Externe Anwendungen
Verwenden Sie für den programmgesteuerten Zugriff von externen Anwendungen die Dienstprinzipalauthentifizierung mit Computer-zu-Computer-Anmeldeinformationen .For programmatic access from external applications, use service principal authentication with machine-to-machine (M2M) credentials. Siehe Autorisieren des Dienstprinzipalzugriffs auf Azure Databricks mit OAuth.
Erstellen Sie einen Dienstprinzipal, und rufen Sie die Client-ID und den geheimen Schlüssel ab. Siehe Dienstprinzipale.
Generieren Sie ein Zugriffstoken mithilfe des 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()
Aus anderen Databricks-Apps
Wenn Sie eine Verbindung von einer Databricks-App zu einer anderen herstellen, bearbeitet die App die Authentifizierung automatisch mithilfe des zugewiesenen Dienstprinzipals.
from databricks.sdk import WorkspaceClient
import requests
# No explicit credentials needed, uses app's service principal
wc = WorkspaceClient()
headers = wc.config.authenticate()
Angeben von OAuth-Bereichen für die Benutzerautorisierung
Wenn Sie die Azure Databricks CLI oder SDKs mit einheitlicher Authentifizierung verwenden, wie im vorherigen Abschnitt gezeigt, fordern die Tools automatisch den grundlegenden all-apis Bereich an. Wenn Ihre App jedoch die Benutzerautorisierung verwendet, müssen Sie manuell ein Zugriffstoken mit zusätzlichen Bereichen mithilfe eines benutzerdefinierten OAuth-Flusses anfordern.
Stellen Sie sicher, dass Ihr Zugriffstoken die Bereiche enthält, die in derBenutzerautorisierung> konfiguriert sind. Wenn das Token nicht über die erforderlichen Bereiche verfügt, können Anforderungen mit 401- oder 403-Fehlern fehlschlagen.
Die folgende Anforderung fordert z. B. explizit ein Zugriffstoken mit den sql, file.files, und dashboards.genie Bereichen an:
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"
Vollständige Anweisungen finden Sie unter Manuelles Generieren von OAuth U2M-Zugriffstoken.
Senden von Anforderungen an die App
Wenn Sie die API-Endpunkte Ihrer App aufrufen, schließen Sie das Bearer-Token in den Autorisierungsheader ein, und ersetzen <your-endpoint> Sie ihn durch den tatsächlichen API-Pfad Ihrer App:
CURL
curl "https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>" \
-H "Authorization: Bearer <YOUR_TOKEN>"
Python mit Anforderungen
import requests
response = requests.get(
"https://<app-name>-<id>.<region>.databricksapps.com/api/<your-endpoint>",
headers={"Authorization": f"Bearer {token}"}
)
Python mit 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
)
Sicherheitsüberlegungen
Wenn Sie eine Verbindung mit Apps aus Ihrer lokalen Umgebung herstellen, befolgen Sie die folgenden bewährten Sicherheitsmethoden:
- Nie hartcodieren Sie Zugriffstoken in Ihrem Quellcode. Verwenden Sie Umgebungsvariablen oder sichere Anmeldeinformationsspeicher.
- Aktualisieren Sie Token regelmäßig, um Sicherheitsrisiken zu minimieren, wenn sie kompromittiert werden.
- Vermeiden Sie die Protokollierung von Zugriffstoken oder vertraulichen Daten in Ihren Anwendungsprotokollen.
Problembehandlung
Wenn beim Herstellen einer Verbindung mit Ihrer App auf einem lokalen Computer Probleme auftreten, probieren Sie diese Lösungen aus.
Authentifizierungsfehler (401 Fehler)
Überprüfen Sie Folgendes:
- Ihr Token ist gültig (Ausführen
databricks auth token --profile my-env) - Ihr Profil ist ordnungsgemäß konfiguriert mit
databricks auth login - Das Token ist nicht abgelaufen.
- Ihr Token enthält die erforderlichen OAuth-Bereiche. CLI- und SDK-Tools bieten nur grundlegende Bereiche wie
all-apis, die möglicherweise nicht für die Benutzerautorisierung ausreichen.
Berechtigung verweigert (403 Fehler)
Überprüfen Sie Folgendes:
- Sie verfügen
CAN USEüber die Berechtigung für die App. - Ihr Token enthält die erforderlichen OAuth-Bereiche. Unzureichende Scopes können auch dann 403-Fehler verursachen, wenn gültige Berechtigungen vorliegen.
App nicht gefunden (404 Fehler)
Überprüfen Sie Folgendes:
- Die ID- und Arbeitsbereichs-URL sind korrekt.
- Die App wird bereitgestellt und ausgeführt.
- Der Endpunktpfad ist in der App vorhanden.
Probleme mit der Netzwerkkonnektivität
Überprüfen Sie Folgendes:
- Ihr Netzwerk ermöglicht ausgehende HTTPS-Verbindungen
- Auf die
*.databricksapps.comDomäne kann über Ihr Netzwerk zugegriffen werden.
Überprüfen Sie außerdem, ob Ihre Organisation einen Proxy verwendet, der eine Konfiguration erfordert.
Weitere Ressourcen
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Handbuch: Verbindung vom lokalen Computer herstellen
- Anleitung: Verbinden von externen Anwendungen
- Cookbook: Verbinden von anderen Apps
- Konfigurieren von Berechtigungen für eine Databricks-App
- Einrichten ihres Databricks-Apps-Arbeitsbereichs und ihrer Entwicklungsumgebung
- Authentifizierung für databricks CLI
- Einheitliche Databricks-Authentifizierung