使用 Python 进行 Azure Data Lake Storage Gen1 服务到服务身份验证
本文介绍如何使用 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 文件系统模块参考。
使用以下命令安装这些模块。
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 中执行操作的文章。