Использование управляемого удостоверения для доступа к Azure Data Manager для энергетики из других служб Azure
В этой статье описывается, как получить доступ к плоскости данных или плоскости управления Azure Data Manager для энергетики из других служб Microsoft Azure с помощью управляемого удостоверения.
Существует потребность в таких службах, как Функции Azure, чтобы иметь возможность использовать Azure Data Manager для API энергетики. Это взаимодействие позволяет использовать лучшие возможности нескольких служб Azure.
Например, можно написать сценарий в Функции Azure для приема данных в Azure Data Manager для энергетики. В этом сценарии следует предположить, что Функции Azure является исходной службой, а Azure Data Manager for Energy является целевой службой.
В этой статье описаны пять основных шагов по настройке Функции Azure для доступа к Azure Data Manager для энергетики.
Обзор управляемых удостоверений
Управляемое удостоверение из идентификатора Microsoft Entra позволяет приложению легко получить доступ к другим защищенным ресурсам Microsoft Entra. Удостоверение управляется платформой Azure и не требует создания или смены секретов. Любая служба Azure, которая хочет получить доступ к плоскости управления Azure data Manager для энергетики или плоскости данных для любой операции, может использовать управляемое удостоверение для этого.
Существует два типа управляемых удостоверений:
- Назначаемые системой управляемые удостоверения привязаны к созданному ресурсу жизненный цикл.
- Управляемые удостоверения, назначаемые пользователем, можно использовать в нескольких ресурсах.
Дополнительные сведения об управляемых удостоверениях см. в статье Что такое управляемые удостоверения для ресурсов Azure?.
В настоящее время другие службы могут подключаться к Azure Data Manager для энергетики с помощью управляемого удостоверения, назначаемого системой или назначаемого пользователем. Однако Azure Data Manager для энергетики не поддерживает назначаемые системой управляемые удостоверения.
В этом сценарии вы будете использовать управляемое удостоверение, назначаемое пользователем, в Функции Azure для вызова API плоскости данных в Azure Data Manager для энергетики.
Необходимые компоненты
Прежде чем приступать к подключению, создайте следующие ресурсы:
Функция Azure на основе Python с помощью портал Azure или командной строки
Шаг 1. Получение идентификатора объекта
Чтобы получить идентификатор объекта для удостоверения, назначаемого пользователем, который получит доступ к API Azure Data Manager для энергетики:
- Войдите на портал Azure.
- Перейдите к управляемому удостоверению и выберите " Обзор".
- В разделе Essentials обратите внимание на значение идентификатора объекта (субъекта).
Шаг 2. Получение идентификатора приложения
Получите идентификатор приложения удостоверения, назначаемого пользователем, с помощью идентификатора объекта:
- В портал Azure перейдите к идентификатору Microsoft Entra.
- В меню слева выберите Корпоративные приложения.
- В поле поиска по имени приложения или идентификатору объекта введите идентификатор объекта.
- Для приложения, отображающегося в результатах, обратите внимание на значение идентификатора приложения.
Шаг 3. Добавление управляемого удостоверения, назначаемого пользователем, в Функции Azure
- В портал Azure перейдите к функции Azure.
- В разделе Параметры учетной записи выберите элемент Удостоверение.
- Перейдите на вкладку Назначаемое пользователем и нажмите Добавить.
- Выберите существующее управляемое удостоверение, назначаемое пользователем, и нажмите кнопку "Добавить". Затем вы вернеесь на назначенную пользователем вкладку.
Шаг 4. Добавление идентификатора приложения в группы прав
Затем добавьте идентификатор приложения в соответствующие группы, которые будут использовать службу прав для доступа к API Azure Data Manager для энергетики. В следующем примере идентификатор приложения добавляется в две группы:
- users@[идентификатор секции].dataservices.energy
- users.datalake.editors@[идентификатор секции].dataservices.energy
Чтобы добавить идентификатор приложения, выполните следующие действия.
Соберите следующие сведения:
- Идентификатор клиента
- ИД клиента
- Секрет клиента
- Универсальный код ресурса (URI) Azure Data Manager для энергетики
- Идентификатор секции данных
- Маркер доступа
- Идентификатор приложения управляемого удостоверения
Используйте API добавления участника для добавления идентификатора приложения управляемого удостоверения, назначаемого пользователем, в соответствующие группы прав.
Примечание.
В следующих командах обязательно используйте идентификатор приложения управляемого удостоверения, а не идентификатор объекта.
Чтобы добавить идентификатор приложения в группу users@[идентификатор секции].dataservices.energy, выполните следующую команду cURL через Bash в Azure:
curl --location --request POST 'https://<Azure Data Manager for Energy URI>/api/entitlements/v2/groups/users@ <data-partition-id>.dataservices.energy/members' \ --header 'data-partition-id: <data-partition-id>' \ --header 'Authorization: Bearer \ --header 'Content-Type: application/json' \ --data-raw '{ "email": "<application ID of the managed identity>", "role": "MEMBER" }'
Ниже приведен пример ответа:
{ "email": "<application ID of the managed identity>", "role": "MEMBER" }
Чтобы добавить идентификатор приложения в группу users.datalake.editors@[идентификатор секции].dataservices.energy group, выполните следующую команду cURL через Bash в Azure:
curl --location --request POST 'https://<Azure Data Manager for Energy URI>/api/entitlements/v2/groups/ users.datalake.editors@ <data-partition-id>.dataservices.energy/members' \ --header 'data-partition-id: <data-partition-id>' \ --header 'Authorization: Bearer \ --header 'Content-Type: application/json' \ --data-raw '{ "email": "<application ID of the managed identity>", "role": "MEMBER" }'
Ниже приведен пример ответа:
{ "email": "<application ID of the managed identity>", "role": "MEMBER" }
Шаг 5. Создание маркера
Теперь Функции Azure готовы к доступу к API Azure Data Manager для энергетики.
Функция Azure создает маркер с помощью удостоверения, назначаемого пользователем. Функция использует идентификатор приложения, который присутствует в экземпляре Azure Data Manager для энергии при создании маркера.
Ниже приведен пример кода функции Azure:
import logging
import requests
import azure.functions as func
from msrestazure.azure_active_directory import MSIAuthentication
def main(req: func.HttpRequest) -> str:
logging.info('Python HTTP trigger function processed a request.')
//To authenticate by using a managed identity, you need to pass the Azure Data Manager for Energy application ID as the resource.
//To use a user-assigned identity, you should include the
//client ID as an additional parameter.
//Managed identity using user-assigned identity: MSIAuthentication(client_id, resource)
creds = MSIAuthentication(client_id="<client_id_of_managed_identity>”, resource="<meds_app_id>")
url = "https://<meds-uri>/api/entitlements/v2/groups"
payload = {}
// Passing the data partition ID of Azure Data Manager for Energy in headers along with the token received using the managed instance.
headers = {
'data-partition-id': '<data partition id>',
'Authorization': 'Bearer ' + creds.token["access_token"]
}
response = requests.request("GET", url, headers=headers, data=payload, verify=False)
return response.text
Вы должны получить следующий успешный ответ от Функции Azure:
Выполнив описанные выше действия, теперь можно использовать Функции Azure для доступа к API Azure Data Manager для энергетики с соответствующим использованием управляемых удостоверений.
Следующие шаги
Сведения о блокировке: