通过 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)

适用于文件系统操作

使用此帐户对 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 中执行操作的文章。