Использование управляемого удостоверения для доступа к 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 для энергетики.

Необходимые компоненты

Прежде чем приступать к подключению, создайте следующие ресурсы:

Шаг 1. Получение идентификатора объекта

Чтобы получить идентификатор объекта для удостоверения, назначаемого пользователем, который получит доступ к API Azure Data Manager для энергетики:

  1. Войдите на портал Azure.
  2. Перейдите к управляемому удостоверению и выберите " Обзор".
  3. В разделе Essentials обратите внимание на значение идентификатора объекта (субъекта).

Screenshot of the object ID for a user-assigned identity.

Шаг 2. Получение идентификатора приложения

Получите идентификатор приложения удостоверения, назначаемого пользователем, с помощью идентификатора объекта:

  1. В портал Azure перейдите к идентификатору Microsoft Entra.
  2. В меню слева выберите Корпоративные приложения.
  3. В поле поиска по имени приложения или идентификатору объекта введите идентификатор объекта.
  4. Для приложения, отображающегося в результатах, обратите внимание на значение идентификатора приложения.

Screenshot of the application ID for a user-assigned identity.

Шаг 3. Добавление управляемого удостоверения, назначаемого пользователем, в Функции Azure

  1. В портал Azure перейдите к функции Azure.
  2. В разделе Параметры учетной записи выберите элемент Удостоверение.
  3. Перейдите на вкладку Назначаемое пользователем и нажмите Добавить.
  4. Выберите существующее управляемое удостоверение, назначаемое пользователем, и нажмите кнопку "Добавить". Затем вы вернеесь на назначенную пользователем вкладку.

Screenshot of a newly added user-assigned identity to an Azure function.

Шаг 4. Добавление идентификатора приложения в группы прав

Затем добавьте идентификатор приложения в соответствующие группы, которые будут использовать службу прав для доступа к API Azure Data Manager для энергетики. В следующем примере идентификатор приложения добавляется в две группы:

  • users@[идентификатор секции].dataservices.energy
  • users.datalake.editors@[идентификатор секции].dataservices.energy

Чтобы добавить идентификатор приложения, выполните следующие действия.

  1. Соберите следующие сведения:

    • Tenant ID
    • ИД клиента
    • Секрет клиента
    • Универсальный код ресурса (URI) Azure Data Manager для энергетики
    • Идентификатор секции данных
    • Маркер доступа
    • Идентификатор приложения управляемого удостоверения
  2. Используйте API добавления участника для добавления идентификатора приложения управляемого удостоверения, назначаемого пользователем, в соответствующие группы прав.

    Примечание.

    В следующих командах обязательно используйте идентификатор приложения управляемого удостоверения, а не идентификатор объекта.

    1. Чтобы добавить идентификатор приложения в группу 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"
          }
      
    2. Чтобы добавить идентификатор приложения в группу 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:

Screenshot of a success message from Azure Functions.

Выполнив описанные выше действия, теперь можно использовать Функции Azure для доступа к API Azure Data Manager для энергетики с соответствующим использованием управляемых удостоверений.

Следующие шаги

Сведения о блокировке: