Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Azure Logic Apps (Потребление + Стандартный)
Если вы хотите избежать предоставления, хранения учетных данных, секретов или маркеров Microsoft Entra, можно использовать управляемое удостоверение для проверки подлинности доступа или подключений из рабочего процесса приложения логики к защищенным ресурсам Microsoft Entra. В Azure Logic Apps некоторые операции соединителя поддерживаются с помощью управляемого удостоверения, когда необходимо пройти проверку подлинности доступа к ресурсам, защищенным идентификатором Microsoft Entra. Azure управляет этим удостоверением и помогает обеспечить безопасность сведений проверки подлинности, чтобы вам не нужно было управлять этой конфиденциальной информацией. Дополнительные сведения см. в статье "Что такое управляемые удостоверения для ресурсов Azure"?
Azure Logic Apps поддерживает следующие типы управляемых удостоверений:
В следующем списке описываются некоторые различия между этими типами управляемых удостоверений:
Ресурс приложения логики может включать и использовать только одно уникальное удостоверение, назначаемое системой.
Ресурс приложения логики может совместно использовать одно и то же удостоверение, назначаемое пользователем, в группе других ресурсов приложения логики.
В этом руководстве показано, как выполнить следующие задачи:
Включите и настройте удостоверение, назначаемое системой для ресурса приложения логики. В этом руководстве представлен пример использования удостоверения для проверки подлинности.
Создайте и настройте удостоверение, назначаемое пользователем. В этом руководстве показано, как создать это удостоверение с помощью портала Azure или шаблона Azure Resource Manager (шаблона ARM) и использовать удостоверение для проверки подлинности. Сведения о Azure PowerShell, Azure CLI и AZURE REST API см. в следующей документации:
Tool Documentation Azure PowerShell Создание удостоверения, назначаемого пользователем Azure CLI Создание удостоверения, назначаемого пользователем Azure REST API Создание удостоверения, назначаемого пользователем
Prerequisites
Учетная запись и подписка Azure. Если у вас нет подписки, зарегистрируйтесь для бесплатной учетной записи Azure. Управляемое удостоверение и целевой ресурс Azure, где требуется доступ, должны использовать одну и ту же подписку Azure.
Целевой ресурс Azure, к которому требуется получить доступ. В этом ресурсе необходимо добавить необходимую роль для управляемого удостоверения, чтобы получить доступ к этому ресурсу от имени приложения логики или подключения. Чтобы добавить роль в управляемое удостоверение, требуются разрешения администратора Microsoft Entra , которые могут назначать роли удостоверениям в соответствующем клиенте Microsoft Entra.
Ресурс приложения логики и рабочий процесс , в котором требуется использовать триггер или действия, поддерживающие управляемые удостоверения.
Различия в управляемом удостоверении между приложениями логики "Потребление" и "Стандартный"
В зависимости от типа ресурса приложения логики можно включить удостоверение, назначаемое системой, назначаемое пользователем удостоверение или одновременно:
| Приложение логики | Environment | Поддержка управляемого удостоверения |
|---|---|---|
| Consumption | — Мультитенантные Приложения Логики Azure | — Вы можете включить удостоверение , назначаемое системой, или удостоверение, назначаемое пользователем, но не в приложении логики. — Управляемое удостоверение можно использовать на уровне ресурса приложения логики и на уровне подключения. — Если вы создаете и включаете удостоверение, назначаемое пользователем, приложение логики может одновременно иметь только одно назначаемое пользователем удостоверение. |
| Standard | — Azure Logic Apps с одним клиентом — Среда службы приложений версии 3 (ASEv3) |
— Вы можете включить как назначаемое системой удостоверение, которое включено по умолчанию, так и удостоверение, назначаемое пользователем, одновременно. Вы также можете добавить несколько удостоверений, назначенных пользователем, в приложение логики. Однако приложение логики может одновременно использовать только одно управляемое удостоверение. — Управляемое удостоверение можно использовать на уровне ресурса приложения логики и на уровне подключения. Примечание. Для гибридного развертывания проверка подлинности управляемого удостоверения в настоящее время не поддерживается. Вместо этого необходимо создать и использовать регистрацию приложения. Дополнительные сведения см. в статье "Создание рабочих процессов приложения логики уровня "Стандартный" для гибридного развертывания в собственной инфраструктуре. |
Сведения об ограничениях управляемых удостоверений в Azure Logic Apps см. в разделе "Ограничения для управляемых удостоверений" для приложений логики. Дополнительные сведения о типах ресурсов и средах приложений логики "Потребление" и "Стандартный" см. в разделе "Различия в среде ресурсов".
Где можно использовать управляемое удостоверение
В Azure Logic Apps только определенные встроенные и управляемые операции соединителя, поддерживающие OAuth с идентификатором Microsoft Entra, могут использовать управляемое удостоверение для проверки подлинности. В приведенных ниже таблицах приведены только выборки образца. Полный список см. в следующей документации:
Типы проверки подлинности для триггеров и действий, поддерживающих проверку подлинности
Службы Azure, поддерживающие управляемые удостоверения для ресурсов Azure
Службы Azure, поддерживающие проверку подлинности 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
В ресурсе приложения логики потребления необходимо вручную включить удостоверение, назначаемое системой.
На портале Azure откройте ресурс приложения логики потребления.
В меню приложения логики в разделе "Параметры" выберите "Удостоверение".
На странице "Удостоверение" в разделе "Назначенная системой" выберите "Сохранить".> Когда Azure запрашивает подтверждение, нажмите кнопку "Да".
Note
Если возникает ошибка, которая может иметь только одно управляемое удостоверение, ресурс приложения логики уже связан с удостоверением, назначаемым пользователем. Прежде чем добавить назначаемое системой удостоверение, необходимо сначала удалить назначаемое пользователем удостоверение из ресурса приложения логики.
Ресурс приложения логики теперь может использовать удостоверение, назначаемое системой. Это удостоверение зарегистрировано в идентификаторе Microsoft Entra и представлено идентификатором объекта.
Property Value Description Идентификатор объекта (субъект) < identity-resource-ID> Глобальный уникальный идентификатор (GUID), представляющий удостоверение, назначаемое системой для приложения логики в клиенте Microsoft Entra. Теперь выполните действия, которые предоставляют системным удостоверениям доступ к ресурсу далее в этом руководстве.
Включение назначаемого системой удостоверения в шаблоне 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.
В поле поиска на портале Azure введите управляемые удостоверения. В списке результатов выберите управляемые удостоверения.
На панели инструментов "Управляемые удостоверения" нажмите кнопку "Создать".
Укажите сведения об управляемом удостоверении и выберите "Проверить и создать", например:
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
На портале Azure откройте ресурс приложения логики потребления.
В меню приложения логики в разделе "Параметры" выберите "Удостоверение".
На странице "Удостоверение" выберите "Пользователь", а затем нажмите кнопку "Добавить".
В области добавления назначенных пользователем управляемых удостоверений выполните следующие действия.
В списке "Выбор подписки" выберите подписку Azure.
В списке со всеми управляемыми удостоверениями в подписке выберите нужное удостоверение, назначаемое пользователем. Чтобы отфильтровать список, в поле поиска управляемых удостоверений, назначаемых пользователем , введите имя удостоверения или группы ресурсов.
По завершении нажмите кнопку "Добавить".
Note
Если вы получите сообщение об ошибке, которое может иметь только одно управляемое удостоверение, приложение логики уже связано с удостоверением, назначаемое системой. Прежде чем добавить удостоверение, назначаемое пользователем, необходимо сначала отключить назначаемое системой удостоверение.
Теперь приложение логики связано с удостоверением, назначенным пользователем.
Теперь выполните действия, которые предоставляют удостоверению доступ к ресурсу далее в этом руководстве.
Создание назначаемого пользователем удостоверения в шаблоне 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, такие как хранилища ключей, поддерживают несколько вариантов. Вы можете выбрать доступ на основе ролей или политику доступа, которая имеет соответствующие разрешения для целевого ресурса для этого удостоверения.
На портале Azure откройте ресурс, в котором вы хотите использовать удостоверение.
В меню ресурсов выберите элемент Управления доступом (IAM)>Добавить>назначение ролей.
Note
Если параметр "Добавить назначение ролей " отключен, у вас нет разрешений на назначение ролей. Дополнительные сведения см. в статье о встроенных ролях Microsoft Entra.
Назначьте необходимую роль управляемому удостоверению. На вкладке "Роль" назначьте роль, которая предоставляет удостоверению необходимый доступ к текущему ресурсу.
В этом примере назначьте роль, которая называется участником данных BLOB-объектов хранилища, которая включает доступ на запись для больших двоичных объектов в контейнере службы хранилища Azure. Дополнительные сведения о конкретных ролях контейнера хранилища см. в разделе "Роли", которые могут обращаться к BLOB-объектам в контейнере службы хранилища Azure.
Затем выберите управляемое удостоверение, в котором нужно назначить роль. В разделе "Назначение доступа" выберите "Добавить участников>.
В зависимости от типа управляемого удостоверения выберите или укажите следующие значения:
Type Экземпляр службы Azure Subscription Member System-assigned Приложение логики < имя-подписки-Azure> < имя приложения логики> User-assigned Неприменимо < имя-подписки-Azure> < имя, назначаемое пользователем.> Дополнительные сведения о назначении ролей см. в статье "Назначение ролей" с помощью портала Azure.
После завершения можно использовать удостоверение для проверки подлинности доступа к триггерам и действиям, поддерживающим управляемые удостоверения.
Дополнительные сведения об этой задаче см. в статье "Назначение доступа к управляемому удостоверению" к ресурсу Azure или другому ресурсу.
Создание политики доступа с помощью портала Azure
Чтобы использовать управляемое удостоверение для проверки подлинности, другие ресурсы Azure также поддерживают или требуют создания политики доступа, которая имеет соответствующие разрешения для целевого ресурса для этого удостоверения. Для других ресурсов Azure, таких как учетные записи хранения Azure, вместо этого требуется назначить это удостоверение роли с соответствующими разрешениями на целевой ресурс.
На портале Azure откройте целевой ресурс, в котором вы хотите использовать удостоверение.
В этом примере в качестве целевого ресурса Azure используется хранилище ключей.
В меню ресурсов выберите"Создать>", которая открывает область "Создать политику доступа".
Note
Если ресурс не имеет параметра "Политики доступа", попробуйте назначить назначение роли.
На вкладке "Разрешения" выберите необходимые разрешения, необходимые удостоверению для доступа к целевому ресурсу.
Например, чтобы использовать удостоверение с операцией секретов списка управляемых соединителей Azure Key Vault, удостоверение должно иметь разрешения списка . Таким образом, в столбце разрешений "Секрет" выберите "Список".
Когда вы будете готовы, нажмите кнопку "Далее". На вкладке "Субъект" найдите и выберите управляемое удостоверение, которое является удостоверением, назначенным пользователем в этом примере.
Пропустите необязательный шаг приложения , нажмите кнопку "Далее" и завершите создание политики доступа.
В следующем разделе показано, как использовать управляемое удостоверение с триггером или действием для проверки подлинности доступа. В этом примере описаны шаги из предыдущего раздела, в котором вы настроили доступ к управляемому удостоверению с помощью RBAC и учетной записи хранения Azure в качестве примера. Однако общие действия по использованию управляемого удостоверения для проверки подлинности одинаковы.
Проверка подлинности доступа с помощью управляемого удостоверения
После включения управляемого удостоверения для ресурса приложения логики и предоставления этого удостоверения целевому ресурсу или службе Azure можно использовать это удостоверение в триггерах и действиях, поддерживающих управляемые удостоверения.
Important
Если у вас есть функция Azure, в которой вы хотите использовать назначаемое системой удостоверение, сначала включите проверку подлинности для функций Azure.
Ниже показано, как использовать управляемое удостоверение с триггером или действием с помощью портала Azure. Чтобы указать управляемое удостоверение в базовом определении JSON триггера или действия, ознакомьтесь с проверкой подлинности управляемого удостоверения.
На портале Azure откройте ресурс приложения логики потребления.
Если это еще не сделано, добавьте триггер или действие, которое поддерживает управляемые удостоверения.
Note
Не все операции соединителя поддерживают добавление типа проверки подлинности. Дополнительные сведения см. в разделе "Типы проверки подлинности" для триггеров и действий, поддерживающих проверку подлинности.
В добавленном триггере или действии выполните следующие действия.
Встроенные операции соединителя, поддерживающие проверку подлинности управляемого удостоверения
Эти действия продолжаются с помощью действия HTTP в качестве примера.
В списке расширенных параметров добавьте свойство Authentication , если свойство еще не отображается.
Теперь в действии отображаются как свойство проверки подлинности , так и список типов проверки подлинности .
В списке типов проверки подлинности выберите управляемое удостоверение.
Теперь в разделе проверки подлинности показаны следующие параметры:
Список управляемых удостоверений , из которого можно выбрать определенное управляемое удостоверение.
Свойство Аудитории отображается на определенных триггерах и действиях, чтобы задать идентификатор ресурса для целевого ресурса или службы Azure. В противном случае свойство Аудитории использует
https://management.azure.com/идентификатор ресурса, который является идентификатором ресурса для Azure Resource Manager.
В списке управляемых удостоверений выберите удостоверение, которое вы хотите использовать, например:
Note
Выбранный по умолчанию параметр — управляемое удостоверение, назначаемое системой, даже если у вас нет управляемых удостоверений.
Чтобы успешно использовать управляемое удостоверение, необходимо сначала включить это удостоверение в приложении логики. В приложении логики потребления можно иметь управляемое удостоверение, назначаемое системой или назначаемое пользователем, но не оба.
Дополнительные сведения см. в примере: проверка подлинности встроенного триггера или действия с помощью управляемого удостоверения.
Операции управляемого соединителя, поддерживающие проверку подлинности управляемых удостоверений
В области "Создание подключения " в списке проверки подлинности выберите управляемое удостоверение, например:
На следующей панели в поле "Имя подключения" укажите имя, используемое для подключения.
Для типа проверки подлинности выберите один из следующих вариантов на основе управляемого соединителя:
Одиночная проверка подлинности: эти соединители поддерживают только один тип проверки подлинности, который является управляемым удостоверением в данном случае.
В списке управляемых удостоверений выберите текущее управляемое удостоверение с поддержкой.
Когда вы будете готовы, нажмите кнопку "Создать".
Многофакторная проверка подлинности: эти соединители поддерживают несколько типов проверки подлинности, но вы можете выбрать и использовать только один тип одновременно.
Эти действия продолжаются с помощью действия хранилища BLOB-объектов Azure в качестве примера.
Дополнительные сведения см. в разделе "Пример: проверка подлинности триггера или действия управляемого соединителя с помощью управляемого удостоверения".
Пример. Проверка подлинности встроенного триггера или действия с помощью управляемого удостоверения
Встроенный триггер 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 |
Имя и значение параметра запроса для операции. |
В конструкторе рабочих процессов добавьте любой нужный триггер, а затем добавьте действие HTTP .
В следующем примере показан пример действия HTTP со всеми ранее описанными значениями свойств, используемыми для операции моментального снимка BLOB-объектов:
В действии HTTP добавьте свойство Authentication . В списке дополнительных параметров выберите "Проверка подлинности".
Теперь раздел проверки подлинности отображается в действииHTTP .
Note
Не все триггеры и действия поддерживают добавление типа проверки подлинности. Дополнительные сведения см. в разделе "Типы проверки подлинности" для триггеров и действий, поддерживающих проверку подлинности.
В списке типов проверки подлинности выберите управляемое удостоверение.
В списке управляемых удостоверений выберите доступные параметры в зависимости от вашего сценария.
Если вы настроили удостоверение, назначаемое системой, выберите управляемое удостоверение, назначаемое системой.
Если вы настроили удостоверение, назначаемое пользователем, выберите это удостоверение.
В этом примере продолжается управляемое удостоверение, назначаемое системой.
В некоторых триггерах и действиях отображается свойство Аудитории , чтобы задать идентификатор ресурса для целевого ресурса или службы 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корневой службы для определенной учетной записи хранения.Дополнительные сведения об авторизации доступа с помощью идентификатора Microsoft Entra для службы хранилища Azure см. в следующей документации:
Продолжайте создавать рабочий процесс так, как вы хотите.
Пример. Проверка подлинности триггера или действия управляемого соединителя с помощью управляемого удостоверения
Управляемый соединитель Azure Resource Manager имеет действие с именем "Чтение ресурса", которое может использовать управляемое удостоверение, которое можно включить в ресурсе приложения логики. В этом примере показано, как использовать управляемое удостоверение, назначаемое системой, с управляемым соединителем.
В конструкторе рабочих процессов добавьте действие Azure Resource Manager с именем "Чтение ресурса".
На панели "Создание подключения" в списке проверки подлинности выберите "Управляемое удостоверение" и нажмите кнопку "Войти".
Note
В других соединителях список типов проверки подлинности отображает управляемое удостоверение Logic Apps , поэтому выберите этот параметр.
Укажите имя подключения и выберите управляемое удостоверение, которое вы хотите использовать.
Если вы включили удостоверение, назначаемое системой, список управляемых удостоверений автоматически выбирает управляемое удостоверение, назначаемое системой. Если вместо этого вы включили удостоверение, назначаемое пользователем, список автоматически выбирает удостоверение, назначаемое пользователем.
В этом примере управляемое удостоверение, назначаемое системой , является единственным доступным выбором.
Note
Если управляемое удостоверение не включено при попытке создать или изменить подключение, или если управляемое удостоверение было удалено во время подключения с поддержкой управляемого удостоверения, возникает ошибка, которая говорит, что необходимо включить удостоверение и предоставить доступ к целевому ресурсу.
Когда вы будете готовы, нажмите кнопку "Создать".
После успешного создания подключения конструктор может получить любые динамические значения, содержимое или схему с помощью проверки подлинности управляемого удостоверения.
Продолжайте создавать рабочий процесс так, как вы хотите.
Определение ресурсов приложения логики и подключения, использующие управляемое удостоверение
Подключение, которое включает и использует управляемое удостоверение, — это специальный тип подключения, который работает только с управляемым удостоверением. Во время выполнения подключение использует управляемое удостоверение, которое включено в ресурсе приложения логики. 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 в нескольких ресурсах приложения логики, но не добавить удостоверение, назначаемое системой для каждого ресурса логики, в политику доступа целевого ресурса.
В других сценариях может потребоваться полностью настроить удостоверение, назначаемое системой, в приложении логики, чтобы можно было полностью изменить проверку подлинности на удостоверение, назначаемое пользователем, и полностью отключить назначаемое системой удостоверение.
Изменение проверки подлинности для хранилища маркеров
На портале Azure откройте свой ресурс приложения логики категории "Стандартный".
В меню ресурсов в разделе "Рабочие процессы" выберите "Подключения".
На панели "Подключения" выберите представление JSON.
В редакторе JSON найдите
managedApiConnectionsраздел, содержащий подключения API ко всем рабочим процессам в ресурсе приложения логики.Найдите подключение, в котором нужно добавить управляемое удостоверение, назначаемое пользователем.
Например, предположим, что рабочий процесс имеет подключение к 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>" }В определении подключения выполните следующие действия.
Найдите первый
authenticationраздел. Если в этомidentityразделе нетauthenticationсвойства, приложение логики неявно использует удостоверение, назначаемое системой.identityДобавьте свойство с помощью примера на этом шаге.Задайте значение свойства идентификатору ресурса для удостоверения, назначаемого пользователем.
"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>" }На портале 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
Чтобы удалить доступ к управляемому удостоверению, удалите назначение ролей удостоверения из целевого ресурса, а затем отключите управляемое удостоверение.
Удаление назначения ролей
Следующие шаги по удалению доступа к целевому ресурсу из управляемого удостоверения:
На портале Azure перейдите к целевому ресурсу Azure, где требуется удалить доступ для управляемого удостоверения.
В меню целевого ресурса выберите элемент управления доступом (IAM). На панели инструментов выберите назначения ролей.
В списке ролей выберите управляемые удостоверения, которые требуется удалить. На панели инструментов нажмите кнопку "Удалить".
Tip
Если параметр "Удалить " отключен, скорее всего, у вас нет разрешений. Дополнительные сведения о разрешениях, которые позволяют управлять ролями для ресурсов, см. в разделе "Разрешения роли администратора" в идентификаторе Microsoft Entra.
Отключение управляемого удостоверения в ресурсе приложения логики
На портале Azure откройте ресурс приложения логики.
В меню ресурсов приложения логики в разделе "Параметры" выберите "Удостоверение", а затем выполните действия по удостоверению:
Выберите "Система", назначенная>"Отключить>сохранение". Когда Azure запрашивает подтверждение, нажмите кнопку "Да".
Выберите "Пользователь", назначенный пользователем и управляемое удостоверение, а затем нажмите кнопку "Удалить". Когда Azure запрашивает подтверждение, нажмите кнопку "Да".
Отключение управляемого удостоверения в шаблоне ARM
Если вы создали управляемое удостоверение приложения логики с помощью шаблона ARM, задайте identity для дочернего свойства объекта type значение None.
"identity": {
"type": "None"
}