次の方法で共有


Azure Data Lake Storage Gen1 に対する Python を使用したサービス間認証

この記事では、Python SDK を使用して、Azure Data Lake Storage Gen1 に対するサービス間認証を行う方法について説明します。 Python を使用した Data Lake Store に対するエンド ユーザー認証については、「End-user authentication with Data Lake Storage Gen1 using Python」(Data Lake Storage Gen1 での Python を使用したエンドユーザー認証) を参照してください。

前提条件

モジュールをインストールする

Python を使用して Data Lake Storage Gen1 を操作するには、3 つのモジュールをインストールする必要があります。

モジュールをインストールするには、次のコマンドを使用します。

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

新しい Python アプリケーションを作成する

  1. 任意の IDE で、mysample.py などの新しい Python アプリケーションを作成します。

  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 に対する変更を保存します。

クライアント シークレットによるサービス間認証を使用したアカウント管理

Data Lake Storage Gen1 アカウントの作成や Data Lake Storage Gen1 アカウントの削除などの Data Lake Storage Gen1 に関するアカウント管理操作のために Microsoft Entra ID で認証する場合、このスニペットを使います。次のスニペットは、既存の 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)

クライアント シークレットによるサービス間認証を使用したファイルシステム操作

フォルダーの作成、ファイルのアップロードなど、Data Lake Storage Gen1 でのファイルシステム操作のために Microsoft Entra ID で認証する場合、次のスニペットを使います。次のスニペットは、アプリケーション/サービス プリンシパルのクライアント シークレットを使用して、アプリケーションを非対話的に認証するために使用できます。 これは、既存の 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 を使用する方法について説明した次の記事に進めるようになりました。