Azure Data Lake Storage Gen1 による Python を使用したエンドユーザー認証
この記事では、Python SDK を使用して、Azure Data Lake Storage Gen1 に対するエンドユーザー認証を行う方法について説明します。 エンドユーザー認証は、2 つのカテゴリに分割できます。
- 多要素認証なしのエンドユーザー認証
- 多要素認証によるエンドユーザー認証
この記事では、両方のオプションについて説明します。 Python を使用した Data Lake Storage Gen1 によるサービス間認証については、「Service-to-service authentication with Data Lake Storage Gen1 using Python (Python を使用した Data Lake Storage Gen1 によるサービス間認証)」をご覧ください。
前提条件
Python。 Python は、ここからダウンロードできます。 この記事では、Python 3.6.2 を使用します。
Azure サブスクリプション。 Azure 無料試用版の取得に関するページを参照してください。
Microsoft Entra ID "ネイティブ" アプリケーションを作成します。 Microsoft Entra IDを使用したData Lake Storage Gen1によるエンドユーザー認証の手順を完了している必要があります。
モジュールをインストールする
Python を使用して Data Lake Storage Gen1 を操作するには、3 つのモジュールをインストールする必要があります。
-
azure-mgmt-resource
モジュール。これには、Active Directory 用の Azure モジュールなどが含まれています。 -
azure-mgmt-datalake-store
モジュール。これには、Azure Data Lake Storage Gen1 アカウント管理操作が含まれています。 このモジュールについて詳しくは、Azure Data Lake Storage Gen1 管理モジュール リファレンスをご覧ください。 -
azure-datalake-store
モジュール。これには、Azure 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 で、などの新しい Python アプリケーションを作成し
mysample.py
ます。必要なモジュールをインポートするには、次のスニペットを追加します
## 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
変更をに保存
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)
ファイルシステム操作を行う場合
これは、Data Lake Storage Gen1 アカウントに対するファイルシステム操作のMicrosoft Entra IDで認証するために使用します。 次のスニペットは、多要素認証を使用してアプリケーションを認証するために使用できます。 既存のMicrosoft Entra IDネイティブ アプリケーションに対して、以下の値を指定します。
adlCreds = lib.auth(tenant_id='FILL-IN-HERE', resource = 'https://datalake.azure.net/')
多要素認証なしのエンドユーザー認証
これは非推奨です。 詳細については、Python SDK を使用した Azure 認証に関するページを参照してください。
次のステップ
この記事では、Azure Data Lake Storage Gen1 に対し、Python からエンドユーザー認証を使って認証を行う方法について説明しました。 これで、Python を使用して Azure Data Lake Storage Gen1 を使用する方法について説明した次の記事に進めるようになりました。