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


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

Область применения: Azure Logic Apps (Потребление + Стандартный)

Если вы хотите избежать предоставления, хранения учетных данных, секретов или маркеров Microsoft Entra, можно использовать управляемое удостоверение для проверки подлинности доступа или подключений из рабочего процесса приложения логики к защищенным ресурсам Microsoft Entra. В Azure Logic Apps некоторые операции соединителя поддерживаются с помощью управляемого удостоверения, когда необходимо пройти проверку подлинности доступа к ресурсам, защищенным идентификатором Microsoft Entra. Azure управляет этим удостоверением и помогает обеспечить безопасность сведений проверки подлинности, чтобы вам не нужно было управлять этой конфиденциальной информацией. Дополнительные сведения см. в статье "Что такое управляемые удостоверения для ресурсов Azure"?

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

В следующем списке описываются некоторые различия между этими типами управляемых удостоверений:

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

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

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

Prerequisites

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

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

Приложение логики Environment Поддержка управляемого удостоверения
Consumption — Мультитенантные Приложения Логики Azure — Вы можете включить удостоверение , назначаемое системой, или удостоверение, назначаемое пользователем, но не в приложении логики.

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

— Если вы создаете и включаете удостоверение, назначаемое пользователем, приложение логики может одновременно иметь только одно назначаемое пользователем удостоверение.
Standard — Azure Logic Apps с одним клиентом

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

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

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

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

Где можно использовать управляемое удостоверение

В Azure Logic Apps только определенные встроенные и управляемые операции соединителя, поддерживающие OAuth с идентификатором Microsoft Entra, могут использовать управляемое удостоверение для проверки подлинности. В приведенных ниже таблицах приведены только выборки образца. Полный список см. в следующей документации:

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

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

Примечание. Операции HTTP могут проходить проверку подлинности подключений к учетным записям хранения Azure за брандмауэрами Azure с удостоверением, назначенным системой. Однако http-операции не поддерживают удостоверение, назначаемое пользователем, для проверки подлинности одних и того же подключения.
Managed — Служба приложений 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
— Azure Sentinel
— Хранилище таблиц Azure
— виртуальная машина Azure
— SQL Server

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

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

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

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

  3. На странице "Удостоверение" в разделе "Назначенная системой" выберите "Сохранить".> Когда Azure запрашивает подтверждение, нажмите кнопку "Да".

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

    Note

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

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

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

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

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

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

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

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

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

Создание назначаемого пользователем удостоверения на портале Azure

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

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

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

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

  3. Укажите сведения об управляемом удостоверении и выберите "Проверить и создать", например:

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

    Property Required Value Description
    Subscription Yes < имя-подписки-Azure> Имя подписки Azure
    Группа ресурсов Yes < имя-группы-ресурсов-Azure> Имя группы ресурсов Azure. Создайте новую группу или выберите существующую группу. В этом примере создается новая группа с именем fabrikam-managed-identities-RG.
    Region Yes < Azure-region> Регион Azure, в котором хранятся сведения о ресурсе. В этом примере используется регион западная часть США.
    Name Yes < имя, назначаемое пользователем> Имя для предоставления удостоверения, назначаемого пользователем. В этом примере используется fabrikam-user-assigned-identity.

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

Добавление назначаемого пользователем удостоверения в приложение логики на портале Azure

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

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

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

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

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

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

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

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

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

      Note

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

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

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

  5. Теперь выполните действия, которые предоставляют удостоверению доступ к ресурсу далее в этом руководстве.

Создание назначаемого пользователем удостоверения в шаблоне ARM

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

В разделе ресурсов шаблона определение ресурса приложения логики требует следующих элементов:

  • Объект identity с свойством type , заданным для UserAssigned

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

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

{
   "$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": {}
}

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

{
   "$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": {}
      }
  ]
}

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

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

Note

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

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

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

Например, чтобы использовать управляемое удостоверение для проверки подлинности доступа к учетной записи хранения BLOB-объектов или хранилищу ключей в Azure, необходимо настроить управление доступом на основе ролей Azure (Azure RBAC) и назначить соответствующую роль для этого удостоверения учетной записи хранения или хранилища ключей соответственно.

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

Tool Documentation
Azure PowerShell Добавление назначения ролей
Azure CLI Добавление назначения ролей
Azure REST API Добавление назначения ролей

Для Azure Key Vault вы также можете создать политику доступа для управляемого удостоверения в хранилище ключей и назначить соответствующие разрешения для этого удостоверения в этом хранилище ключей. В последующих шагах этого раздела описывается, как выполнить эту задачу с помощью портала Azure. Шаблоны Resource Manager, PowerShell и Azure CLI см. в следующей документации:

