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