Поделиться через


Проверка подлинности подключений рабочих процессов к защищенным ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps

Область применения: Azure Logic Apps (Consumption + Standard)

Настройте управляемое удостоверение , если требуется пройти проверку подлинности подключений из рабочих процессов приложения логики к ресурсам Azure, защищенным Microsoft Entra. Данное удостоверение дает доступ к защищенным ресурсам от имени логического приложения и устраняет необходимость хранения учетных данных, секретов или маркеров доступа. Из-за этого рекомендуется использование управляемого удостоверения для аутентификации. Azure управляет этим удостоверением, чтобы обеспечить безопасность данных проверки подлинности.

В Azure Logic Apps многие соединители поддерживают оба типа управляемых удостоверений:

  • Назначаемое системой удостоверение
  • Назначенное пользователем удостоверение

В этом руководстве показано, как выполнить следующие задачи:

  • Настройте систему управления идентификацией для ресурса логического приложения.
  • Создайте и настройте пользовательскую назначаемую идентичность в ресурсе логического приложения.

В этом руководстве приведены шаги для портала Azure и шаблона Azure Resource Manager (шаблон ARM). Сведения о Azure PowerShell, Azure CLI и REST API Azure см. в статье:

Инструмент Документация
Azure PowerShell - Назначаемое системой
- Назначенное пользователем
Azure CLI - Назначаемое системой
- Назначено пользователем
Azure REST API - Назначаемое системой
- Назначенный пользователем

Дополнительные сведения можно найти здесь

Prerequisites

Рекомендации по использованию управляемых удостоверений

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

  • Ресурс приложения логики имеет только один уникальный идентификатор, назначенный системой.

    По умолчанию логические приложения Standard автоматически включают удостоверение, назначенное системой.

  • Ресурс логического приложения может использовать системно назначаемое удостоверение и одно или несколько пользовательски назначаемых удостоверений одновременно.

    • Приложение логики может использовать либо системное, либо пользовательское удостоверение, но не оба одновременно.

    • Ваше логическое приложение может одновременно использовать только одно пользовательское назначенное удостоверение.

  • Ресурс приложения Logics может использовать одно и то же назначенное пользователем удостоверение в других ресурсах приложения Logics.

  • Управляемое удостоверение можно использовать на уровне ресурса логического приложения и на уровне подключения.

  • Для логических приложений стандарта гибридный вариант развертывания не поддерживает аутентификацию с помощью управляемого удостоверения. Вместо этого необходимо создать и использовать регистрацию приложения.

Дополнительные сведения можно найти здесь

Соединители, поддерживающие управляемые удостоверения

Для встроенных и управляемых операций соединителей в Azure Logic Apps для поддержки проверки подлинности управляемых удостоверений они должны поддерживать OAuth с помощью Microsoft Entra.

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

Тип соединителя Поддерживаемые соединители
встроенный — Управление API Azure
— Службы приложений Azure
— Функции Azure
- HTTP
- HTTP + Веб-перехватчик

Примечание. Операции HTTP могут проходить проверку подлинности подключений к учетным записям хранения Azure за брандмауэрами Azure с помощью удостоверения, назначаемого системой. Однако http-операции не поддерживают удостоверение, назначаемое пользователем, для проверки подлинности таких же подключений.
Управляемый — Служба приложений Azure
— Служба автоматизации Azure
— Хранилище BLOB-объектов Azure
— Экземпляр контейнера Azure
— Azure Cosmos DB
— Обозреватель данных Azure
— Фабрика данных Azure
— Azure Data Lake
— Azure Digital Twins
— Сетка событий Azure
— Центры событий Azure
— Azure IoT Central V2
— Azure Key Vault
-Журналы Azure Monitor
— Очереди Azure
— Azure Resource Manager
шина сервисов Azure
— Microsoft Sentinel
— Хранилище таблиц Azure
— виртуальная машина Azure
— SQL Server

Полный список см. в следующем разделе:

Включение назначаемого системой идентификатора (портал)

На основе типа приложения логики выполните соответствующие действия на портале Azure:

В ресурсе приложения логики потребления вручную включите назначаемое системой удостоверение.

  1. На портале Azure откройте ресурс приложения логики потребления.

  2. На боковой панели приложения логики, в разделе Параметры, выберите Удостоверение.

  3. На странице "Удостоверение" в разделе "Системное назначение" выберите "Включено", затем нажмите "Сохранить". Нажмите Да для подтверждения.

    Снимок экрана, на котором показан портал Azure, логическое приложение Consumption, страница удостоверения и назначенная системой вкладка с выбранными параметрами: Вкл и Сохранить.

    Ресурс приложения логики теперь может использовать удостоверение, назначаемое системой. Эта учетная запись зарегистрирована в Microsoft Entra ID и представлена идентификатором объекта.

    Снимок экрана: страница идентификатора приложения логики потребления и идентификатор объекта для удостоверения, назначаемого системой.

    Свойство Значение Описание
    Идентификатор основного объекта < identity-resource-ID> Глобальный уникальный идентификатор (GUID), представляющий удостоверение, назначаемое системой для приложения логики в клиенте Microsoft Entra.
  4. Предоставьте удостоверению доступ к защищенному ресурсу.

Включение назначаемого системой удостоверения (шаблон ARM)

Чтобы автоматизировать создание и развертывание ресурсов приложения логики, используйте шаблон ARM.

В вашем шаблоне на корневом уровне определение ресурса приложения логики требует identity объекта с заданным type свойством SystemAssigned, например:

{
   "apiVersion": "2016-06-01",
   "type": "Microsoft.logic/workflows",
   "name": "[variables('logicappName')]",
   "location": "[resourceGroup().location]",
   "identity": {
      "type": "SystemAssigned"
   },
   "properties": {},
   <...>
}

