本文介绍如何使用 Python SDK 执行 Azure Data Lake Storage Gen1 服务到服务身份验证。 有关使用 Python 进行 Data Lake Storage Gen1 的最终用户身份验证,请参阅 使用 Python 通过 Data Lake Storage Gen1 进行最终用户身份验证。
先决条件
Python。 可以从 此处下载 Python。 本文使用的是 Python 3.6.2。
Azure 订阅。 请参阅 “获取 Azure 免费试用版”。
创建 Microsoft Entra ID“Web”应用程序。 必须已完成使用 Microsoft Entra ID 对 Data Lake Storage Gen1 进行服务对服务身份验证的步骤。
安装模块
若要通过 Python 使用 Data Lake Storage Gen1,需要安装三个模块。
-
azure-mgmt-resource
模块,包括用于 Active Directory 的 Azure 模块,等等。 -
azure-mgmt-datalake-store
模块,包括 Data Lake Storage Gen1 帐户管理操作。 有关本模块的详细信息,请参阅 Azure Data Lake Storage Gen1 管理模块参考。 -
azure-datalake-store
模块,其中包括 Data Lake Storage Gen1 文件系统操作。 有关此模块的详细信息,请参阅 azure-datalake-store Filesystem 模块参考。
使用以下命令安装这些模块。
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
创建新的 Python 应用程序
在所选的 IDE 中,创建新的 Python 应用程序,例如 ,mysample.py。
添加以下代码片段以导入所需的模块:
## 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
将更改保存到 mysample.py。
服务间身份验证与客户端密钥,用于账户管理
使用此代码片段向 Microsoft Entra ID 进行身份验证,以在 Data Lake Storage Gen1 上执行帐户管理操作(例如,创建 Data Lake Storage Gen1 帐户、删除 Data Lake Storage Gen1 帐户等)。可以使用以下代码片段通过现有 Microsoft Entra ID“Web 应用”应用程序的应用程序/服务主体的客户端机密以非交互方式对应用程序进行身份验证。
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)
使用客户端密钥进行文件系统操作的服务对服务身份验证
使用以下代码片段向 Microsoft Entra ID 进行身份验证,以在 Data Lake Storage Gen1 上执行文件系统操作(例如,创建文件夹、上传文件等)。可以使用以下代码片段通过应用程序/服务主体的客户端机密对应用程序进行非交互式身份验证。 请将此用于现有的 Microsoft Entra ID“Web 应用程序”应用。
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)
后续步骤
本文介绍了如何通过 Python 使用服务到服务身份验证进行 Data Lake Storage Gen1 身份验证。 接下来,可以查看以下介绍如何使用 Python 在 Data Lake Storage Gen1 中执行操作的文章。