使用 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 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
    
  3. 将更改保存到 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 中执行操作的文章。