Когда Azure создает определение ресурса приложения логики, identity объект получает следующие principalId и tenantId свойства:

"identity": {
   "type": "SystemAssigned",
   "principalId": "<principal-ID>",
   "tenantId": "<Entra-tenant-ID>"
}
Свойство (JSON) Значение Описание
principalId < principal-ID> Глобально уникальный идентификатор (GUID), который Microsoft Entra использует для управления объектом главного службы для управляемой идентичности в клиенте Microsoft Entra. Этот GUID иногда отображается как "идентификатор объекта" или objectID.
tenantId < Microsoft-Entra-tenant-ID> Глобальный уникальный идентификатор (GUID), представляющий клиент Microsoft Entra, в котором приложение логики теперь является членом. В клиенте Microsoft Entra субъект-служба имеет то же имя, что и экземпляр приложения логики.

Создание индивидуальной идентичности, назначаемой пользователем (в портале)

Перед включением удостоверения, назначаемого пользователем, необходимо создать удостоверение в качестве отдельного ресурса Azure, чтобы включить удостоверение, назначаемое пользователем, в ресурсе приложения логики "Потребление" или "Стандартный".

  1. В поле поиска на портале Azure введите managed identities. В списке результатов выберите Управляемые Идентификаторы.

    Снимок экрана: портал Azure с выбранным параметром

  2. На панели инструментов «Управляемые удостоверения» нажмите Создать.

  3. Введите данные об управляемой учетной записи, например:

    Снимок экрана: страница

    Свойство Требуется Значение Описание
    Subscription Yes < имя-подписки-Azure> Имя подписки Azure.
    Группа ресурсов Yes < имя-группы-ресурсов-Azure> Имя группы ресурсов Azure. Создайте новую группу или выберите существующую группу. В этом примере создается новая группа с именем fabrikam-managed-identities-RG.
    Region Yes < Azure-region> Регион Azure, в котором хранятся сведения о ресурсе. В этом примере используется West US.
    Name Yes < имя, назначаемое пользователем> Название для вашего идентификатора, назначенного пользователем. В этом примере используется Fabrikam-user-assigned-identity.
    Область изоляции Нет - Нет (по умолчанию)
    - Регион
    Эффективная область действия для управляемого удостоверения.
  4. По завершении нажмите кнопку "Просмотр и создание".

    После того как Azure проверит информацию, Azure создаст управляемое удостоверение. Теперь вы можете добавить пользовательское назначенное удостоверение в ресурс приложения логики.

Добавление назначаемой пользователем идентичности в логическое приложение (портал)

После создания пользовательской назначенной идентичности добавьте её в ресурс логического приложения "Потребление" или "Стандартный".

  1. На портале Azure откройте ресурс приложения логики потребления.

  2. На боковой панели логического приложения в разделе Параметры выберите Идентификация.

  3. На странице "Удостоверение" выберите "Назначенные пользователи", а затем выберите "Добавить".

    Снимок экрана, показывающий логическое приложение потребления и страницу 'Идентификация' с выбранным параметром 'Добавить'.

  4. В разделе Добавление управляемой идентичности, назначенной пользователем выполните следующие действия.

    1. В списке "Выбор подписки" выберите подписку Azure.

    2. В списке управляемых удостоверений выберите назначенное пользователем удостоверение, которое вам нужно.

      Чтобы отфильтровать список, в поле поиска назначаемых пользователем управляемых удостоверений введите имя удостоверения или группы ресурсов, например:

      Снимок экрана: приложение логики потребления и выбранное удостоверение, назначаемое пользователем.

    3. По завершении нажмите кнопку "Добавить".

    Теперь логическое приложение связано с назначенной пользователем идентичностью.

    Скриншот показывает Логическое приложение Consumption с прикрепленным удостоверением, назначенным пользователем.

  5. Предоставьте удостоверению доступ к защищенному ресурсу.

Создание идентификации, назначаемой пользователем (ARM шаблон)

Чтобы автоматизировать создание и развертывание ресурсов приложения логики, используйте шаблон ARM. Эти шаблоны поддерживают удостоверения, назначенные пользователем для проверки подлинности.

В разделе resources вашего шаблона, определение ресурса Logic App требует следующих элементов:

  • Объект identity с установленным type свойством UserAssigned.
  • Дочерний userAssignedIdentities объект, указывающий назначенный пользователем ресурс и имя.

В следующем примере показан ресурс приложения логики потребления и определение рабочего процесса для HTTP-запроса PUT с непараметризованным identity объектом. Ответ на PUT запрос и последующую GET операцию также включает этот identity объект.

Ресурс приложения логики потребления может включать и иметь как назначаемое системой удостоверение, так и несколько удостоверений, назначенных пользователем.

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "resources": [
      {
         "apiVersion": "2016-06-01",
         "type": "Microsoft.logic/workflows",
         "name": "[variables('logicappName')]",
         "location": "[resourceGroup().location]",
         "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
               "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<user-assigned-identity-name>": {}
            }
         },
         "properties": {
            "definition": {<logic-app-workflow-definition>}
         },
         "parameters": {},
         "dependsOn": []
      },
   ],
   "outputs": {}
}

