Dienst-zu-Dienst-Authentifizierung bei Azure Data Lake Storage Gen1 mithilfe von Python
In diesem Artikel erfahren Sie, wie Sie mithilfe des Python SDK die Authentifizierung zwischen Diensten bei Azure Data Lake Storage Gen1 durchführen. Informationen zur Authentifizierung von Endbenutzern bei Data Lake Storage Gen1 mithilfe von Python finden Sie unter Authentifizieren von Endbenutzern bei Data Lake Storage Gen1 mit Python.
Voraussetzungen
Python. Sie können Python hier herunterladen. In diesem Artikel wird Python 3.6.2 verwendet.
Ein Azure-Abonnement. Siehe Kostenlose Azure-Testversion.
Erstellen Sie eine Microsoft Entra ID "Web"-Anwendung. Sie müssen die Schritte unter Dienst-zu-Dienst-Authentifizierung mit Data Lake Storage Gen1 mithilfe von Microsoft Entra ID abgeschlossen haben.
Installieren der Module
Zum Verwenden von Data Lake Storage Gen1 mit Python müssen Sie drei Module installieren.
- Das Modul
azure-mgmt-resource
, in dem Azure-Module für Active Directory usw. enthalten sind. - Das Modul
azure-mgmt-datalake-store
, das die Kontoverwaltungsvorgänge für Data Lake Storage Gen1 enthält. Weitere Informationen zu diesem Modul finden Sie in der Referenz zum Verwaltungsmodul für Azure Data Lake Storage Gen1. - Das Modul
azure-datalake-store
, das die Dateisystemvorgänge für Data Lake Storage Gen1 enthält. Weitere Informationen zu diesem Modul finden Sie in der Referenz zum azure-datalake-store-Dateisystemmodul.
Verwenden Sie die folgenden Befehle, um die Module zu installieren:
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Erstellen einer neuen Python-Anwendung
Erstellen Sie in der IDE Ihrer Wahl eine neue Python-Anwendung, z.B. mysample.py.
Fügen Sie den folgenden Codeausschnitt hinzu, um die erforderlichen Module zu importieren:
## Use this for Azure AD authentication from msrestazure.azure_active_directory import AADTokenCredentials ## Required for Data Lake Storage Gen1 account management from azure.mgmt.datalake.store import DataLakeStoreAccountManagementClient from azure.mgmt.datalake.store.models import DataLakeStoreAccount ## Required for Data Lake Storage Gen1 filesystem management from azure.datalake.store import core, lib, multithread # Common Azure imports import adal from azure.mgmt.resource.resources import ResourceManagementClient from azure.mgmt.resource.resources.models import ResourceGroup ## Use these as needed for your application import logging, getpass, pprint, uuid, time
Speichern Sie Ihre Änderungen an „mysample.py“.
Dienst-zu-Dienst-Authentifizierung mit Clientgeheimnis für die Kontoverwaltung
Verwenden Sie diesen Codeausschnitt, um sich bei Microsoft Entra ID für Kontoverwaltungsvorgänge auf Data Lake Storage Gen1 zu authentifizieren, z. B. ein Data Lake Storage Gen1-Konto zu erstellen, ein Data Lake Storage Gen1 Konto usw. Der folgende Codeausschnitt kann verwendet werden, um Ihre Anwendung nicht interaktiv zu authentifizieren, indem Sie den geheimen Clientschlüssel für eine Anwendung/einen Dienstprinzipal einer vorhandenen Microsoft Entra ID "Web-App"-Anwendung verwenden.
authority_host_uri = 'https://login.microsoftonline.com'
tenant = '<TENANT>'
authority_uri = authority_host_uri + '/' + tenant
RESOURCE = 'https://management.core.windows.net/'
client_id = '<CLIENT_ID>'
client_secret = '<CLIENT_SECRET>'
context = adal.AuthenticationContext(authority_uri, api_version=None)
mgmt_token = context.acquire_token_with_client_credentials(RESOURCE, client_id, client_secret)
armCreds = AADTokenCredentials(mgmt_token, client_id, resource=RESOURCE)
Dienst-zu-Dienst-Authentifizierung mit Clientgeheimnis für Dateisystemvorgänge
Verwenden Sie den folgenden Codeausschnitt, um sich bei Microsoft Entra ID für Dateisystemvorgänge auf Data Lake Storage Gen1 zu authentifizieren, z. B. Ordner erstellen, Datei hochladen usw. Der folgende Codeausschnitt kann verwendet werden, um Ihre Anwendung nicht interaktiv zu authentifizieren, indem Sie den geheimen Clientschlüssel für eine Anwendung/einen Dienstprinzipal verwenden. Verwenden Sie dies mit einer vorhandenen Microsoft Entra ID "Web-App"-Anwendung.
tenant = '<TENANT>'
RESOURCE = 'https://datalake.azure.net/'
client_id = '<CLIENT_ID>'
client_secret = '<CLIENT_SECRET>'
adlCreds = lib.auth(tenant_id = tenant,
client_secret = client_secret,
client_id = client_id,
resource = RESOURCE)
Nächste Schritte
In diesem Artikel haben Sie erfahren, wie Sie die Authentifizierung zwischen Diensten verwenden, um sich mit Python bei Data Lake Storage Gen1 zu authentifizieren. In den folgenden Artikeln wird erörtert, wie Sie Python mit Data Lake Storage Gen1 verwenden.