通过 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“本机”应用程序。 必须已完成使用 Microsoft Entra ID 对 Data Lake Storage Gen1 进行最终用户身份验证中的步骤。
安装模块
若要通过 Python 使用 Data Lake Storage Gen1,需要安装三个模块。
-
azure-mgmt-resource
模块,包括用于 Active Directory 的 Azure 模块,等等。 -
azure-mgmt-datalake-store
模块,包括 Azure Data Lake Storage Gen1 帐户管理操作。 有关此模块的详细信息,请参阅 Azure Data Lake Storage Gen1 管理模块参考。 -
azure-datalake-store
模块,包括 Azure 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 Azure Data Lake Storage Gen1 account management from azure.mgmt.datalake.store import DataLakeStoreAccountManagementClient from azure.mgmt.datalake.store.models import DataLakeStoreAccount ## Required for Azure 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, pprint, uuid, time
保存对
mysample.py
所做的更改。
使用多重身份验证的最终用户身份验证
适用于帐户管理
使用以下代码片段对 Data Lake Storage Gen1 帐户上的帐户管理操作Microsoft Entra ID进行身份验证。 可以使用以下代码片段通过多重身份验证在应用程序中进行身份验证。 为现有Microsoft Entra ID本机应用程序提供以下值。
authority_host_url = "https://login.microsoftonline.com"
tenant = "FILL-IN-HERE"
authority_url = authority_host_url + '/' + tenant
client_id = 'FILL-IN-HERE'
redirect = 'urn:ietf:wg:oauth:2.0:oob'
RESOURCE = 'https://management.core.windows.net/'
context = adal.AuthenticationContext(authority_url)
code = context.acquire_user_code(RESOURCE, client_id)
print(code['message'])
mgmt_token = context.acquire_token_with_device_code(RESOURCE, code, client_id)
armCreds = AADTokenCredentials(mgmt_token, client_id, resource = RESOURCE)
适用于文件系统操作
使用此帐户对 Microsoft Entra ID 进行身份验证,以便对 Data Lake Storage Gen1 帐户执行文件系统操作。 可以使用以下代码片段通过多重身份验证在应用程序中进行身份验证。 为现有Microsoft Entra ID本机应用程序提供以下值。
adlCreds = lib.auth(tenant_id='FILL-IN-HERE', resource = 'https://datalake.azure.net/')
无需多重身份验证的最终用户身份验证
此方法已弃用。 有关详细信息,请参阅使用 Python SDK 的 Azure 身份验证。
后续步骤
本文介绍了如何使用 Python 通过最终用户身份验证进行 Azure Data Lake Storage Gen1 身份验证。 接下来,可以查看以下介绍如何使用 Python 在 Azure Data Lake Storage Gen1 中执行操作的文章。