Если ваш шаблон включает определение ресурса управляемого удостоверения, можно параметризовать объект identity. В следующем примере показано, как userAssignedIdentities дочерний объект ссылается на переменную userAssignedIdentityName, которую вы определяете в разделе variables вашего шаблона. Эта переменная ссылается на идентификатор ресурса для пользовательской назначенной идентичности.

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      "Template_LogicAppName": {
         "type": "string"
      },
      "Template_UserAssignedIdentityName": {
         "type": "securestring"
      }
   },
   "variables": {
      "logicAppName": "[parameters('Template_LogicAppName')]",
      "userAssignedIdentityName": "[parameters('Template_UserAssignedIdentityName')]"
   },
   "resources": [
      {
         "apiVersion": "2016-06-01",
         "type": "Microsoft.logic/workflows",
         "name": "[variables('logicAppName')]",
         "location": "[resourceGroup().location]",
         "identity": {
            "type": "UserAssigned",
            "userAssignedIdentities": {
               "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]": {}
            }
         },
         "properties": {
            "definition": {<logic-app-workflow-definition>}
         },
         "parameters": {},
         "dependsOn": [
            "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('userAssignedIdentityName'))]"
         ]
      },
      {
         "apiVersion": "2018-11-30",
         "type": "Microsoft.ManagedIdentity/userAssignedIdentities",
         "name": "[parameters('Template_UserAssignedIdentityName')]",
         "location": "[resourceGroup().location]",
         "properties": {}
      }
  ]
}

Когда шаблон создает определение ресурса приложения логики, identity объект включает следующие principalId и clientId свойства:

"identity": {
    "type": "UserAssigned",
    "userAssignedIdentities": {
        "<resource-ID>": {
            "principalId": "<principal-ID>",
            "clientId": "<client-ID>"
        }
    }
}
Свойство (JSON) Значение Описание
principalId < идентификатор принципала> Глобальный уникальный идентификатор (GUID), который Microsoft Entra использует для администрирования объекта субъекта-службы для управляемого удостоверения в клиенте Microsoft Entra. Этот GUID иногда отображается как "идентификатор объекта" или objectID. В клиенте Microsoft Entra учетная запись службы имеет то же имя, что и экземпляр логического приложения.
clientId < идентификатор клиента> Глобальный уникальный идентификатор (GUID), представляющий идентификатор логического приложения и указывающий идентификатор, используемый во время вызовов среды выполнения.

Дополнительные сведения о шаблонах Azure Resource Manager и управляемых удостоверениях для функций Azure см. в шаблоне ARM — Функции Azure.

Предоставление удостоверению доступа к ресурсу

Прежде чем использовать управляемое удостоверение для проверки подлинности, необходимо предоставить удостоверению доступ к целевому защищенному ресурсу Azure. Способ настройки доступа может отличаться в зависимости от целевого ресурса, например:

  • Управление доступом на основе ролей в Azure (RBAC)

    Для некоторых ресурсов Azure, таких как учетные записи хранения, необходимо использовать RBAC для назначения роли целевого ресурса с необходимыми разрешениями для удостоверения.

    Например, чтобы предоставить управляемому удостоверению доступ к учетной записи хранения объектов Blob в Azure, необходимо назначить необходимую роль Azure для ресурса учетной записи хранения вашему удостоверению.

    В этом разделе показано, как назначить роль с помощью портала Azure и шаблона Azure Resource Manager (шаблон ARM).

    Сведения о Azure PowerShell, Azure CLI и REST API Azure см. в статье:

    Инструмент Документация
    Azure PowerShell Добавление назначения ролей
    Azure CLI Добавление назначения ролей
    Azure REST API Добавление назначения ролей
  • Политика доступа

    Другие ресурсы Azure, такие как хранилища ключей, также позволяют создавать политику доступа в целевом ресурсе с необходимыми разрешениями для удостоверения.

    Например, можно создать политику доступа на ресурсе хранилища ключей, чтобы предоставить необходимые разрешения для управляемого удостоверения.

    В этом разделе показано, как создать политику доступа с помощью портала Azure.

    Шаблоны Resource Manager, Azure PowerShell и Azure CLI см. в статье:

    Инструмент Документация
    Шаблон Azure Resource Manager (шаблон ARM) Определение политики доступа ресурса Key Vault
    Azure PowerShell Назначьте политику доступа для Key Vault
    Azure CLI Назначьте политику доступа для Key Vault

Доступ управляемой идентичности к ресурсам более высокого уровня

Если управляемая идентичность имеет доступ к ресурсу в той же подписке, эта идентичность может получить доступ только к этому ресурсу, а не к другим ресурсам в родительской иерархии данного ресурса. В конструкторе рабочих процессов некоторые триггеры и действия требуют сначала выбрать подписку или группу ресурсов, прежде чем выбрать целевой ресурс. Если идентификатор не имеет доступа к каким-либо ресурсам более высокого уровня, дизайнер не показывает целевой ресурс.

Чтобы устранить эту проблему, предоставьте удостоверению доступ к каждому ресурсу более высокого уровня, который необходимо сначала выбрать.

В других случаях идентификация также нуждается в доступе к ресурсу, где вы активировали идентификацию. Например, предположим, что у вас есть действие рабочего процесса, которое обновляет параметры приложения в родительском приложении логики рабочего процесса. Если действие использует управляемое удостоверение для доступа к этим параметрам, предоставьте этому удостоверению доступ к логическому родительскому приложению.

Назначение доступа на основе ролей к управляемому удостоверению (портал)