Tool Documentation
Шаблон Azure Resource Manager (шаблон ARM) Определение ресурса политики доступа Key Vault
Azure PowerShell Назначение политики доступа Key Vault
Azure CLI Назначение политики доступа Key Vault

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

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

  1. На портале Azure откройте ресурс, в котором вы хотите использовать удостоверение.

  2. В меню ресурсов выберите элемент Управления доступом (IAM)>Добавить>назначение ролей.

    Note

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

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

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

  4. Затем выберите управляемое удостоверение, в котором нужно назначить роль. В разделе "Назначение доступа" выберите "Добавить участников>.

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

    Type Экземпляр службы Azure Subscription Member
    System-assigned Приложение логики < имя-подписки-Azure> < имя приложения логики>
    User-assigned Неприменимо < имя-подписки-Azure> < имя, назначаемое пользователем.>

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

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

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

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

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

  1. На портале Azure откройте целевой ресурс, в котором вы хотите использовать удостоверение.

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

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

    Note

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

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

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

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

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

  4. Когда вы будете готовы, нажмите кнопку "Далее". На вкладке "Субъект" найдите и выберите управляемое удостоверение, которое является удостоверением, назначенным пользователем в этом примере.

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

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

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

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

Important

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

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

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

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

    Note

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

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

    • Встроенные операции соединителя, поддерживающие проверку подлинности управляемого удостоверения

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

      1. В списке расширенных параметров добавьте свойство Authentication , если свойство еще не отображается.

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

        Теперь в действии отображаются как свойство проверки подлинности , так и список типов проверки подлинности .

        Снимок экрана: раздел расширенных параметров с добавленным свойством проверки подлинности и списком типов проверки подлинности.

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

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

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

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

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

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

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

        Note

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

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

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

    • Операции управляемого соединителя, поддерживающие проверку подлинности управляемых удостоверений

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

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

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

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

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

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

          2. Когда вы будете готовы, нажмите кнопку "Создать".

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

          Эти действия продолжаются с помощью действия хранилища BLOB-объектов Azure в качестве примера.

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

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

          2. Когда вы будете готовы, нажмите кнопку "Создать".

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

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

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

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

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

Important

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

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

Property Required Пример значения Description
URI Yes https://<storage-account-name>/<folder-name>/{name} Идентификатор ресурса для файла хранилища BLOB-объектов Azure в глобальной (общедоступной) среде Azure, которая использует этот синтаксис.
Method Yes PUT Метод HTTP, который использует операция моментального blob-объекта моментального снимка
Headers Для службы хранилища 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.

Важно. В исходящих запросах триггера 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 добавьте свойство Authentication . В списке дополнительных параметров выберите "Проверка подлинности".

    Снимок экрана: рабочий процесс потребления с действием HTTP и открытие списка расширенных параметров с выбранным свойством Authentication.

    Теперь раздел проверки подлинности отображается в действииHTTP .

    Note

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

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

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

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

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

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

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

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

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

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

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

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

    Important

    Убедитесь, что идентификатор целевого ресурса точно соответствует значению, которое ожидает идентификатор Microsoft Entra. В противном случае может возникнуть 400 Bad Request ошибка или 401 Unauthorized ошибка. Таким образом, если идентификатор ресурса включает в себя все конечные косые черты, обязательно включите их. В противном случае не включайте их.

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

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

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

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

  6. Продолжайте создавать рабочий процесс так, как вы хотите.

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

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

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

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

    Note

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

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

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

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

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

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

    Note

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

  4. Когда вы будете готовы, нажмите кнопку "Создать".

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

  6. Продолжайте создавать рабочий процесс так, как вы хотите.

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

Подключение, которое включает и использует управляемое удостоверение, — это специальный тип подключения, который работает только с управляемым удостоверением. Во время выполнения подключение использует управляемое удостоверение, которое включено в ресурсе приложения логики. 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 определение ресурса базового соединителя отличается в зависимости от того, есть ли у вас ресурс приложения логики "Потребление" или "Стандартный", а также на том, отображается ли соединитель одиночная проверка подлинности или многофакторная проверка подлинности.

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

Single-authentication

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

  • Свойство 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"
    }
},

Multi-authentication

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

  • Свойство 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

Когда рабочий процесс приложения логики уровня "Стандартный" использует подключение 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.

    В этом разделе описывается проверка подлинности, используемая для взаимодействия с внутренним хранилищем маркеров. В прошлом этот раздел всегда был установлен ManagedServiceIdentity для приложения, которое развертывается в 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 добавьте удостоверение в политики доступа к хранилищу ключей. Для хранилища BLOB-объектов Azure назначьте необходимую роль для удостоверения учетной записи хранения.

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

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

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

Note

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

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

Действия, описанные в этом разделе, описываются на портале Azure и шаблоне Azure Resource Manager (шаблон ARM). Сведения о Azure PowerShell, Azure CLI и AZURE REST API см. в следующей документации:

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

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

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

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

Удаление назначения ролей

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

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

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

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

    Tip

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

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

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

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

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

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

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

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

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