Authentifizierung des Zugriffs auf Azure Databricks-Ressourcen

Um auf eine Azure Databricks-Ressource mit den Databricks CLI- oder REST-APIs zuzugreifen, müssen Clients sich mit einem Azure Databricks-Konto mit der erforderlichen Autorisierung für den Zugriff auf die Ressource authentifizieren. Um einen Databricks-CLI-Befehl sicher auszuführen oder eine Databricks-API-Anforderung aufzurufen, die autorisierten Zugriff auf ein Konto oder einen Arbeitsbereich erfordert, müssen Sie ein Zugriffstoken basierend auf gültigen Azure Databricks-Kontoanmeldedaten bereitstellen. In diesem Artikel werden die Authentifizierungsoptionen behandelt, um diese Anmeldedaten bereitzustellen und den Zugriff auf einen Azure Databricks-Arbeitsbereich oder ein Konto zu autorisieren.

In der folgenden Tabelle sind die Authentifizierungsmethoden aufgeführt, die für Ihr Azure Databricks-Konto verfügbar sind.

Azure Databricks-Authentifizierungsmethoden

Da Azure Databricks-Tools und -SDKs mit einer oder mehreren unterstützten Azure Databricks-Authentifizierungsmethoden funktionieren, können Sie die beste Authentifizierungsmethode für Ihren Anwendungsfall auswählen. Ausführliche Informationen finden Sie in der Tool- oder SDK-Dokumentation in Entwicklungstools.

Methode Beschreibung Anwendungsfall
OAuth für Dienstprinzipale (OAuth M2M) Kurzlebige OAuth-Token für Dienstprinzipale. Unbeaufsichtigte Authentifizierungsszenarien, z. B. vollständig automatisierte und CI/CD-Workflows.
OAuth für Benutzer (OAuth U2M) Kurzlebige OAuth-Token für Benutzer. Szenarien für die besuchte Authentifizierung, wo Sie Ihren Webbrowser verwenden, um sich bei Azure Databricks in Echtzeit zu authentifizieren, wenn Sie dazu aufgefordert werden.
Persönliche Zugriffstoken (PAT) Kurzlebige oder langlebige Token für Benutzer oder Dienstprinzipale. Szenarien, in denen Ihr Ziel-Tool OAuth nicht unterstützt.
Authentifizierung von von Azure verwalteten Identitäten Microsoft Entra ID-Token Azure verwaltete Identitäten. Verwendung nur mit Azure-Ressourcen, die verwaltete Identitäten unterstützen, z. B. virtuelle Azure-Computer.
Microsoft Entra ID-Dienstprinzipalauthentifizierung Microsoft Entra ID-Token für Microsoft Entra ID-Dienstprinzipale. Nur mit Azure-Ressourcen verwenden, die Microsoft Entra ID-Tokens unterstützen und keine verwalteten Identitäten unterstützen, wie z. B. Azure DevOps.
Azure CLI-Authentifizierung Microsoft Entra ID-Token für Benutzer oder Microsoft Entra ID-Dienstprinzipale. Verwendung zur Authentifizierung des Zugriffs bei Azure-Ressourcen und Azure Databricks mithilfe der Azure CLI.
Microsoft Entra ID-Benutzer*in Authentifizierung Microsoft Entra ID-Token für Benutzer. Verwendung nur mit Azure-Ressourcen, die nur Microsoft Entra-ID-Token unterstützen. Databricks empfiehlt nicht, Microsoft Entra ID-Token für Azure Databricks-Benutzer*innen manuell zu erstellen.

Welchen Authentifizierungsansatz sollte ich auswählen?