Для ресурсов Azure, которым требуется назначить роль для управляемой учетной записи, выполните следующие действия.

  1. На портале Azure откройте ресурс, к которому требуется доступ.

    В этом примере в качестве целевого ресурса Azure используется учетная запись хранения.

  2. На боковой панели ресурса выберите элемент управления доступом (IAM).

  3. На панели инструментов управления доступом (IAM) выберите Добавить>Добавить назначение роли.

    Примечание

    Если не удается выбрать добавление назначения ролей, у вас нет разрешений на назначение ролей. Вам нужны разрешения администратора Microsoft Entra для назначения ролей управляемым удостоверениям.

  4. Чтобы назначить необходимую роль управляемому удостоверению, выполните следующие действия.

    1. На вкладке "Роль" найдите и выберите встроенную роль Microsoft Entra , которая предоставляет удостоверению необходимый доступ к текущему ресурсу, а затем нажмите кнопку "Далее".

      В этом примере выбирается роль " Участник данных BLOB-объектов хранилища". Эта роль предоставляет права на запись содержимого BLOB-объектов в контейнере службы хранения Azure.

      Дополнительные сведения можно найти в статье Роли, имеющие доступ к содержимому объектов BLOB в контейнере хранилища Azure.

    2. На вкладке "Члены" выполните следующие действия, чтобы выбрать управляемое удостоверение:

      1. Чтобы назначить доступ, выберите управляемое удостоверение.

      2. Для добавления участников нажмите кнопку +Выбрать участников.

      3. На панели "Выбор управляемых удостоверений " выберите подписку Azure.

      4. Выберите тип управляемого удостоверения, который соответствует вашему управляемому удостоверению, затем выберите ваше управляемое удостоверение.

        Тип управляемого удостоверения Описание
        Пользовательское управляемое удостоверение Просматривайте и выбирайте назначаемую пользователем управляемую идентичность на любом ресурсе Azure.
        Все назначаемые системой управляемые удостоверения Просмотрите и выберите управляемое удостоверение, назначаемое системой, на любом ресурсе Azure.
        Приложение логики Просмотрите и выберите включенное управляемое удостоверение только для ресурсов логического приложения.
      5. По завершении нажмите кнопку "Выбрать".

    Дополнительные сведения можно найти здесь

  5. Аутентифицируйте триггер или действие с помощью управляемого удостоверения.

Создание политики доступа на портале Azure

Для ресурсов Azure, в которых требуется создать политику доступа для управляемого удостоверения, выполните следующие действия.

  1. На портале Azure откройте ресурс, к которому требуется доступ.

    В этом примере в качестве целевого ресурса Azure используется хранилище ключей.

  2. На боковой панели ресурса выберите политики доступа.

    Примечание

    Если ресурс не имеет параметра "Политики доступа ", назначьте роль.

  3. На панели инструментов страницы выберите "Создать ", чтобы открыть область "Создать политику доступа ".

    Снимок экрана: портал Azure и пример хранилища ключей с открытой областью с именем

  4. На вкладке "Разрешения" выберите разрешения, необходимые удостоверению для доступа к целевому ресурсу.

    Например, чтобы использовать удостоверение с действием List secrets управляемого соединителя Azure Key Vault, удостоверение должно иметь разрешения на List. Таким образом, в этом сценарии в столбце разрешений секретных выберите Список.

    Снимок экрана: вкладка

  5. Закончив, выберите Далее.

  6. На вкладке Основное выберите управляемое удостоверение.

    В этом примере выбирается пользовательское удостоверение.

  7. Пропустите необязательный шаг приложения , нажмите кнопку "Далее" и завершите создание политики доступа.

  8. Аутентифицируйте ваш триггер или действие с помощью управляемой идентификации.

Проверка подлинности доступа с помощью управляемого удостоверения

В этом разделе показано, как использовать управляемое удостоверение для проверки подлинности доступа к триггеру рабочего процесса или действиям, поддерживающим проверку подлинности управляемого удостоверения. Пример продолжается с того момента, где вы настроили доступ для управляемого удостоверения, используя RBAC и учетную запись хранения Azure. Хотя целевой ресурс Azure может отличаться, общие шаги в основном похожи.

Важно

Если у вас есть функция Azure, в которой вы хотите использовать назначаемое системой удостоверение, сначала включите проверку подлинности для функций Azure.

Ниже показано, как использовать управляемое удостоверение с помощью портала Azure. Сведения об использовании управляемого удостоверения в базовом определении JSON с помощью редактора кода см. в разделе "Проверка подлинности управляемого удостоверения".

  1. На портале Azure откройте ресурс приложения логики потребления.

  2. Добавьте триггер или действие, которое поддерживает управляемые удостоверения, если вы еще не сделали этого.

  3. В триггере или действии выполните следующие действия.

    • Встроенные операции

      Эти действия используют действие HTTP в качестве примера.

      1. В списке дополнительных параметров выберите параметр проверки подлинности .

        Снимок экрана показывает процесс потребления со встроенной HTTP-операцией и открытым списком под названием

        Отображаются параметры проверки подлинности и список типов проверки подлинности , например:

        Снимок экрана: раздел

      2. В списке типов проверки подлинности выберите управляемое удостоверение.

        Снимок экрана: рабочий процесс со встроенным действием, открытым списком типов проверки подлинности и выбранным вариантом для управляемого удостоверения.

        Теперь в разделе проверки подлинности показаны следующие параметры:

        Параметр Описание
        Управляемая идентичность Управляемое удостоверение для использования.
        Публика Появляется для определенных триггеров и действий, так что вы можете установить идентификатор ресурса для целевого ресурса или службы Azure.

        По умолчанию параметр аудитории использует https://management.azure.com/ идентификатор ресурса, который является идентификатором ресурса для Azure Resource Manager.
      3. В списке управляемых идентификаций выберите нужную идентификацию, например:

        Снимок экрана: раздел

        Примечание

        По умолчанию управляемое удостоверение, назначаемое системой , является выбранным параметром, даже если вы не включаете управляемые удостоверения. Однако для успешного использования управляемого удостоверения необходимо сначала включить это удостоверение в вашем логическом приложении. Потребительские приложения логики не автоматически включают системное удостоверение в отличие от стандартных приложений логики.

      Дополнительные сведения см. в примере: проверка подлинности встроенного триггера или действия с помощью управляемого удостоверения.

    • Операции управляемого соединителя

      1. В области "Создание подключения " в списке проверки подлинности выберите управляемое удостоверение, например:

        Снимок экрана показывает процесс потребления с действием Azure Resource Manager и выбранным вариантом Управляемого удостоверения.

      2. В следующей области для имени подключения введите имя, используемое для подключения.

      3. В зависимости от вашего коннектора выберите один из следующих вариантов.

        • Одиночная проверка подлинности: эти соединители поддерживают только один тип проверки подлинности, который является управляемым удостоверением в данном случае.

          Следующие действия используют действие ресурса Azure в качестве примера:

          1. В списке управляемых удостоверений выберите текущее управляемое удостоверение.

          2. Выберите Создать новое.

        • Многофакторная проверка подлинности: эти соединители поддерживают несколько типов проверки подлинности, но вы можете выбрать и использовать только один тип одновременно.

          Следующие шаги используют действие хранилища BLOB-объектов Azure в качестве примера.

          1. В списке типов проверки подлинности выберите "Управляемое удостоверение Logic Apps".

            Снимок экрана: сценарий потребления, окно создания подключения и выбрана опция для управляемого удостоверения Logic Apps.

          2. Выберите Создать новое.

          Дополнительные сведения см. в разделе "Пример: проверка подлинности триггера или действия управляемого соединителя с помощью управляемого удостоверения".

