通过 Python 使用 Azure Data Lake Storage Gen1 进行最终用户身份验证

本文介绍如何使用 Python SDK 进行 Azure Data Lake Storage Gen1 最终用户身份验证。 最终用户身份验证可以进一步拆分为两个类别:

  • 无需多重身份验证的最终用户身份验证
  • 使用多重身份验证的最终用户身份验证

本文将讨论这两个选项。 若要了解使用 Python 的 Data Lake Storage Gen1 服务到服务身份验证,请参阅使用 Python 进行 Data Lake Storage Gen1 的服务到服务身份验证

先决条件

安装模块

若要通过 Python 使用 Data Lake Storage Gen1,需要安装三个模块。

使用以下命令安装这些模块。

pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store

创建新的 Python 应用程序

  1. 在所选的 IDE 中创建新的 Python 应用程序,例如 mysample.py

  2. 添加以下代码片段以导入所需的模块

    ## 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
    
  3. 保存对 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)

用于文件系统操作

使用此方法可对 Data Lake Storage Gen1 帐户的文件系统操作进行 Microsoft Entra ID 身份验证。 可以使用以下代码片段通过多重身份验证在应用程序中进行身份验证。 为现有 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 中执行操作的文章。