Sie haben zwei Möglichkeiten, einen Databricks-CLI-Befehl oder API-Aufruf für den Zugriff auf Ihre Azure Databricks-Ressourcen zu authentifizieren:

  • Verwenden Sie ein Azure Databricks-Benutzerkonto (als „Benutzer-zu-Computer-Authentifizierung“ oder U2M bezeichnet). Wählen Sie diese Option nur aus, wenn Sie einen CLI-Befehl von Azure Databricks aus Ihrer lokalen Client-Umgebung ausführen oder eine Azure Databricks-API-Anforderung aus Code aufrufen, den Sie besitzen und exklusiv ausführen.
  • Verwenden Sie einen Azure Databricks-Dienstprinzipal (sogenannte „Machine-to-Machine“-Authentifizierung oder M2M). Wählen Sie diese Option aus, wenn andere Ihren Code ausführen (insbesondere im Falle einer App), oder wenn Sie Automatisierung erstellen, die Azure Databricks-CLI-Befehle oder -API-Anforderungen aufruft.
  1. Wenn Sie Azure Databricks verwenden, können Sie auch einen MS Entra-Dienstprinzipal verwenden, um den Zugriff auf Ihr Azure Databricks-Konto oder Ihren Arbeitsbereich zu authentifizieren. Databricks empfiehlt jedoch, einen Databricks-Dienstprinzipal mit unserer bereitgestellten OAuth-Authentifizierung über die MS Entra-Dienstprinzipal-Authentifizierung zu verwenden. Grund dafür ist, dass die Databricks-Authentifizierung OAuth-Zugriffstoken nutzt, die stabiler sind, wenn die Authentifizierung nur mit Azure Databricks erfolgt.

Weitere Informationen zur Verwendung eines MS Entra-Dienstprinzipals für den Zugriff auf Databricks-Ressourcen finden Sie unter MS Entra-Dienstprinzipal-Authentifizierung.

Sie müssen auch über ein Zugriffstoken verfügen, das mit dem Konto verknüpft ist, das Sie zum Aufrufen der Databricks-API verwenden. Dieses Token kann entweder ein OAuth 2.0-Zugriffstoken oder ein persönliches Zugriffstoken (persönlicher Zugriffstoken, PAT) sein. Azure Databricks empfiehlt jedoch dringend, OAuth über PATs für die Autorisierung zu verwenden, da OAuth-Token standardmäßig automatisch aktualisiert werden und die direkte Verwaltung des Zugriffstokens nicht erforderlich ist, um Ihre Sicherheit gegen Token-Hijacking und unerwünschten Zugriff zu verbessern. Da OAuth das Zugriffstoken für Sie erstellt und verwaltet, stellen Sie eine OAuth-Token-Endpunkt-URL, eine Client-ID und ein Geheimnis bereit, die Sie aus Ihrem Azure Databricks-Arbeitsbereich generieren, anstatt eine Token-Zeichenkette selbst direkt bereitzustellen. PATs bergen das Risiko, dass langlebige Token Egress-Möglichkeiten bieten, wenn sie nicht regelmäßig überprüft und rotiert oder widerrufen werden, oder wenn die Token- Zeichenketten und Passwörter nicht sicher für Ihre Entwicklungsumgebung verwaltet werden.

Wie wird OAuth für die Authentifizierung bei Azure Databricks verwendet?

Azure Databricks bietet eine einheitliche Clientauthentifizierung, die Sie bei der Authentifizierung unterstützt, indem es einen Standardsatz von Umgebungsvariablen verwendet, die Sie auf bestimmte Anmeldedatenwerte festlegen können. Dadurch können Sie einfacher und sicherer arbeiten, da diese Umgebungsvariablen spezifisch für die Umgebung sind, die die Azure Databricks-CLI-Befehle ausführt oder Azure Databricks-APIs aufruft.

  • Bei der Benutzerkontoauthentifizierung (Benutzer-zu-Computer-Authentifizierung) wird Azure Databricks-OAuth für Sie mit der einheitlichen Databricks-Clientauthentifizierung behandelt, solange die Tools und SDKs ihren Standard implementieren. Wenn dies nicht der Fall ist, können Sie manuell ein OAuth-Codeüberprüfungs- und Abfragepaar generieren, um sie direkt in Ihren Azure Databricks CLI-Befehlen und API-Anforderungen zu verwenden. Siehe Schritt 1: Generieren eines Paars für OAuth-Codeüberprüfung und -Codeabfrage.
  • Für die Dienstprinzipal-Authentifizierung (Machine-to-Machine)-Authentifizierung erfordert Azure Databricks-OAuth, dass die aufrufende Funktion Client-Anmeldedaten zusammen mit einer Token-Endpunkt-URL bereitstellt, in der die Anforderung autorisiert werden kann. (Dies wird für Sie gehandhabt, wenn Sie Azure Databricks-Tools und -SDKs verwenden, die die einheitliche Clientauthentifizierung von Databricks unterstützen.) Die Anmeldedaten enthalten eine eindeutige Client-ID und einen geheimen Clientschlüssel. Der Client, bei dem es sich um den Databricks-Dienstprinzipal handelt, der Ihren Code ausführt, muss Databricks-Arbeitsbereichen zugewiesen werden. Nachdem Sie den Arbeitsbereichen den Dienstprinzipal zugewiesen haben, auf die er zugreifen wird, erhalten Sie eine Client-ID und einen geheimen Clientschlüssel, den Sie mit bestimmten Umgebungsvariablen festlegen.