Пример. Проверка подлинности встроенного триггера или действия с помощью управляемого удостоверения

Встроенный триггер или действие HTTP могут использовать системно назначенное удостоверение, которое вы активируете на ресурсе вашего логического приложения. Как правило, триггер ИЛИ действие HTTP использует следующие свойства, чтобы указать ресурс или сущность, к которой требуется получить доступ:

Свойство Требуется Описание
Method Yes Метод HTTP для операции, которую требуется выполнить
URI Yes URL-адрес конечной точки для доступа к целевому ресурсу или сущности Azure. Синтаксис URI обычно включает идентификатор ресурса для целевого ресурса Или службы Azure.
Заголовки Нет Любые значения заголовков, которые необходимы или которые вы хотите включить в исходящий запрос, например тип контента.
Queries Нет Все параметры запроса, которые необходимо или хотите включить в запрос. Например, параметры запроса для определенной операции или для версии API операции, которую требуется запустить.
Authentication Yes Тип проверки подлинности, используемый для проверки подлинности доступа к целевому ресурсу или службе Azure

В качестве конкретного примера предположим, что вы хотите запустить операцию создания моментального снимка BLOB-объекта в учетной записи хранения Azure, где вы ранее настроили доступ для своего удостоверения. Однако коннектор Azure Blob Storage сейчас не поддерживает эту операцию. Вместо этого можно запустить эту операцию с помощью действия HTTP или другой операции REST API службы BLOB.

Важно

Чтобы получить доступ к учетным записям хранения Azure за брандмауэрами с помощью соединителя для хранилища BLOB-объектов Azure и управляемых удостоверений, убедитесь, что вы также настроили учетную запись так, чтобы она имела исключение, которое разрешает доступ доверенным службам Microsoft.

Чтобы запустить операцию моментального снимка Blob, действие HTTP указывает следующие свойства:

Свойство Требуется Пример значения Описание
URI Yes https://<storage-account-name>/<folder-name>/{name} Идентификатор ресурса для файла хранилища BLOB-объектов Azure в глобальной (общедоступной) среде Azure, которая использует этот синтаксис.
Method Yes PUT Метод HTTP, который использует операция моментального снимка BLOB-объектов.
Заголовки Для службы хранилища Azure x-ms-blob-type = BlockBlob

x-ms-version = 2024-05-05

x-ms-date = formatDateTime(utcNow(),'r')
Значения заголовков x-ms-blob-type, x-ms-version и x-ms-date требуются для операций Azure Storage.

Важно: В исходящих запросах триггера HTTP и действия для службы хранилища Azure заголовок должен содержать свойство x-ms-version и версию API для операции, которую необходимо выполнить. Значение x-ms-date должно быть текущей датой. В противном случае рабочий процесс завершается ошибкой 403 FORBIDDEN . Чтобы получить текущую дату в требуемом формате, можно использовать выражение в примере значения.

Для получения дополнительной информации см.:

