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。 Python は、ここからダウンロードできます。 この記事では、Python 3.6.2 を使用します。
Azure サブスクリプション。 Azure 無料試用版の取得に関するページを参照してください。
Microsoft Entra ID "Web" アプリケーションを作成します。 「Microsoft Entra IDを使用したData Lake Storage Gen1によるサービス間認証」の手順を完了している必要があります。
モジュールをインストールする
Python を使用して Data Lake Storage Gen1 を操作するには、3 つのモジュールをインストールする必要があります。
-
azure-mgmt-resource
モジュール。これには、Active Directory 用の Azure モジュールなどが含まれています。 -
azure-mgmt-datalake-store
モジュール。これには、Data Lake Storage Gen1 アカウント管理操作が含まれています。 このモジュールについて詳しくは、Azure Data Lake Storage Gen1 管理モジュール リファレンスをご覧ください。 -
azure-datalake-store
モジュール。これには、Data Lake Storage Gen1 ファイル システム操作が含まれています。 このモジュールについて詳しくは、azure-datalake-store ファイルシステム モジュール リファレンスをご覧ください。
モジュールをインストールするには、次のコマンドを使用します。
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
新しい Python アプリケーションを作成する
任意の IDE で、mysample.py などの新しい Python アプリケーションを作成します。
次のスニペットを追加して、必要なモジュールをインポートします。
## 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
mysample.py に対する変更を保存します。
クライアント シークレットによるサービス間認証を使用したアカウント管理
このスニペットを使用して、Data Lake Storage Gen1 アカウントの作成、Data Lake Storage Gen1の削除など、Data Lake Storage Gen1でのアカウント管理操作のMicrosoft Entra IDで認証します。アカウントなど次のスニペットは、既存の "Web App" アプリケーションのアプリケーション/サービス プリンシパルのクライアント シークレットを使用して、アプリケーションを非対話形式で認証するために使用Microsoft Entra ID。
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 を使用する方法について説明した次の記事に進めるようになりました。