Dies sind die folgenden Umgebungsvariablen:

  • DATABRICKS_HOST: Diese Umgebungsvariable wird auf die URL Ihrer Azure Databricks-Kontokonsole (http://accounts.cloud.databricks.com) oder Ihrer Azure Databricks-Arbeitsbereichs-URL (https://{workspace-id}.cloud.databricks.com) festgelegt. Wählen Sie einen Host-URL-Typ basierend auf dem Typ der Operationen aus, die Sie in Ihrem Code ausführen werden. Wenn Sie insbesondere Azure Databricks-CLI-Befehle auf Kontoebene oder REST-API-Anforderungen verwenden, legen Sie diese Variable auf Ihre Azure Databricks-Konto-URL fest. Wenn Sie Azure Databricks-CLI-Befehle auf Arbeitsbereichsebene oder REST-API-Anforderungen verwenden, verwenden Sie Ihre Azure Databricks-Arbeitsbereichs-URL.
  • DATABRICKS_ACCOUNT_ID: Wird für Azure Databricks Kontooperationen verwendet. Dies ist Ihre Azure Databricks-Konto-ID. Zum Abrufen siehe Auffinden Ihrer Konto-ID.
  • DATABRICKS_CLIENT_ID: (nur M2M OAuth) Die Client-ID, die Ihnen beim Erstellen des Dienstprinzipals zugewiesen wurde.
  • DATABRICKS_CLIENT_SECRET: (nur M2M OAuth) Der geheime Clientschlüssel, den Sie beim Erstellen des Dienstprinzipals generiert haben.

Sie können diese direkt oder über die Verwendung eines Databricks-Konfigurationsprofils (.databrickscfg) auf Ihrem Client-Computer festlegen.

Um ein OAuth-Zugriffstoken zu verwenden, muss Ihr Azure Databricks-Arbeitsbereich- oder Kontoadministrator Ihrem Benutzerkonto oder Dienstprinzipal die CAN USE-Berechtigung für die Konto- und Arbeitsbereichsfeatures erteilt haben, auf die Ihr Code zugreift.

Weitere Informationen zum Konfigurieren der OAuth-Autorisierung für Ihren Client und zur Überprüfung von Cloud-Anbieterspezifischen Autorisierungsoptionen finden Sie unter Einheitliche Client-Authentifizierung.

Authentifizierung für Dienste und Tools von Drittanbietern

Wenn Sie Code schreiben, der auf Dienste, Tools oder SDKs von Drittanbietern zugreift, müssen Sie die vom Drittanbieter bereitgestellten Authentifizierungs- und Autorisierungsmechanismen verwenden. Wenn Sie jedoch einem Drittanbietertool, SDK oder Dienst Zugriff auf Ihre Azure Databricks-Konto- oder Arbeitsbereichsressourcen gewähren müssen, bietet Databricks folgende Unterstützung:

Azure Databricks-Konfigurationsprofile

Ein Azure Databricks-Konfigurationsprofil enthält Einstellungen und weitere Informationen, die Azure Databricks für die Authentifizierung benötigt. Azure Databricks-Konfigurationsprofile werden in lokalen Client-Dateien gespeichert, die Ihre Tools, SDKs, Skripte und Anwendungen verwenden können. Die Datei des Standardkonfigurationsprofils heißt .databrickscfg. Weitere Informationen finden Sie unter Azure Databricks-Konfigurationsprofile.