- Заголовки запросов — моментальный снимок Blob
- Управление версиями для служб хранилища Azure
Queries Только для операции моментального снимка BLOB-объектов comp = snapshot Имя и значение параметра запроса для операции.
  1. В конструкторе рабочих процессов добавьте любой нужный триггер, а затем добавьте действие HTTP .

    В следующем примере показан пример действия HTTP со всеми ранее описанными значениями свойств, используемыми для операции моментального снимка BLOB-объектов:

    Снимок экрана: портал Azure, рабочий процесс потребления и действие HTTP, настроенное для доступа к ресурсам.

  2. В действии HTTP в списке дополнительных параметров выберите "Проверка подлинности".

    Снимок экрана демонстрирует процесс потребления с действием HTTP и открытым списком расширенных параметров с выбранным свойством под названием Аутентификация.

    Раздел проверки подлинности появляется в действии HTTP.

  3. В списке типов проверки подлинности выберите управляемое удостоверение.

    Скриншот показывает рабочий процесс потребления, действие HTTP и свойство типа аутентификации с выбранной опцией для управляемой идентификации.

  4. В списке управляемых удостоверений выберите доступные параметры в зависимости от вашего сценария.

    • Если вы настроили удостоверение, назначаемое системой, выберите управляемое удостоверение, назначаемое системой.

      Снимок экрана демонстрирует процесс потребления, действие HTTP, и свойство управляемого удостоверения с выбранным параметром для управляемой системой идентификации.

    • Если вы настроили удостоверение, назначаемое пользователем, выберите это удостоверение.

      Снимок экрана демонстрирует процесс потребления, действие HTTP и свойство управляемого удостоверения с выбранным пользователем назначенным удостоверением.

    В этом примере продолжается использование управляемого удостоверения, назначенного системой.

  5. Некоторые триггеры и действия показывают параметр аудитории, чтобы можно было ввести идентификатор для целевого ресурса или службы Azure.

    Например, чтобы пройти проверку подлинности доступа к ресурсу Key Vault в глобальном облаке Azure, задайте параметр аудиторииточно следующим идентификатором ресурса: https://vault.azure.net

    В противном случае параметр аудитории использует https://management.azure.com/ идентификатор ресурса, который является идентификатором ресурса для Azure Resource Manager.

    Важно

    Идентификатор целевого ресурса должен точно соответствовать значению, которое ожидает идентификатор Microsoft Entra. В противном случае может возникнуть ошибка 400 недопустимых запросов или 401 Несанкционированная ошибка. Если идентификатор ресурса содержит завершающие слэши, включите их. Если нет, не включайте их.

    Например, идентификатор ресурса для всех учетных записей Blob-хранилища Azure требует наличия завершающей косой черты. Однако идентификатор ресурса для определенной учетной записи хранения не требует окончания слэшем. Проверьте идентификаторы ресурсов для служб Azure, поддерживающих идентификатор Microsoft Entra.

    В следующем примере для параметра Аудитории задано значение https://storage.azure.com/. Это значение означает, что токены доступа для аутентификации действительны для всех учетных записей хранения. Для определенной учетной записи хранения укажите URL-адрес https://<your-storage-account>.blob.core.windows.netкорневой службы.

    Снимок экрана показывает процесс потребления и действие HTTP со свойством 'Аудитория', заданным для идентификатора целевого ресурса.

    Дополнительные сведения можно найти здесь

  6. Продолжайте создавать рабочий процесс на основе вашего сценария.

Пример. Проверка подлинности триггера или действия управляемого соединителя с помощью управляемого удостоверения

Управляемый соединитель Azure Resource Manager имеет действие Чтение ресурса, которое может использовать управляемое удостоверение, включенное в ресурс приложения логики. В этом примере показано, как использовать системное управляемое удостоверение с управляемым соединителем.

  1. В конструкторе рабочих процессов добавьте действие Azure Resource Manager с именем "Чтение ресурса".

  2. На панели "Создание подключения" в списке проверки подлинности выберите управляемое удостоверение и нажмите кнопку "Войти".

    Примечание

    В некоторых соединителях список типа аутентификации отображает управляемое удостоверение Logic Apps. Если в сценарии показан этот параметр, выберите этот параметр.

    Снимок экрана показывает процесс потребления, действие Azure Resource Manager, открытый список проверки подлинности и выбранный параметр для управляемой идентичности.

  3. Введите имя подключения и выберите нужное управляемое удостоверение.

    Если вы включили удостоверение, назначаемое системой, список управляемых удостоверений автоматически выбирает управляемое удостоверение, назначаемое системой. Если вместо этого вы включили удостоверение, назначаемое пользователем, список автоматически выбирает удостоверение, назначаемое пользователем.

    В этом примере назначаемое системой управляемое удостоверение является единственным доступным выбором.

    Снимок экрана показывает рабочий процесс Consumption и действие Azure Resource Manager с введенным именем подключения и выбранной опцией для управляемого удостоверения, назначенного системой.

    Примечание

    Если вы не включаете управляемое удостоверение при попытке создать или изменить подключение, или если удалить управляемое удостоверение, пока подключение с поддержкой управляемого удостоверения по-прежнему существует, возникает ошибка, которая говорит, что необходимо включить удостоверение и предоставить доступ к целевому ресурсу.

  4. По завершении нажмите кнопку "Создать".

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

  5. Продолжайте создавать рабочий процесс на основе вашего сценария.

Подключения с управляемыми удостоверениями в определениях ресурсов логических приложений

Тип подключения с проверкой подлинности управляемого удостоверения — это специальный тип подключения, который работает только с управляемым удостоверением. При выполнении рабочего процесса подключение использует управляемое удостоверение, включённое для ресурса логического приложения. Azure Logic Apps проверяет, используют ли какие-либо операции управляемого соединителя в рабочем процессе управляемое удостоверение и существуют ли все необходимые разрешения для использования управляемого удостоверения при доступе к соответствующим целевым ресурсам. Если эта проверка прошла успешно, Azure Logic Apps получает маркер Microsoft Entra, связанный с управляемым удостоверением, использует это удостоверение для проверки подлинности доступа к целевым ресурсам Azure и выполняет соответствующие операции в рабочем процессе.

В ресурсе приложения логики потребления вы сохраняете конфигурацию подключения в объекте определения parameters ресурса. Этот объект содержит $connections, и этот объект включает указатели на идентификатор ресурса подключения, а также на идентификатор ресурса управляемого удостоверения, когда вы включаете удостоверение, назначенное пользователем.

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

"parameters": {
   "$connections": {
      "value": {
         "<action-name>": {
            "connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
            "connectionName": "<connector-name>",
            "connectionProperties": {
               "authentication": {
                  "type": "ManagedServiceIdentity"
               }
            },
            "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
         }
      }
   }
}

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

