Аутентификация между службами в Azure Data Lake Storage 1-го поколения с использованием Python
В этой статье описывается, как использовать пакет SDK для Python для аутентификации между службами в Azure Data Lake Storage 1-го поколения. Дополнительные сведения об аутентификации пользователей в Azure Data Lake Storage 1-го поколения с помощью Python см. статье Аутентификация пользователей в Data Lake Storage 1-го поколения с использованием Python.
Предварительные требования
Python. Скачать Python можно здесь. В этой статье используется версия Python 3.6.2.
Подписка Azure. См. страницу бесплатной пробной версии Azure.
Создайте веб-приложение Microsoft Entra ID. Необходимо выполнить действия, описанные в статье Проверка подлинности между службами с помощью Data Lake Storage 1-го поколения с помощью Microsoft Entra ID.
Установка модулей
Для работы с Data Lake Storage 1-го поколения с использованием Python необходимо установить три модуля.
- Модуль
azure-mgmt-resource
, который включает в себя модули Azure для Active Directory и т. д. - Модуль
azure-mgmt-datalake-store
, который включает в себя операции по управлению учетной записью Data Lake Storage 1-го поколения. Дополнительные сведения см. в справочнике по модулю управления Azure Data Lake Storage 1-го поколения. - Модуль
azure-datalake-store
, который включает в себя операции с файловой системой Data Lake Storage 1-го поколения. Дополнительные сведения см. в справочнике по модулю файловой системы Azure Data Lake Store.
Чтобы установить модули, используйте следующие команды.
pip install azure-mgmt-resource
pip install azure-mgmt-datalake-store
pip install azure-datalake-store
Создание приложения Python
Для создания приложения Python используйте IDE по своему усмотрению, например mysample.py.
Добавьте следующий фрагмент кода для импорта необходимых модулей:
## 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.
Проверки подлинности через секрет клиента со взаимодействием между службами для управления учетными записями
Используйте этот фрагмент кода для проверки подлинности с помощью Microsoft Entra ID для операций управления учетными записями в Data Lake Storage 1-го поколения, таких как создание учетной записи Data Lake Storage 1-го поколения, удаление Data Lake Storage 1-го поколения учетная запись и т. д. Следующий фрагмент кода можно использовать для проверки подлинности приложения в неинтерактивном режиме с помощью секрета клиента для приложения или субъекта-службы существующего приложения 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)
Проверка подлинности между службами через секрет клиента для операций файловой системы
Используйте следующий фрагмент кода для проверки подлинности с помощью Microsoft Entra ID для операций файловой системы с Data Lake Storage 1-го поколения, таких как создание папки, отправка файла и т. д. Следующий фрагмент кода можно использовать для проверки подлинности приложения в неинтерактивном режиме с помощью секрета клиента для приложения или субъекта-службы. Используйте его с существующим приложением Microsoft Entra ID "Веб-приложение".
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)
Дальнейшие действия
В этой статье вы узнали, как использовать аутентификацию между службами, чтобы реализовать аутентификацию в Data Lake Storage 1-го поколения с использованием Python. Дополнительные сведения об использовании Python для работы с Data Lake Storage 1-го поколения см. в следующих статьях.