"parameters": {
   "$connections": {
      "value": {
         "<action-name>": {
            "connectionId": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>",
            "connectionName": "<connector-name>",
            "connectionProperties": {
               "authentication": {
                  "type": "ManagedServiceIdentity",
                  "identity": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/microsoft.managedidentity/userassignedidentities/<managed-identity-name>"
               }
            },
            "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/<managed-connector-type>"
         }
      }
   }
}

Шаблон ARM для подключений API и управляемых удостоверений

Если вы используете шаблон ARM для автоматизации развертывания, а рабочий процесс включает подключение API, созданное управляемым соединителем , и использует управляемое удостоверение, необходимо выполнить дополнительный шаг.

В шаблоне ARM определение ресурса базового соединителя различается в зависимости от того, используете ли вы логическое приложение по модели с платой за потребление или стандартное, а также в зависимости от того, показывает ли соединитель варианты единой аутентификации или многофакторной аутентификации.

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

Однофакторная аутентификация

В этом примере показано определение базового ресурса подключения для действия соединителя, которое поддерживает только один тип проверки подлинности и использует управляемое удостоверение в рабочем процессе приложения логики потребления. Определение включает следующие атрибуты:

  • Свойство kind имеет значение V1 для процесса потребления.

  • Для свойства parameterValueType задано значение Alternative.

{
    "type": "Microsoft.Web/connections",
    "apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
    "name": "[variables('connections_<connector-name>_name')]",
    "location": "[parameters('location')]",
    "kind": "V1",
    "properties": {
        "alternativeParameterValues": {},
        "api": {
            "id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), '<connector-name>')]"
        },
        "authenticatedUser": {},
        "connectionState": "Enabled",
        "customParameterValues": {},
        "displayName": "[variables('connections_<connector-name>_name')]",
        "parameterValueSet": {},
        "parameterValueType": "Alternative"
    }
},

Несколько методов проверки подлинности

В этом примере показано определение базового ресурса подключения для действия соединителя, которое поддерживает несколько типов проверки подлинности и использует управляемое удостоверение в рабочем процессе приложения логики потребления. Определение включает следующие атрибуты:

  • Свойство kind имеет значение V1 для рабочего процесса потребления.

  • Объект parameterValueSet включает свойство name, которому присвоено значение managedIdentityAuth, и свойство values, которому присвоено пустое объект.

{
    "type": "Microsoft.Web/connections",
    "apiVersion": "[providers('Microsoft.Web','connections').apiVersions[0]]",
    "name": "[variables('connections_<connector-name>_name')]",
    "location": "[parameters('location')]",
    "kind": "V1",
    "properties": {
        "alternativeParameterValues": {},
        "api": {
            "id": "[subscriptionResourceId('Microsoft.Web/locations/managedApis', parameters('location'), '<connector-name>')]"
        },
        "authenticatedUser": {},
        "connectionState": "Enabled",
        "customParameterValues": {},
        "displayName": "[variables('connections_<connector-name>_name')]",
        "parameterValueSet": {
            "name": "managedIdentityAuth",
            "values": {}
        }
    }
}

Настройка расширенного управления для проверки подлинности подключения API

Когда рабочий процесс Azure Logic Apps стандартного уровня использует подключение к API, которое создает управляемый соединитель, Azure Logic Apps использует два подключения для взаимодействия с целевым ресурсом, например вашей учетной записью электронной почты или ключевым хранилищем.

Концептуальная схема показывает первое соединение с проверкой подлинности между приложением логики и хранилищем маркеров и вторым подключением между хранилищем маркеров и целевым ресурсом.

  • Подключение #1 настроено с аутентификацией для внутреннего хранилища токенов.

  • Подключение #2 настроено с проверкой подлинности для целевого ресурса.

Однако если рабочий процесс приложения логики потребления использует подключение API, вы не можете просмотреть или настроить подключение #1. Если вы используете ресурс для логических приложений стандартного типа, вы получаете больше контроля над вашим логическим приложением и рабочими процессами. По умолчанию подключение #1 использует назначаемое системой удостоверение.

Если в сценарии требуется более подробный контроль над проверкой подлинности подключений API, измените проверку подлинности для подключения #1 с удостоверения, назначаемого системой по умолчанию, на любое удостоверение, назначаемое пользователем, которое вы добавляете в приложение логики. Эта аутентификация применяется к каждому подключению API, поэтому можно смешивать системные и пользовательские удостоверения для различных подключений к одному целевому ресурсу.

В файле connections.json стандартного приложения логики, в котором хранятся сведения о каждом подключении API, каждое определение подключения имеет два authentication объекта, например:

"keyvault": {
   "api": {
      "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault"
   },
   "authentication": {
      "type": "ManagedServiceIdentity",
   },
   "connection": {
      "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>"
   },
   "connectionProperties": {
      "authentication": {
         "audience": "https://vault.azure.net",
         "type": "ManagedServiceIdentity"
      }
   },
   "connectionRuntimeUrl": "<connection-runtime-URL>"
}
  • Первый authentication объект сопоставляется с соединением #1.

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

  • Второй объект authentication соответствует подключению №2.

    Этот объект описывает проверку подлинности, используемую для взаимодействия с целевым ресурсом, и может отличаться в зависимости от типа проверки подлинности, выбранного для этого подключения.

Зачем изменять аутентификацию для хранилища токенов?

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

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

Измените проверку подлинности для хранилища токенов

  1. На портале Azure откройте своё стандартное логическое приложение.

  2. На боковой панели ресурсов в разделе "Рабочие процессы" выберите "Подключения".

  3. На панели "Подключения" выберите представление JSON.

    Снимок экрана: портал Azure, ресурс приложения логики

  4. В редакторе JSON найдите managedApiConnections объект. Этот объект содержит подключения API ко всем рабочим процессам в ресурсе приложения логики.

  5. Найдите соединение, где вы хотите добавить пользовательское управляемое удостоверение.

    Например, предположим, что рабочий процесс имеет подключение к Azure Key Vault:

    "keyvault": {
       "api": {
          "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault"
       },
       "authentication": {
          "type": "ManagedServiceIdentity"
       },
       "connection": {
          "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>"
       },
       "connectionProperties": {
          "authentication": {
             "audience": "https://vault.azure.net",
             "type": "ManagedServiceIdentity"
          }
       },
       "connectionRuntimeUrl": "<connection-runtime-URL>"
    }
    
  6. В определении подключения выполните следующие действия.

    1. Найдите первый authentication объект. Если в этом identity объекте нет authentication свойства, приложение логики неявно использует удостоверение, назначаемое системой.

    2. identity Добавьте свойство с помощью примера на этом шаге.

    3. Установите значение свойства в идентификатор ресурса для идентификатора пользователя.

    "keyvault": {
       "api": {
          "id": "/subscriptions/<Azure-subscription-ID>/providers/Microsoft.Web/locations/<Azure-region>/managedApis/keyvault"
       },
       "authentication": {
          "type": "ManagedServiceIdentity",
          // Add "identity" property here
          "identity": "/subscriptions/<Azure-subscription-ID>/resourcegroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-resource-ID>"
       },
       "connection": {
          "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Web/connections/<connector-name>"
       },
       "connectionProperties": {
          "authentication": {
             "audience": "https://vault.azure.net",
             "type": "ManagedServiceIdentity"
          }
       },
       "connectionRuntimeUrl": "<connection-runtime-URL>"
    }
    
  7. На портале Azure перейдите к целевому ресурсу и предоставьте доступ к управляемому удостоверению, назначенному пользователем, в зависимости от потребностей целевого ресурса.

    Например, для Azure Key Vault добавьте удостоверение в политики доступа к хранилищу ключей. Для Azure Blob Storage назначьте необходимую роль для идентификатора в учетной записи хранения.

Отключение управляемого удостоверения

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

  1. Удалите доступ удостоверения к целевому ресурсу.

  2. В ресурсе вашего логического приложения отключите системное удостоверение или удалите удостоверение, назначаемое пользователем.

Когда вы отключаете управляемое удостоверение в ресурсе приложения логики, вы убираете возможность данного удостоверения запрашивать доступ к ресурсам Azure, к которым оно имело доступ.

Примечание

Если отключить удостоверение, назначаемое системой, все подключения, использующие удостоверение в рабочих процессах приложения логики, перестают работать во время выполнения, даже если сразу же включить удостоверение снова.

Это происходит, так как отключение удостоверения удаляет его идентификатор объекта. Каждый раз, когда вы включаете удостоверение, Azure создает удостоверение с другим уникальным идентификатором объекта. Чтобы устранить эту проблему, повторно создайте подключения, чтобы они использовали текущий идентификатор объекта для актуальной системной идентичности.

Избегайте отключения назначаемого системой идентификатора насколько это возможно. Чтобы удалить доступ удостоверения к ресурсам Azure, удалите назначение роли этого удостоверения для целевого ресурса. При удалении ресурса приложения логики Azure автоматически удаляет управляемое удостоверение из идентификатора Microsoft Entra.

В следующих разделах показано, как отключить управляемое удостоверение с помощью портала Azure и шаблона Azure Resource Manager (шаблон ARM). Сведения о Azure PowerShell, Azure CLI и REST API Azure см. в статье:

Инструмент Документация
Azure PowerShell 1. Удалите назначение роли.
2. Удаление удостоверения, назначенного пользователем.
Azure CLI 1. Удалите назначение роли.
2. Удаление удостоверения, назначенного пользователем.
Azure REST API 1. Удалите назначение роли.
2. Удаление удостоверения, назначенного пользователем.

Дополнительные сведения см. в разделе "Удаление назначений ролей Azure".

Отключение управляемого удостоверения на портале Azure

Чтобы удалить доступ к управляемому удостоверению, удалите назначение ролей удостоверения из целевого ресурса, а затем отключите управляемое удостоверение.

Удалить назначение роли

Следующие шаги удалят доступ к целевому ресурсу из управляемой идентичности.

  1. На портале Azure перейдите к целевому ресурсу Azure, где требуется удалить доступ для управляемого удостоверения.

  2. На боковой панели целевого ресурса выберите элемент управления доступом (IAM). На панели инструментов выберите назначения ролей.

  3. В списке ролей выберите управляемые идентичности, которые вы хотите удалить. На панели инструментов нажмите кнопку "Удалить".

    Примечание

    Если параметр "Удалить " отключен, скорее всего, у вас нет разрешений. Дополнительные сведения о разрешениях, которые позволяют управлять ролями для ресурсов, см. в разделе "Разрешения роли администратора" в идентификаторе Microsoft Entra.

Отключить управляемое удостоверение в ресурсе логического приложения

  1. На портале Azure откройте ресурс приложения логики.

  2. На боковой панели ресурса приложения логики в разделе Параметры выберите Удостоверение, а затем выполните действия для вашей идентификации:

    • Выберите Системное назначение>Выключено>Сохранить. Когда Azure запрашивает подтверждение, нажмите кнопку "Да".

    • Выберите "Пользователь", назначенный пользователем и управляемое удостоверение, а затем нажмите кнопку "Удалить". Когда Azure запрашивает подтверждение, нажмите кнопку "Да".

Отключить управляемое удостоверение в шаблоне ARM

Если вы создали управляемое удостоверение приложения логики с помощью шаблона ARM, задайте identity для дочернего свойства объекта type значение None.

"identity": {
   "type": "None"
}