Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Logic Apps использует службу хранилища Azure для хранения и автоматического шифрования неактивных данных. Шифрование защищает данные и помогает соблюдать корпоративные обязательства по обеспечению безопасности и соответствию требованиям. По умолчанию служба хранилища Azure использует для шифрования данных ключи, управляемые корпорацией Майкрософт. Дополнительные сведения см. в статье Шифрование службы хранилища Azure для неактивных данных.
Для более точного управления доступом и защиты конфиденциальных данных в Azure Logic Apps можно настроить дополнительную защиту для следующих областей:
- Доступ к операциям логического приложения.
- Доступ к входам и выводам истории запуска.
- Доступ к входным параметрам.
- Типы аутентификации для триггеров и действий, поддерживающих аутентификацию.
- Доступ для входящих вызовов к триггерам на основе запросов.
- Доступ к исходящим вызовам другим сервисам и системам.
- Заблокируйте создание подключений для определённых разъёмов.
- Рекомендации по изоляции для логических приложений.
- Azure Security Baseline for Azure Logic Apps.
Дополнительные сведения о безопасности в Azure см. в следующих разделах:
Доступ к операциям приложения логики
Прежде чем создавать или управлять логическими приложениями, их рабочими процессами и соединениями, нужны специальные права, которые предоставляются через роли с помощью ролевой системы контроля доступа Azure (Azure RBAC). Вы можете настроить разрешения так, чтобы только определённые пользователи или группы могли выполнять определённые задачи, такие как управление, редактирование и просмотр логических приложений. Чтобы управлять их разрешениями, вы можете назначить встроенные или настраиваемые роли участникам, имеющим доступ к вашей подписке Azure.
Осторожность
Всегда назначайте роли, предоставляйте доступ или разрешения на основе принципа наименьшей привилегии. Позвольте пользователям, приложениям и управляемым идентичностям получать доступ только к тем данным и операциям, которые им нужны для выполнения своих задач.
Эта лучшая практика снижает поверхность атаки и последствия утечки безопасности, если это происходит в приложении, интегрированном с платформа удостоверений Майкрософт.
Перед назначением роли ознакомьтесь со следующими лучшими практиками, аспектами и последствиями:
Всегда назначайте роли уровня участников или права на редактирование рабочих процессов, основанные на наименьших привилегиях, только доверенным принципалам .
Всегда назначайте только минимальные необходимые права для управляемых идентичностей в рабочих процессах логических приложений.
Права на редактирование участников или рабочих процессов равнозначны удержанию разрешений для каждой управляемой идентичности , назначенной этому рабочему процессу.
Любой, обладающий правами на редактирование участников или рабочих процессов, может настроить встроенные HTTP-операции, использующие управляемые идентичности для запроса токена носителя идентичности для любой аудитории. Они могут отправлять запросы с этими токенами на любую конечную точку или место назначения. Платформа не ограничивает пункт назначения. Токены носителя действительны в течение одного часа и могут получать доступ к любому Azure API, где их идентичности доступны.
Azure Logic Apps имеет следующие конкретные роли в зависимости от того, используется ли у вас рабочий процесс приложения логики "Потребление" или "Стандартный":
Рабочие процессы потребления
| Должность | Описание |
|---|---|
| Участник приложения Logic | Вы можете управлять рабочими процессами приложения логики, но не можете изменить доступ к ним. |
| Оператор приложения Logic | Вы можете читать, включать и отключать рабочие процессы приложения логики, но не можете изменять или обновлять их. |
| участника | У вас есть полный доступ к управлению всеми ресурсами, но вы не можете назначать роли в Azure RBAC, управлять назначениями в Azure Blueprints или предоставлять общий доступ к коллекциям изображений. |
Например, предположим, что вам нужно работать с рабочим процессом логического приложения, который вы не создавали, и аутентифицировать соединения, используемые этим рабочим процессом. Для подписки Azure требуются разрешения участника для группы ресурсов, содержащей этот ресурс приложения логики. Если вы создаёте ресурс логического приложения, вы автоматически получаете доступ к участникам .
Чтобы другие пользователи не могли изменить или удалить ваш рабочий процесс приложения логики, можно использовать блокировку ресурсов Azure. Эта возможность предотвращает изменение или удаление производственных ресурсов другими пользователями. Дополнительные сведения о безопасности подключения см. в разделах Конфигурация подключения в Azure Logic Apps и Безопасность и шифрование подключения.
Стандартные рабочие процессы
| Должность | Описание |
|---|---|
| Стандартный читатель Logic Apps | У вас есть доступ в режиме "только чтение" ко всем ресурсам в стандартном приложении логики и рабочих процессах, включая запуски рабочего процесса и их историю. |
| Стандартный оператор логических приложений | У вас есть доступ к включению, повторной отправке и отключению рабочих процессов, а также к созданию подключений к службам, системам и сетям для стандартного приложения логики. Роль оператора может выполнять задачи администрирования и поддержки на платформе Azure Logic Apps, но не имеет разрешений на изменение рабочих процессов или параметров. |
| Разработчик стандарта Logic Apps | У вас есть доступ к созданию и изменению рабочих процессов, подключений и параметров для стандартного приложения логики. Роль разработчика не имеет разрешений на внесение изменений за пределами рабочих процессов, например изменений на уровне приложения, таких как настройка интеграции с виртуальной сетью. Планы службы приложений не поддерживаются. |
| Logic Apps Standard Contributor | У вас есть доступ к управлению всеми аспектами стандартного приложения логики, но вы не можете изменить доступ или владельца. |
Доступ к данным истории выполнения
Во время работы приложения логики все данные шифруются во время передачи с помощью протокола TLS и при хранении. Когда приложение логики завершит работу, вы сможете просмотреть журнал этого выполнения, включая шаги, которые были выполнены, а также состояние, продолжительность, входные и выходные данные для каждого действия. Эта подробная информация дает представление о том, как работало приложение логики и с чего можно начать устранение возникающих проблем.
Когда вы просматриваете журнал выполнения приложения логики, Azure Logic Apps проверяет подлинность вашего доступа, а затем предоставляет ссылки на входные и выходные данные для запросов и ответов для каждого запуска. Однако для действий, которые обрабатывают пароли, секреты, ключи или другую конфиденциальную информацию, вы хотите запретить другим пользователям просматривать эти данные и получать к ним доступ. Например, если приложение логики получает секрет из Azure Key Vault для использования при проверке подлинности HTTP-действия, вы хотите скрыть этот секрет от просмотра.
Чтобы управлять доступом к входным и выходным данным в журнале выполнения приложения логики, у вас есть следующие варианты:
Ограничение доступа по диапазону IP-адресов.
Этот параметр помогает защитить доступ к журналу выполнений на основе запросов из определенного диапазона IP-адресов.
Защитите данные в журнале выполнения с помощью обфускации.
Во многих триггерах и действиях можно защитить входные и выходные данные или и то, и другое в журнале выполнения приложения логики.
Ограничение доступа по диапазону IP-адресов
Вы можете ограничить доступ к входным и выходным данным в журнале выполнения для рабочих процессов приложения логики, чтобы эти данные могли просматривать только запросы из определенных диапазонов IP-адресов.
Например, чтобы запретить кому-либо доступ к входам и выходам, укажите диапазон IP-адресов, такой как 0.0.0.0-0.0.0.0. Только пользователь с разрешениями администратора может снять это ограничение, что обеспечивает возможность своевременного доступа к данным в рабочих процессах приложения логики. Допустимый диапазон IP-адресов использует следующие форматы: x.x.x.x/x или x.x.x.x-x.x.x.x
Чтобы указать допустимые диапазоны IP-адресов, выполните следующие действия для приложения логики потребления или стандартного приложения на портале Azure или в шаблоне Azure Resource Manager:
Рабочие процессы потребления
На портале Azure откройте рабочий процесс приложения логики потребления в конструкторе.
В меню приложения логики в разделе Параметры выберите Параметры рабочего процесса.
В разделе Конфигурация управления доступом в разделе Разрешенные входящие IP-адреса в списке Активировать параметр доступа выберите Определенные диапазоны IP-адресов.
В поле Диапазоны IP-адресов для содержимого укажите диапазоны IP-адресов, которые могут получать доступ к содержимому с входных и выходных данных.
Стандартные рабочие процессы
На портале Azure откройте ресурс стандартного логического приложения.
В меню приложения логики в разделе Параметры выберите Сеть.
В разделе Конфигурация входящего трафика рядом с пунктом Доступ к общедоступной сети выберите Включено без ограничения доступа.
На странице Ограничения доступа в разделе Доступ к приложениям выберите Включено для выбранных виртуальных сетей и IP-адресов.
В разделе Доступ к сайту и правила на вкладке Главный сайт добавьте одно или несколько правил для разрешения или запрета запросов из определенных диапазонов IP-адресов. Вы также можете использовать настройки фильтра заголовков HTTP и настройки переадресации. Допустимый диапазон IP-адресов использует следующие форматы: x.x.x.x/x или x.x.x.x-x.x.x.x
Дополнительные сведения см. в статье Блокировка входящих IP-адресов в Azure Logic Apps (Standard).
Защита данных в журнале выполнения с помощью обфускации
Многие триггеры и действия имеют параметры для защиты входных и выходных данных или и того, и другого из журнала выполнения приложения логики. Все управляемые ипользовательские соединители поддерживают эти параметры. Однако следующие встроенные операциине поддерживают эти параметры:
| Безопасный ввод данных - не поддерживается | Безопасные выходные данные - не поддерживаются |
|---|---|
| Добавление в переменную массива Добавление в строковую переменную Переменная декрементации Для каждого Если Инкрементная переменная Инициализация переменной Повторение Размах Установить переменную Выключатель Завершить До |
Добавление в переменную массива Добавление в строковую переменную Сочинить Переменная декрементации Для каждого Если Инкрементная переменная Инициализация переменной Анализ JSON Повторение Ответ Размах Установить переменную Выключатель Завершить До Ждать |
Рекомендации по обеспечению безопасности входных и выходных данных
Прежде чем использовать эти параметры для защиты этих данных, ознакомьтесь со следующими рекомендациями:
Если вы скрываете входные или выходные данные триггера или действия, Azure Logic Apps не отправляет защищенные данные в Azure Log Analytics. Кроме того, вы не можете добавить отслеживаемые свойства в этот триггер или действие для мониторинга.
API Azure Logic Apps для обработки журнала рабочих процессов не возвращает защищенные выходные данные.
Чтобы защитить выходные данные от действия, которое скрывает входные данные или явно затемняет выходные данные, вручную включите функцию «Защищенные выходные данные » в этом действии.
Убедитесь, что вы включили безопасные входные данные или безопасные выходные данные в нисходящих действиях, где ожидается, что журнал выполнения будет скрывать эти данные.
Настройка защищенных выходов
Когда вы вручную включаете безопасные выходные данные в триггере или действии, Azure Logic Apps скрывает эти выходные данные в журнале выполнения. Если подчиненное действие явно использует эти защищенные выходные данные в качестве входных данных, Azure Logic Apps скрывает входные данные этого действия в журнале выполнения, но не включает параметр безопасных входных данных действия.
Действия "Создание", "Анализ JSON" и "Ответ " имеют только параметр "Безопасные входные данные ". Когда этот параметр включен, он также скрывает выходные данные этих действий. Если эти действия явно используют вышестоящие защищенные выходные данные в качестве входных данных, Azure Logic Apps скрывает входные и выходные данные этих действий, но не включает параметр Безопасные входные данные этих действий. Если нижнее действие явно использует скрытые выходные данные из действия Compose, Parse JSON или Response в качестве входных данных, Azure Logic Apps не скрывает входные или выходные данные этого нижестоящего действия.
Настройка защищенных входов
Когда вы вручную включаете безопасные входные данные в триггере или действии, Azure Logic Apps скрывает эти входные данные в журнале выполнения. Если подчиненное действие явно использует видимые выходные данные этого триггера или действия в качестве входных данных, Azure Logic Apps скрывает входные данные этого подчиненного действия в журнале выполнения, но не включаетбезопасные входные данные в этом действии и не скрывает выходные данные этого действия.
Если действия Compose, Parse JSON и Response явно используют видимые выходные данные триггера или действия с защищенными входными данными, Azure Logic Apps скрывает входные и выходные данные этих действий, но не включает параметр безопасных входных данных этого действия. Если нижнее действие явно использует скрытые выходные данные из действия Compose, Parse JSON или Response в качестве входных данных, Azure Logic Apps не скрывает входные или выходные данные этого нижестоящего действия.
Безопасные входы и выходы в дизайнере
Откройте рабочий процесс приложения логики в конструкторе на портале Azure.
В конструкторе выберите триггер или действие, для которого требуется защитить конфиденциальные данные.
В открывшейся информационной панели выберите Параметры и разверните Безопасность.
Включите Безопасные входы, Безопасные выходы или оба.
Триггер или действие теперь отображается в строке заголовка со значком замка. Все маркеры, представляющие защищенные выходные данные предыдущих действий, также отображаются значками блокировок. Например, в следующем действии после выбора токена для защищенного выхода из списка динамического содержимого этот токен отображается со значком замка.
После выполнения рабочего потока можно просмотреть историю выполнения.
Выберите Обзор в меню приложения Логика потребления или в меню Стандартный рабочий процесс.
В разделе Журнал запусков выберите прогон, который вы хотите просмотреть.
В области История выполнения рабочего процесса выберите действия, которые хотите просмотреть.
Если вы решили скрыть как входные, так и выходные данные, эти значения теперь отображаются скрытыми.
Защита входных и выходных данных в представлении кода
В базовом определении триггера или действия добавьте или обновите массив, runtimeConfiguration.secureData.properties указав одно или оба следующих значения:
-
"inputs": Защищает ввод данных в истории выполнения. -
"outputs": Защищает выходные данные в истории выполнения.
"<trigger-or-action-name>": {
"type": "<trigger-or-action-type>",
"inputs": {
<trigger-or-action-inputs>
},
"runtimeConfiguration": {
"secureData": {
"properties": [
"inputs",
"outputs"
]
}
},
<other-attributes>
}
Доступ к входным параметрам
Если вы развертываете в разных средах, рассмотрите возможность параметризации значений в определении рабочего процесса, которые различаются в зависимости от этих сред. Таким образом, вы можете избежать жестко запрограммированных данных, используя шаблон Azure Resource Manager для развертывания приложения логики, защитить конфиденциальные данные, определив защищенные параметры, и передать эти данные в виде отдельных входных данных через параметры шаблона с помощью файла параметров.
Например, если вы аутентифицируете действия HTTP с помощью OAuth c Microsoft Entra ID, вы можете определить и скрыть параметры, которые принимают идентификатор клиента и клиентский секрет, используемые для аутентификации. Чтобы определить эти параметры в рабочем процессе приложения логики, используйте parameters раздел определения рабочего процесса приложения логики и шаблон Resource Manager для развертывания. Чтобы обезопасить значения параметров, которые не должны отображаться при редактировании приложения логики или просмотре журнала выполнения, определите параметры с помощью securestring типа or secureobject и при необходимости используйте кодировку. Параметры с этим типом не возвращаются вместе с определением ресурса и недоступны при просмотре ресурса после развертывания. Чтобы получить доступ к значениям этих параметров во время выполнения, используйте @parameters('<parameter-name>') выражение в определении рабочего процесса. Это выражение вычисляется только во время выполнения и описывается языком определения рабочих процессов.
Замечание
Если вы используете параметр в заголовке или теле запроса, он может быть виден при просмотре журнала выполнения рабочего процесса и исходящего HTTP-запроса. Убедитесь, что вы также настроили соответствующие правила доступа к контенту. Вы также можете использовать обфускацию , чтобы скрыть входные и выходные данные в истории выполнения.
По умолчанию Authorization заголовки не видны на входах и выходах.
Так что, если там используется секрет, этот секрет невозможно восстановить.
Для получения дополнительной информации ознакомьтесь со следующими разделами в этом разделе:
- Защищённые параметры в определениях рабочих процессов.
- Защитите данные в журнале выполнения с помощью обфускации.
Если вы автоматизируете развертывание для приложений логики с помощью шаблонов Resource Manager, вы можете определить защищенные параметры шаблона, которые обрабатываются при развертывании с помощью типов securestring и secureobject. Чтобы определить параметры шаблона, используйте раздел верхнего уровня parameters шаблона, который является отдельным и отличается от раздела определения parameters рабочего процесса. Чтобы указать значения параметров шаблона, используйте отдельный файл параметров.
Например, если вы используете секреты, вы можете определить и использовать защищенные параметры шаблона, которые извлекают эти секреты из Azure Key Vault при развертывании. После этого вы можете сослаться на хранилище ключей и секрет в файле параметров. Для получения дополнительной информации ознакомьтесь со следующими разделами:
- Передавайте конфиденциальные значения при развертывании с помощью Azure Key Vault.
- Защищённые параметры в шаблонах Azure Resource Manager позже в этой теме.
Безопасные параметры в определениях бизнес-процессов (Бизнес-процесс по потреблению)
Чтобы защитить конфиденциальную информацию в определении рабочего процесса приложения логики, используйте защищенные параметры, чтобы эти сведения не отображались после сохранения рабочего процесса приложения логики. Например, предположим, что у вас есть HTTP-действие, требующее базовой аутентификации, которое использует имя пользователя и пароль. В определении рабочего процесса раздел parameters с помощью basicAuthPasswordParam типа определяет параметры basicAuthUsernameParam и securestring. Затем определение действия ссылается на эти параметры в разделе authentication .
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com",
"authentication": {
"type": "Basic",
"username": "@parameters('basicAuthUsernameParam')",
"password": "@parameters('basicAuthPasswordParam')"
}
},
"runAfter": {}
}
},
"parameters": {
"basicAuthPasswordParam": {
"type": "securestring"
},
"basicAuthUsernameParam": {
"type": "securestring"
}
},
"triggers": {
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": {}
}
}
},
"contentVersion": "1.0.0.0",
"outputs": {}
}
Защищенные параметры в шаблонах Azure Resource Manager (процесс потребления)
Шаблон Resource Manager для ресурса и рабочего процесса приложения логики состоит из нескольких parameters разделов. Чтобы защитить пароли, ключи, секреты и другую конфиденциальную информацию, определите защищенные параметры на уровне шаблона и на уровне определения рабочего процесса с помощью securestring типа or secureobject . Затем эти значения можно сохранить в Azure Key Vault и использовать файл параметров для ссылки на хранилище ключей и секрет. Затем шаблон извлекает эту информацию при развертывании. Дополнительные сведения см. в статье Передача конфиденциальных значений при развертывании с помощью Azure Key Vault.
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Этот список включает в себя более подробную информацию об этих parameters разделах:
На верхнем уровне шаблона раздел
parametersопределяет параметры значений, которые шаблон использует при развертывании. Например, эти значения могут включать строки подключения для определенной среды развертывания. Затем вы можете сохранить эти значения в отдельном файле параметров, что упрощает изменение этих значений.В определении ресурса приложения логики, но вне его рабочего процесса, в разделе
parametersуказываются значения параметров определения рабочего процесса. В этом разделе можно присвоить эти значения с помощью выражений шаблона, которые ссылаются на параметры шаблона. Эти выражения вычисляются при развертывании.В определении рабочего процесса есть раздел, определяющий
parametersпараметры, которые рабочий процесс приложения логики использует во время выполнения. Затем вы можете ссылаться на эти параметры в рабочем процессе приложения логики с помощью выражений определения рабочего процесса, которые оцениваются во время выполнения.
Этот пример шаблона с несколькими определениями защищенных параметров, использующих securestring тип:
| Имя параметра | Описание |
|---|---|
TemplatePasswordParam |
Параметр шаблона, принимающий пароль для передачи в параметр basicAuthPasswordParam определения рабочего процесса. |
TemplateUsernameParam |
Параметр шаблона, принимающий имя пользователя, которое затем передается в параметр определения basicAuthUserNameParam рабочего процесса. |
basicAuthPasswordParam |
Параметр определения рабочего процесса, который принимает пароль для обычной проверки подлинности в действии HTTP |
basicAuthUserNameParam |
Параметр определения рабочего процесса, который принимает имя пользователя для обычной проверки подлинности в действии HTTP |
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"LogicAppName": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"metadata": {
"description": "Name of the Logic App."
}
},
"TemplatePasswordParam": {
"type": "securestring"
},
"TemplateUsernameParam": {
"type": "securestring"
},
"LogicAppLocation": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"allowedValues": [
"[resourceGroup().location]",
"eastasia",
"southeastasia",
"centralus",
"eastus",
"eastus2",
"westus",
"northcentralus",
"southcentralus",
"northeurope",
"westeurope",
"japanwest",
"japaneast",
"brazilsouth",
"australiaeast",
"australiasoutheast",
"southindia",
"centralindia",
"westindia",
"canadacentral",
"canadaeast",
"uksouth",
"ukwest",
"westcentralus",
"westus2"
],
"metadata": {
"description": "Location of the Logic App."
}
}
},
"variables": {},
"resources": [
{
"name": "[parameters('LogicAppName')]",
"type": "Microsoft.Logic/workflows",
"location": "[parameters('LogicAppLocation')]",
"tags": {
"displayName": "LogicApp"
},
"apiVersion": "2016-06-01",
"properties": {
"definition": {
"$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://www.microsoft.com",
"authentication": {
"type": "Basic",
"username": "@parameters('basicAuthUsernameParam')",
"password": "@parameters('basicAuthPasswordParam')"
}
},
"runAfter": {}
}
},
"parameters": {
"basicAuthPasswordParam": {
"type": "securestring"
},
"basicAuthUsernameParam": {
"type": "securestring"
}
},
"triggers": {
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"schema": {}
}
}
},
"contentVersion": "1.0.0.0",
"outputs": {}
},
"parameters": {
"basicAuthPasswordParam": {
"value": "[parameters('TemplatePasswordParam')]"
},
"basicAuthUsernameParam": {
"value": "[parameters('TemplateUsernameParam')]"
}
}
}
}
],
"outputs": {}
}
Типы проверки подлинности для соединителей, поддерживающих проверку подлинности
В следующей таблице указаны типы проверки подлинности, доступные в операциях соединителя, где можно выбрать тип проверки подлинности.
| Тип аутентификации | Логическое приложение и поддерживаемые разъёмы |
|---|---|
| Базовая | Управление API Azure, Служба приложений Azure, HTTP, HTTP + Swagger, веб-перехватчик HTTP |
| Сертификат клиента | Управление API Azure, Служба приложений Azure, HTTP, HTTP + Swagger, веб-перехватчик HTTP |
| Active Directory OAuth (OAuth 2.0 с идентификатором Microsoft Entra) |
-
Потребление: управление API Azure, служба приложений Azure, функции Azure, HTTP, HTTP + Swagger, веб-перехватчик HTTP - Стандартный: Автоматизация Azure, Хранилище BLOB-объектов Azure, Концентраторы событий Azure, Очереди Azure, Служебная шина Azure, Таблицы Azure, HTTP, Веб-перехватчик HTTP, SQL Server |
| Сырой | Управление API Azure, Служба приложений Azure, Функции Azure, HTTP, HTTP + Swagger, веб-перехватчик HTTP |
| Управляемая идентичность |
Встроенные разъемы: - Потребление: управление API Azure, служба приложений Azure, функции Azure, HTTP, веб-перехватчик HTTP - Стандартный: Автоматизация Azure, Хранилище BLOB-объектов Azure, Концентраторы событий Azure, Очереди Azure, Служебная шина Azure, Таблицы Azure, HTTP, Веб-перехватчик HTTP, SQL Server Примечание: В настоящее время большинство встроенных коннекторов на основе поставщиков услуг не поддерживают выбор управляемых удостоверений, назначаемых пользователем, для аутентификации. Управляемые соединители: Служба приложений Azure, Автоматизация Azure, Хранилище BLOB-объектов Azure, Экземпляр контейнера Azure, Azure Cosmos DB, Обозреватель данных Azure, Фабрика данных Azure, Озеро данных Azure, Сетка событий Azure, Концентраторы событий Azure, Azure IoT Central версии 2, Azure IoT Central версии 3, Azure Key Vault, Azure Log Analytics, Очереди Azure, Azure Resource Manager, Служебная шина Azure, Azure Sentinel, Хранилище таблиц Azure, Виртуальная машина Azure, HTTP с идентификатором Microsoft Entra, SQL Server |
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Доступ для входящих вызовов к запросным триггерам
Входящие вызовы, которые приложение логики получает через триггер на основе запроса, такой как триггер запроса или триггер веб-перехватчика HTTP, поддерживают шифрование и защищены как минимум протоколом TLS 1.2, ранее известным как протокол SSL. Azure Logic Apps применяет эту версию при получении входящего вызова триггера Request или обратного вызова для триггера или действия HTTP-вебхука.
Замечание
Если возникают ошибки подтверждения TLS, убедитесь, что вы используете TLS 1.2. Дополнительные сведения см. в разделе Решение проблемы TLS 1.0.
Для входящих вызовов используйте следующие наборы шифров:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384.
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384.
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.
Это важно
Для обеспечения обратной совместимости Azure Logic Apps в настоящее время поддерживает некоторые старые наборы шифров. Однако не используйте старые наборы шифров при разработке новых приложений, так как они могут не поддерживаться в будущем.
Например, вы можете найти следующие наборы шифров, если проверите сообщения о подтверждении TLS в Azure Logic Apps или с помощью средства безопасности по URL-адресу приложения логики. Снова не используйте эти старые пакеты:
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA.
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.
- TLS_RSA_WITH_AES_256_GCM_SHA384.
- TLS_RSA_WITH_AES_128_GCM_SHA256.
- TLS_RSA_WITH_AES_256_CBC_SHA256.
- TLS_RSA_WITH_AES_128_CBC_SHA256.
- TLS_RSA_WITH_AES_256_CBC_SHA.
- TLS_RSA_WITH_AES_128_CBC_SHA.
- TLS_RSA_WITH_3DES_EDE_CBC_SHA.
В следующем списке перечислены способы, с помощью которых можно ограничить доступ к триггерам, принимающим входящие вызовы в рабочий процесс логического приложения, чтобы только авторизованные клиенты могли вызывать его.
- Включите OAuth с помощью Microsoft Entra ID.
- Создание ключей или токенов подписанного общего доступа (SAS).
- Отключите аутентификацию с использованием подписи общего доступа (SAS).
- Ограничить входящие IP-адреса.
- Опубликуйте приложение логики с помощью Azure API Management.
Включение OAuth 2.0 с помощью идентификатора Microsoft Entra ID
В рабочем процессе потребления, который начинается с триггера на основе запроса, можно проверить подлинность и авторизовать входящие вызовы, отправленные в конечную точку, созданную этим триггером, включив OAuth 2.0 с идентификатором Microsoft Entra. Чтобы настроить эту проверку подлинности, определите или добавьте политику авторизации на уровне ресурса приложения логики. Таким образом, входящие вызовы используют маркеры доступа OAuth для авторизации.
Когда рабочий процесс приложения логики получает входящий запрос, содержащий маркер доступа OAuth, Azure Logic Apps сравнивает утверждения маркера с утверждениями, указанными в каждой политике авторизации. Если существует соответствие между утверждениями токена и всеми утверждениями хотя бы в одной политике безопасности, авторизация входящего запроса проходит успешно. Токен может иметь больше утверждений, чем указано в политике авторизации.
В стандартном рабочем процессе, который начинается с триггера Запрос (но не с триггера веб-перехватчика), вы можете использовать возможности Функций Azure для аутентификации входящих вызовов, отправляемых в конечную точку, созданную триггером Запрос, посредством управляемого удостоверения. Это положение также называется "Easy Auth". Дополнительные сведения см. в статье Активация рабочих процессов в стандартных приложениях логики с помощью Easy Auth.
Рекомендации перед включением OAuth 2.0 с Microsoft Entra ID
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
В рабочих процессах потребления входящие вызовы URL-адреса конечной точки для триггера на основе запроса могут использовать только одну схему авторизации: OAuth 2.0 с идентификатором Microsoft Entra или подписанный URL-адрес (SAS). Хотя использование одной схемы не отключает другую, если вы используете обе схемы одновременно, Azure Logic Apps создает ошибку, так как служба не знает, какую схему выбрать. Если рабочий процесс потребления начинается с триггера запроса, можно отключить проверку подлинности SAS, а также ограничить авторизацию, чтобы использовать только OAuth 2.0 с идентификатором Microsoft Entra. Для стандартных рабочих процессов можно использовать другие типы проверки подлинности, не отключая SAS.
Azure Logic Apps поддерживает схемы авторизации типа носителя или подтверждения владения (только для приложения логических процессов потребления) для токенов доступа Microsoft Entra ID OAuth. Однако в
Authorizationзаголовке маркера доступа должен быть указан либо типBearer, либо типPoP. Дополнительные сведения о том, как получить и использовать токен PoP, см. в статье Получение токена подтверждения владения (PoP).Ресурс приложения "Логика потребления" ограничен максимальным количеством политик авторизации. Каждая политика авторизации также имеет максимальное количество требований. Дополнительные сведения см. в статье Ограничения и конфигурация для Azure Logic Apps.
Политика авторизации должна включать как минимум претензии эмитента и аудитории . Утверждение Issuer имеет значение, которое начинается с
https://sts.windows.net/илиhttps://login.microsoftonline.com/(OAuth V2) в качестве идентификатора издателя для Microsoft Entra ID. Утверждение Audience имеет значение, которое соответствует ожидаемой аудитории для ресурса вашего приложения логики.Например, предположим, что ресурс приложения логики имеет политику авторизации, для которой требуются два типа утверждений: Audience и Issuer. Этот пример полезных данных для декодированного токена доступа содержит оба типа утверждений, где
aud— значение Audience иiss— значение Issuer :{ "aud": "https://management.core.windows.net/", "iss": "https://sts.windows.net/<Azure-AD-issuer-ID>/", "iat": 1582056988, "nbf": 1582056988, "exp": 1582060888, "_claim_names": { "groups": "src1" }, "_claim_sources": { "src1": { "endpoint": "https://graph.windows.net/7200000-86f1-41af-91ab-2d7cd011db47/users/00000-f433-403e-b3aa-7d8406464625d7/getMemberObjects" } }, "acr": "1", "aio": "AVQAq/8OAAAA7k1O1C2fRfeG604U9e6EzYcy52wb65Cx2OkaHIqDOkuyyr0IBa/YuaImaydaf/twVaeW/etbzzlKFNI4Q=", "amr": [ "rsa", "mfa" ], "appid": "c44b4083-3bb0-00001-b47d-97400853cbdf3c", "appidacr": "2", "deviceid": "bfk817a1-3d981-4dddf82-8ade-2bddd2f5f8172ab", "family_name": "Sophia Owen", "given_name": "Sophia Owen (Fabrikam)", "ipaddr": "167.220.2.46", "name": "sophiaowen", "oid": "3d5053d9-f433-00000e-b3aa-7d84041625d7", "onprem_sid": "S-1-5-21-2497521184-1604012920-1887927527-21913475", "puid": "1003000000098FE48CE", "scp": "user_impersonation", "sub": "KGlhIodTx3XCVIWjJarRfJbsLX9JcdYYWDPkufGVij7_7k", "tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee", "unique_name": "SophiaOwen@fabrikam.com", "upn": "SophiaOwen@fabrikam.com", "uti": "TPJ7nNNMMZkOSx6_uVczUAA", "ver": "1.0" }
Включите OAuth 2.0 с Microsoft Entra ID как единственный способ обращения к конечной точке запроса
Для конечных точек на основе запросов можно ограничить авторизацию, чтобы использовать только OAuth 2.0 с идентификатором Microsoft Entra. Этот вариант работает, даже если вы также отключите аутентификацию с помощью общей подписи доступа (SAS).
Для рабочего процесса настройте триггер запроса или триггер веб-перехватчика HTTP с возможностью проверки маркера доступа OAuth, выполнив действия по включению заголовка "Авторизация" в выходные данные триггера запроса или веб-перехватчика HTTP.
Замечание
На этом шаге
Authorizationзаголовок становится видимым в истории выполнения расчетной схемы и в выходных данных триггера.На портале Azure откройте рабочий процесс в конструкторе.
В конструкторе выберите триггер. В открывшейся информационной панели выберите Параметры.
В разделе Общие>условия триггера выберите Добавить. В поле условия триггера введите одно из следующих выражений в зависимости от типа маркера, который вы хотите использовать:
@startsWith(triggerOutputs()?['headers']?['Authorization'], 'Bearer')-или-
@startsWith(triggerOutputs()?['headers']?['Authorization'], 'PoP')
Если вы вызываете конечную точку триггера без надлежащих данных авторизации, в истории выполнения триггер отображается как Skipped без какого-либо сообщения о том, что условие триггера не выполнено.
Получите токен Proof-of-Possession (PoP)
Библиотеки проверки подлинности Microsoft (MSAL) предоставляют маркеры PoP для использования. Если для рабочего процесса приложения "Логика потребления", который вы хотите вызвать, требуется маркер PoP, вы можете получить этот маркер с помощью библиотек MSAL. В следующих примерах показано, как получить токены PoP:
Консольное приложение .NET Core, вызывающее защищённый веб-API с собственной идентификацией.
SignedHttpRequest, также известный как PoP (Доказательство владения).
Чтобы использовать токен PoP с рабочим процессом Consumption Logic App, выполните шаги по настройке OAuth с идентификатором Microsoft Entra ID.
Включите OAuth с помощью Microsoft Entra ID для вашего ресурса Consumption Logic App
Чтобы добавить политику авторизации в приложение "Логика потребления", выполните следующие действия для портала Azure или шаблона Azure Resource Manager:
В портале Azure откройте приложение логики потребления и рабочий процесс в конструкторе.
В меню приложения логики в разделе Параметры выберите Авторизация.
На странице Авторизация выберите Добавить политику.
Предоставьте сведения о политике авторизации, указав типы утверждений и значения, которые приложение логики ожидает в маркере доступа, представленном при каждом входящем вызове триггера запроса :
Недвижимость Обязательно Тип Описание Имя политики Да Струна Имя, которое вы хотите использовать для политики авторизации Тип политики Да Струна AAD для токенов типа bearer или AADPOP для токенов типа Proof-of-Possession. Утверждения Да Струна Пара "ключ-значение", указывающая тип утверждения и значение, которое триггер Request рабочего процесса ожидает в маркере доступа, предоставляемом каждым входящим вызовом триггера. Вы можете добавить любое стандартное утверждение, выбрав Добавить стандартное утверждение. Чтобы добавить утверждение, относящееся к токену PoP, выберите Добавить настраиваемое утверждение.
Доступные стандартные типы претензий:
- Эмитент
- Публика
- Тема
- Идентификатор JWT (идентификатор веб-токена JSON)
Требования:
— Как минимум, список утверждений должен содержать следующие типы утверждений :
-- Издатель: задайте значение так, чтобы оно начиналось сhttps://sts.windows.net/илиhttps://login.microsoftonline.com/в качестве идентификатора издателя Microsoft Entra.
-- Аудитория: для ресурса приложения логики задано значение ожидаемой аудитории.
- Каждое утверждение должно быть одним строковым значением, а не массивом значений. Например, у вас может быть утверждение с Role как тип и Developer как значение. Вы не можете иметь требование, у которого тип Role и заданы значения Developer и Program Manager.
- Значение утверждения ограничено максимальным количеством символов.
Вы также можете указать собственный тип и значение утверждения. Дополнительные сведения об этих типах утверждений см. в разделе об утверждениях в маркерах безопасности Microsoft Entra.В следующем примере показаны сведения о токене PoP:
Чтобы добавить еще одну заявку, выберите один из следующих вариантов:
Чтобы добавить еще один тип утверждения, выберите Добавить стандартное утверждение, выберите тип утверждения и укажите значение утверждения.
Чтобы добавить собственное утверждение, выберите Добавить специальное утверждение. Дополнительные сведения см. в статье о том, как предоставлять необязательные утверждения приложению. Затем ваша пользовательская претензия сохраняется как часть вашего JWT ID, например,
"tid": "aaaabbbb-0000-cccc-1111-dddd2222eeee".
Чтобы добавить еще одну политику авторизации, нажмите кнопку Добавить политику. Повторите предыдущие шаги для настройки политики.
По завершении выберите Сохранить.
Чтобы включить
Authorizationзаголовок токена доступа в выходные данные триггера, основанного на запросе, см. раздел Включить заголовок "Авторизация" в выходные данные триггеров запроса и веб-перехватчика HTTP.
Свойства рабочего процесса, такие как политики, не отображаются в представлении кода рабочего процесса на портале Azure. Чтобы получить доступ к политикам программным способом, вызовите следующий API через Azure Resource Manager: https://management.azure.com/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group-name}/providers/Microsoft.Logic/workflows/{your-workflow-name}?api-version=2016-10-01&_=1612212851820. Убедитесь, что вы заменили замещающие значения для идентификатора подписки Azure, имени группы ресурсов и имени рабочего процесса.
В выходные данные триггера HTTP-запроса или вебхука включите заголовок "Authorization".
Для логических приложений, которые включают OAuth с идентификатором Microsoft Entra для авторизации входящих вызовов и доступа к триггерам на основе запросов, можно включить выходные данные триггера Запрос или веб-перехватчика HTTP, чтобы включить заголовок Authorization из токена доступа OAuth. В базовом определении JSON триггера добавьте и задайте для свойства operationOptions значение IncludeAuthorizationHeadersInOutputs. Ниже приведен пример триггера Request :
"triggers": {
"manual": {
"inputs": {
"schema": {}
},
"kind": "Http",
"type": "Request",
"operationOptions": "IncludeAuthorizationHeadersInOutputs"
}
}
Для получения дополнительной информации ознакомьтесь со следующими разделами:
- Ссылка на схему для триггеров и типов действий — триггер запроса.
- Схема для типов триггеров и действий — HTTP Webhook trigger.
- Схема для типов триггеров и действий — опции операций.
Генерация ключа или маркера общий доступ (SAS)
Если рабочий процесс запускается с триггера на основе запроса и вы сохраняете этот рабочий процесс в первый раз, Azure Logic Apps создает вызываемую конечную точку на этом триггере. У этой конечной точки есть URL-адрес, по которому можно принимать входящие звонки или запросы для запуска рабочего процесса. URL-адрес включает в себя подписанный URL-адрес (SAS), который представляет собой ключ или маркер, предоставляющий разрешения, например, службам хранения. Этот URL конечной точки имеет следующий формат:
https://<request-endpoint-URI>sp=<permissions>sv=<SAS-version>sig=<signature>
Например, чтобы просмотреть этот URL в триггере Request , найдите свойство HTTP URL триггера:
Полный URL-адрес выглядит следующим образом:
https://{domain}:443/workflows/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/triggers/When_a_HTTP_request_is_received/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
SAS в URL-адресе имеет параметры запроса, которые описаны в следующей таблице:
| Параметр запроса | Описание |
|---|---|
sp |
Указывает разрешения для разрешенных методов HTTP. |
sv |
Указывает версию SAS, используемую для создания подписи. |
sig |
Указывает подпись, используемую для проверки подлинности доступа к триггеру. Эта подпись создается с помощью алгоритма SHA256 с секретным ключом доступа ко всем путям и свойствам URL-адресов. Этот ключ хранится в секрете и шифруется, хранится в приложении логики и никогда не раскрывается и не публикуется. Приложение логики авторизует только те триггеры, которые содержат действительную подпись, созданную с помощью секретного ключа. |
Это важно
Защитите свой SAS-ключ так же, как защищаете ключ аккаунта от несанкционированного использования. Настройте или составьте план по отзыву скомпрометированного ключа доступа. Будьте осторожны при распространении URI, использующих ключи доступа, и распространяйте такие URI только через безопасное соединение, например HTTPS. Убедитесь, что вы выполняете только те операции, в которых используется ключ доступа через соединение HTTPS. Любой пользователь, у которого есть URI с действительным ключом, может получить доступ к связанному ресурсу. Чтобы обеспечить безопасность и защитить доступ к рабочему процессу приложения логики, регулярно создавайте ключи доступа , так как они могут соответствовать политикам безопасности или быть скомпрометированы. Таким образом, вы можете быть уверены, что только авторизованные запросы могут запускать ваш рабочий процесс, что защищает ваши данные и процессы от несанкционированного доступа.
Если для доступа к службам хранения используется ключ SAS, корпорация Майкрософт рекомендует создать SAS делегирования пользователя, защищенного идентификатором Microsoft Entra, а не ключом учетной записи.
Для максимальной безопасности Microsoft рекомендует использовать Microsoft Entra ID с управляемыми идентификаторами для аутентификации, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Входящие вызовы к конечной точке по триггеру на основе запроса могут использовать только одну схему авторизации: SAS или OAuth 2.0 с идентификатором Microsoft Entra. Хотя использование одной схемы не отключает другую, если вы используете обе схемы одновременно, Azure Logic Apps создает ошибку, так как служба не знает, какую схему выбрать.
Если у вас есть рабочий процесс потребления, который начинается с триггера запроса , вы можете отключить проверку подлинности SAS. Этот вариант работает, даже если вы также ограничиваете авторизацию для использования только OAuth 2.0 с Microsoft Entra ID. Для стандартных рабочих процессов можно использовать другие типы проверки подлинности, не отключая SAS.
Дополнительные сведения о безопасности при использовании ключа SAS см. в следующих разделах этого руководства:
- Восстанови ключи доступа.
- Создайте URL-адреса обратного вызова с истекающим сроком действия.
- Создавайте URL-адреса с первичным или вторичным ключом.
Отключить аутентификацию с помощью подписи общего доступа (SAS)
По умолчанию для триггера на основе запроса включена проверка подлинности SAS. URL конечной точки триггера включает SAS, начиная с параметров запроса, например: sp-<permissions>sv-<SAS-version>sig=<signature>
https://{domain}:443/workflows/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/triggers/When_a_HTTP_request_is_received/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
Если рабочий процесс начинается с триггера запроса, и вы хотите использовать OAuth с Microsoft Entra ID, можно отключить проверку подлинности SAS, чтобы избежать ошибок и проблем с выполнением рабочего процесса. Кроме того, вы добавляете уровень безопасности, устраняя зависимость от секретов, что снижает риск регистрации секретов или их утечки.
Этот вариант работает, даже если вы также включили OAuth 2.0 с идентификатором Microsoft Entra в качестве единственного варианта вызова конечной точки на основе запроса. Для стандартных рабочих процессов можно использовать другие типы проверки подлинности, не отключая SAS.
Замечание
Это действие отключает проверку подлинности SAS для входящих запросов и блокирует работу существующих ключей или подписей SAS. Тем не менее, ключи или подписи SAS остаются действительными и продолжают работать, если вы снова включите аутентификацию SAS. Сведения об отключении ключей и подписей SAS путем создания новых версий см. в разделе Повторное создание ключей доступа.
После отключения проверки подлинности SAS URL-адрес конечной точки для триггера запроса больше не содержит ключ SAS, например:
https://{domain}:443/workflows/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/triggers/When_a_HTTP_request_is_received/paths/invoke?api-version=2016-10-01
Предпосылки
Для выполнения этой задачи вам понадобится инструмент для отправки вызовов REST API, например:
- Visual Studio Code с расширением из магазина расширений Visual Studio
- PowerShell Invoke-RestMethod
- Microsoft Edge — средство сетевой консоли
- Бруно
- curl
Осторожность
В сценариях, когда у вас есть конфиденциальные данные, такие как учетные данные, секреты, маркеры доступа, ключи API и другие аналогичные сведения, обязательно используйте средство, которое защищает данные с помощью необходимых функций безопасности. Средство должно работать в автономном режиме или локально, а не требовать входа в учетную запись в Интернете или синхронизации данных с облаком. При использовании средства с этими характеристиками снижается риск предоставления конфиденциальных данных общественности.
Проверьте наличие триггеров с включенным или выключенным SAS
Если проверка подлинности SAS отключена, URL-адрес конечной точки триггера больше не содержит ключ SAS. Кроме того, определение рабочего процесса потребления включает объект JSON sasAuthenticationPolicy . У этого объекта есть свойство состояния , для которого задано значение Disabled, например:
"properties": {
"accessControl": {
"triggers": {
"sasAuthenticationPolicy": {
"state": "Disabled"
}
}
}
}
Чтобы найти рабочие процессы потребления, в которых SAS включен или отключен, проверьте, включает ли определение рабочего процесса объект sasAuthenticationPolicy , для свойства state которого задано значение Disabled.
С помощью средства, отправляющего вызовы REST API, можно получить сведения о рабочем процессе, выполнив операцию Workflows — Get с помощью следующего запроса GET, например:
GET https://management.azure.com/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}?api-version=2016-06-01Возьмите выходные данные операции Workflows — Get и проверьте, существует ли объект sasAuthenticationPolicy , для свойства state которого задано значение Disabled.
Добавьте свойство sasAuthenticationPolicy в определение рабочего процесса
Для рабочих процессов потребления, в которых требуется отключить проверку подлинности SAS, выполните следующие действия.
Если вы еще этого не сделали, получите сведения о рабочем процессе, запустив операцию Workflows - Get с помощью следующего запроса GET, например:
GET https://management.azure.com/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}?api-version=2016-06-01Возьмите выходные данные операции Workflows - Get и вручную добавьте следующие элементы:
Добавьте в объект
propertiesобъектaccessControl, содержащий объектtriggers, если такого ещё не существует.В объекте
triggersдобавьте объектsasAuthenticationPolicy, содержащий свойствоstate, установленное наDisabled.
Когда вы закончите, отредактированная часть будет выглядеть следующим образом:
"properties": { "accessControl": { "triggers": { "sasAuthenticationPolicy": { "state": "Disabled" } } } }Отправьте еще один запрос на обновление рабочего процесса с помощью измененных выходных данных, которые вы используете в качестве входных данных в теле запроса, выполнив операцию Workflows - Update с использованием следующего запроса PUT, например:
PUT https://management.azure.com/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}?api-version=2016-06-01На портале Azure перейдите к рабочему процессу потребления в конструкторе и убедитесь, что URL-адрес триггера запроса больше не включает SAS.
Чтобы включить OAuth 2.0 с идентификатором Microsoft Entra ID, на уровне ресурса приложения логики добавьте политику авторизации для OAuth с идентификатором Microsoft Entra.
Дополнительные сведения см. в статье Включение OAuth 2.0 с помощью Microsoft Entra ID.
Повторное создание ключей доступа
Чтобы обеспечить безопасность и защитить доступ к рабочему процессу приложения логики, регулярно перегенерируйте ключи доступа, поскольку они должны соответствовать требованиям политики безопасности или могут быть скомпрометированы. Таким образом, вы можете быть уверены, что только авторизованные запросы могут запускать ваш рабочий процесс, что защищает ваши данные и процессы от несанкционированного доступа.
Чтобы создать новый ключ доступа в любое время, используйте Azure REST API или портал Azure. Все ранее созданные URI или URL-адреса, использующие старый ключ, становятся недействительными и больше не имеют авторизации для активации рабочего процесса приложения логики. URI, которые вы получаете после регенерации, подписываются новым ключом доступа.
На портале Azure откройте ресурс приложения логики, который использует ключ, который вы хотите повторно создать.
В меню ресурсов приложения логики в разделе Параметры выберите Ключи доступа.
Выберите ключ, который вы хотите сгенерировать заново, и завершите процесс.
Это важно
Защитите свой ключ доступа так же, как вы защищаете ключ учетной записи от несанкционированного использования. Настройте или составьте план по отзыву скомпрометированного ключа доступа. Будьте осторожны при распространении URI, использующих ключи доступа, и распространяйте такие URI только через безопасное соединение, например HTTPS. Убедитесь, что вы выполняете только те операции, в которых используется ключ доступа через соединение HTTPS. Любой пользователь, у которого есть URI с действительным ключом, может получить доступ к связанному ресурсу.
Если для доступа к службам хранения используется ключ SAS, корпорация Майкрософт рекомендует создать SAS делегирования пользователя, защищенного идентификатором Microsoft Entra, а не ключом учетной записи.
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Создание URL-адресов обратных вызовов с истекающим сроком действия
Если вы предоставляете доступ к URL-адресу конечной точки для триггера на основе запроса другим сторонам, вы можете создавать URL-адреса обратного вызова, которые используют определенные ключи и имеют даты окончания срока действия. Таким образом, вы можете легко переключать клавиши или ограничивать доступ к активации приложения логики в зависимости от определенного промежутка времени. Чтобы указать дату окончания срока действия для URL-адреса, используйте REST API Azure Logic Apps, например:
POST /subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}/triggers/{trigger-name}/listCallbackUrl?api-version=2016-06-01
В текст включите свойство NotAfter с помощью строки даты в формате JSON. Это свойство возвращает URL-адрес обратного вызова, который действителен только до NotAfter даты и времени.
Создание URL с первичным или вторичным секретным ключом
При создании или перечислении URL-адресов обратного вызова для триггера, основанного на запросе, можно указать ключ, который может быть использован для подписания URL-адреса. Чтобы создать URL-адрес, подписанный определенным ключом, используйте REST API Azure Logic Apps, например:
POST /subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Logic/workflows/{workflow-name}/triggers/{trigger-name}/listCallbackUrl?api-version=2016-06-01
В теле укажите свойство KeyType как Primary или Secondary. Это свойство возвращает URL-адрес, подписанный указанным ключом безопасности.
Предоставьте доступ к рабочему процессу логического приложения с помощью службы Azure API Management
Чтобы узнать больше о протоколах и вариантах проверки подлинности, рассмотрите возможность предоставления рабочего процесса приложения логики в виде API с помощью службы "Управление API Azure". Эта служба предоставляет широкие возможности мониторинга, безопасности, политик и документирования для любой конечной точки. Управление API может предоставить общедоступную или частную конечную точку для приложения логики. Чтобы авторизовать доступ к этой конечной точке, можно использовать OAuth с идентификатором Microsoft Entra, сертификатом клиента или другими стандартами безопасности. Когда служба управления API получает запрос, она отправляет его в приложение логики и при этом выполняет все необходимые преобразования или ограничения. Чтобы разрешить вызов рабочего процесса приложения логики только службе управления API, можно ограничить входящие IP-адреса приложения логики.
Дополнительные сведения см. в следующей документации:
- Об управлении API.
- Защитите бэкенд веб-API в Azure API Management, используя авторизацию OAuth 2.0 с Microsoft Entra ID.
- Безопасные API с использованием аутентификации клиентских сертификатов в API Management.
- Политики аутентификации управления API.
Ограничьте входящие IP-адреса
Наряду с подписанным URL-адресом (SAS) может потребоваться специально ограничить количество клиентов, которые могут вызывать рабочий процесс приложения логики. Например, если вы управляете конечной точкой запроса с помощью службы "Управление API Azure", вы можете ограничить рабочий процесс приложения логики, чтобы он принимал запросы только с IP-адреса для создаваемого экземпляра службы "Управление API".
Независимо от указанных IP-адресов, вы по-прежнему можете запустить рабочий процесс приложения логики с триггером на основе запроса с помощью запроса Триггеры рабочего процесса — запрос операции "Выполнить" или с помощью службы "Управление API". Однако для этого сценария по-прежнему требуется проверка подлинности с помощью Azure REST API. Все события отображаются в журнале аудита Azure. Убедитесь, что вы установили соответствующие политики управления доступом.
Чтобы ограничить входящие IP-адреса для рабочего процесса приложения логики, выполните соответствующие действия для портала Azure или шаблона Azure Resource Manager. Допустимый диапазон IP-адресов использует следующие форматы: x.x.x.x/x или x.x.x.x-x.x.x.x
На портале Azure ограничение IP-адресов влияет как на триггеры, так и на действия, что противоречит описанию на портале в разделе Разрешенные входящие IP-адреса. Чтобы настроить этот фильтр отдельно для триггеров и для действий, используйте accessControl объект в шаблоне Azure Resource Manager для ресурса приложения логики или операцию Рабочий процесс — создание или обновление в REST API Azure Logic Apps.
Рабочие процессы потребления
На портале Azure откройте приложение "Логика потребления" в конструкторе рабочих процессов.
В меню приложения логики в разделе Параметры выберите Параметры рабочего процесса.
В разделе Конфигурация управления доступом в разделе Разрешенные входящие IP-адреса выберите путь для сценария:
Чтобы сделать рабочий процесс вызываемым с помощью встроенного действия Azure Logic Apps, но только в качестве вложенного рабочего процесса, выберите Только другие приложения логики. Этот параметр работает только в том случае, если вы используете действие Azure Logic Apps для вызова вложенного рабочего процесса.
Этот вариант записывает пустой массив в ресурс вашего приложения логики и требует, чтобы вложенный рабочий процесс активировался только вызовами, инициированными родительскими рабочими процессами, использующими встроенное действие Azure Logic Apps.
Чтобы сделать рабочий процесс вызываемым с помощью действия HTTP, но только в качестве вложенного рабочего процесса, выберите Определенные диапазоны IP-адресов. Когда появится поле Диапазоны IP-адресов для триггеров , введите исходящие IP-адреса родительского рабочего процесса. Допустимый IP-диапазон использует следующие форматы: x.x.x.x/x или x.x.x.x-x.x.x.x.x.
Замечание
Если вы используете параметр Только другие приложения логики и действие HTTP для вызова вложенного рабочего процесса, вызов блокируется, и вы получаете ошибку "401 Unauthorized".
Для сценариев, в которых требуется ограничить входящие вызовы с других IP-адресов, при появлении поля Диапазоны IP-адресов для триггеров укажите диапазоны IP-адресов, которые принимает триггер. Допустимый IP-диапазон использует следующие форматы: x.x.x.x/x или x.x.x.x-x.x.x.x.x.
При необходимости в разделе Ограничить вызовы для получения входных и выходных сообщений из журнала выполнения на предоставленные IP-адреса можно указать диапазоны IP-адресов для входящих вызовов, которые могут получать доступ к входящим и выходным сообщениям в журнале выполнения.
Стандартные рабочие процессы
На портале Azure откройте ресурс стандартного логического приложения.
В меню приложения логики в разделе Параметры выберите Сеть.
В разделе Конфигурация входящего трафика рядом с пунктом Доступ к общедоступной сети выберите Включено без ограничения доступа.
На странице Ограничения доступа в разделе Доступ к приложениям выберите Включено для выбранных виртуальных сетей и IP-адресов.
В разделе Доступ к сайту и правила на вкладке Главный сайт добавьте одно или несколько правил для разрешения или запрета запросов из определенных диапазонов IP-адресов. Допустимый диапазон IP-адресов использует следующие форматы: x.x.x.x/x или x.x.x.x-x.x.x.x
Дополнительные сведения см. в статье Блокировка входящих IP-адресов в Azure Logic Apps (Standard).
Доступ для исходящих звонков к другим сервисам и системам
В зависимости от возможностей целевой конечной точки исходящие вызовы, отправляемые через HTTP-триггер или HTTP-действие, поддерживают шифрование и защищены с помощью Transport Layer Security (TLS) 1.0, 1.1, 1.2 или 1.3, ранее известного как Secure Sockets Layer (SSL). Azure Logic Apps согласовывает с целевой конечной точкой использование максимально возможной поддерживаемой версии. Например, если целевая конечная точка поддерживает 1.3, триггер ИЛИ действие HTTP сначала использует 1.3. В противном случае соединитель использует следующую по величине поддерживаемую версию.
Этот список включает в себя информацию о самоподписанных сертификатах TLS/SSL:
Для рабочих процессов приложения логики потребления в мультитенантной среде Azure Logic Apps операции HTTP не разрешают использовать самозаверяющие сертификаты TLS/SSL. Если приложение логики выполняет HTTP-вызов к серверу и предоставляет самозаверяющий сертификат TLS/SSL, HTTP-вызов завершается
TrustFailureошибкой.Для стандартных рабочих процессов приложения логики в среде Azure Logic Apps с одним клиентом операции HTTP поддерживают самозаверяющие сертификаты TLS/SSL. Однако для этого типа аутентификации необходимо выполнить несколько дополнительных шагов. В противном случае вызов завершается ошибкой. Дополнительные сведения см. в статье Проверка подлинности сертификата TLS/SSL для Azure Logic Apps с одним клиентом.
Если вы хотите вместо этого использовать сертификат клиента или OAuth с учетной записью Microsoft Entra ID и типом учетных данных сертификата, вам все равно потребуется выполнить несколько дополнительных шагов для данного типа аутентификации. В противном случае вызов завершается ошибкой. Дополнительные сведения см. в статье Сертификат клиента или OAuth с идентификатором Microsoft Entra ID с типом учетных данных "Сертификат" для Azure Logic Apps с одним клиентом.
Ниже приведены дополнительные способы защиты конечных точек, обрабатывающих вызовы, отправляемые из рабочих процессов приложения логики.
Добавьте аутентификацию в исходящие запросы.
Когда вы используете триггер или действие HTTP для отправки исходящих вызовов, вы можете добавить проверку подлинности к запросу, отправляемому приложением логики. Например, вы можете выбрать следующие типы аутентификации:
Ограничьте доступ с IP-адресов рабочих процессов приложения логики.
Все вызовы к конечным точкам из рабочих процессов приложения логики поступают с определенных назначенных IP-адресов, которые основаны на регионах приложений логики. Вы можете добавить фильтрацию, которая будет принимать запросы только с этих IP-адресов. Чтобы получить эти IP-адреса, ознакомьтесь с разделом Ограничения и конфигурация для Azure Logic Apps.
Повысьте безопасность подключений к локальным системам.
Azure Logic Apps обеспечивает интеграцию с этими службами, чтобы обеспечить более безопасное и надежное локальное взаимодействие.
Локальный шлюз данных.
Многие управляемые соединители в Azure Logic Apps обеспечивают безопасное подключение к локальным системам, таким как файловая система, SQL, SharePoint и DB2. Шлюз отправляет данные из локальных источников по зашифрованным каналам через служебную шину Azure. Весь трафик поступает как безопасный исходящий трафик от агента шлюза. Узнайте, как работает локальный шлюз данных.
Подключайтесь через Azure API Management.
Управление API Azure предоставляет варианты локального подключения, такие как виртуальная частная сеть типа "сеть — сеть" и интеграция ExpressRoute для безопасного прокси-сервера и связи с локальными системами. Если у вас есть API, предоставляющий доступ к локальной системе, и вы предоставили этот API, создав экземпляр службы "Управление API", вы можете вызвать этот API из рабочего процесса приложения логики, выбрав соответствующую операцию "Управление API" в конструкторе рабочих процессов.
Замечание
В соединителе отображаются только те службы управления API, на просмотр и подключение которых у вас есть разрешения, но не отображаются службы управления API на основе потребления.
В зависимости от типа ресурса приложения логики выполните соответствующие действия.
Рабочие процессы потребления
В зависимости от того, добавляете ли вы триггер или действие Управления API, выполните следующие действия:
Триггер:
В конструкторе рабочих процессов выберите " Добавить триггер".
После того как откроется панель Добавить триггер , в поле поиска введите Управление API.
В списке результатов триггера выберите Выбрать триггер управления API Azure.
Действие:
В конструкторе рабочих процессов выберите знак «плюс» (+) в том месте, куда требуется добавить действие.
После того как откроется кнопка Добавить область действий , в поле поиска введите Управление API.
В списке результатов действия выберите Выбрать действие службы управления API Azure.
В следующем примере показано нахождение триггера службы "Управление API Azure":
В списке экземпляров службы "Управление API" выберите ранее созданный экземпляр службы "Управление API".
В списке операций API выберите операцию API для вызова, а затем нажмите кнопку Добавить действие.
Стандартные рабочие процессы
Для стандартных рабочих процессов можно добавлять только действия службы управления API , но не триггеры.
В конструкторе рабочих процессов выберите знак «плюс» (+) в том месте, куда требуется добавить действие.
После того как откроется кнопка Добавить область действий , в поле поиска введите Управление API.
В списке результатов действий выберите Вызвать API управления Azure API Management.
В списке экземпляров службы "Управление API" выберите ранее созданный экземпляр службы "Управление API".
В списке Операции API выберите операцию API для вызова, а затем нажмите кнопку Создать.
Добавление аутентификации к исходящим вызовам
Конечные точки HTTP и HTTPS поддерживают различные виды аутентификации. Для некоторых триггеров и действий, используемых для отправки исходящих вызовов или запросов в эти конечные точки, можно указать тип проверки подлинности. В конструкторе рабочих процессов триггеры и действия, поддерживающие выбор типа проверки подлинности, имеют свойство Authentication . Однако это свойство может отображаться не всегда по умолчанию. В этих случаях в триггере или действии откройте список Дополнительные параметры и выберите Аутентификация.
Это важно
Чтобы защитить конфиденциальную информацию, обрабатываемую рабочим процессом приложения логики, используйте защищенные параметры и при необходимости кодируйте данные. Дополнительные сведения об использовании и защите параметров см. в статье Доступ к входным параметрам.
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Обычная проверка подлинности
Для HTTP-вызовов обычная проверка подлинности использует строку в кодировке base64, содержащую имя пользователя и пароль для выполнения запроса. Этот метод передает учетные данные без шифрования и создает повышенные риски безопасности, если вы не используете этот вариант с протоколом HTTPS/SSL.
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Если опция Basic доступна и выбрана, укажите следующие значения свойств:
| Собственность (дизайнер) | Свойство (JSON) | Обязательно | Ценность | Описание |
|---|---|---|---|---|
| Аутентификация | type |
Да | Базовый | Тип проверки подлинности |
| Имя пользователя | username |
Да | < имя пользователя> | Имя пользователя для проверки подлинности доступа к целевой конечной точке службы |
| Пароль | password |
Да | < пароль> | Пароль для аутентификации доступа к целевой конечной точке службы |
При использовании защищенных параметров для обработки и защиты конфиденциальной информации, например в шаблоне Azure Resource Manager для автоматизации развертывания, можно использовать выражения для доступа к значениям этих параметров во время выполнения. В этом примере определения HTTP-действия указывается аутентификация type как Basic и используется функция parameters() для получения значений параметров:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "Basic",
"username": "@parameters('userNameParam')",
"password": "@parameters('passwordParam')"
}
},
"runAfter": {}
}
проверка подлинности на основе клиентского сертификата.
Проверка подлинности сертификата клиента позволяет или требует от пользователей прямой проверки подлинности с помощью сертификатов X.509 по идентификатору Microsoft Entra для приложений и входа в браузер. Эта возможность позволяет внедрять устойчивую к фишингу аутентификацию и аутентификация с помощью сертификата X.509 в вашей инфраструктуре публичных ключей (PKI).
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Если опция Сертификат клиента доступна и выбрана, укажите следующие значения свойства:
| Собственность (дизайнер) | Свойство (JSON) | Обязательно | Ценность | Описание |
|---|---|---|---|---|
| Аутентификация | type |
Да |
Сертификат клиента или ClientCertificate |
Тип проверки подлинности. Вы можете управлять сертификатами с помощью службы "Управление API Azure". Примечание: Пользовательские соединители не поддерживают аутентификацию на основе сертификатов для входящих и исходящих вызовов. |
| Pfx | pfx |
Да | < Содержимое файла с кодировкой PFX> | Содержимое, закодированное в base64, из файла обмена персональными данными (PFX) Чтобы преобразовать файл PFX в формат в кодировке base64, можно использовать PowerShell 7, выполнив следующие действия: 1. Сохраните содержимое сертификата в переменную: $pfx_cert = [System.IO.File]::ReadAllBytes('c:\certificate.pfx') 2. Преобразуйте содержимое сертификата с помощью ToBase64String() функции и сохраните его в текстовый файл: [System.Convert]::ToBase64String($pfx_cert) | Out-File 'pfx-encoded-bytes.txt' Устранение неполадок: Если вы используете cert mmc/PowerShell команду, вы можете получить следующую ошибку: Could not load the certificate private key. Please check the authentication certificate password is correct and try again. Чтобы устранить эту ошибку, попробуйте преобразовать файл PFX в файл PEM и обратно с помощью openssl команды: openssl pkcs12 -in certificate.pfx -out certificate.pem openssl pkcs12 -in certificate.pem -export -out certificate2.pfx Впоследствии, когда вы получаете строку в кодировке base64 для только что преобразованного PFX-файла сертификата, эта строка теперь работает в Azure Logic Apps. |
| Пароль | password |
нет | < password-for-pfx-file> | Пароль для доступа к файлу PFX |
Замечание
Если вы попытаетесь пройти аутентификацию с помощью сертификата клиента с помощью OpenSSL, вы можете получить следующую ошибку:
BadRequest: Could not load private key
Для устранения этой ошибки выполните следующие действия.
- Удалите все экземпляры OpenSSL.
- Установите OpenSSL версии 1.1.1t.
- Подпишите заново ваш сертификат с использованием нового обновления.
- Добавьте новый сертификат в операцию HTTP при использовании аутентификации сертификата клиента.
При использовании защищенных параметров для обработки и защиты конфиденциальной информации, например в шаблоне Azure Resource Manager для автоматизации развертывания, можно использовать выражения для доступа к значениям этих параметров во время выполнения. В этом примере определения HTTP-действия указывается аутентификация type как ClientCertificate и используется функция parameters() для получения значений параметров:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "ClientCertificate",
"pfx": "@parameters('pfxParam')",
"password": "@parameters('passwordParam')"
}
},
"runAfter": {}
}
Это важно
Если у вас есть ресурс стандартной логики в одноарендовательном Azure Logic Apps, и вы хотите использовать HTTP-операцию с сертификатом TLS/SSL, сертификатом клиента или Microsoft Entra ID OAuth с Certificate типом учетных данных, обязательно выполните дополнительные шаги настройки для этого типа аутентификации. В противном случае вызов завершается ошибкой. Дополнительные сведения см. в статье Проверка подлинности в среде с одним клиентом.
Дополнительные сведения о защите служб с помощью проверки подлинности сертификата клиента см. в следующих разделах:
- Улучшите безопасность API с помощью аутентификации клиентских сертификатов в Azure API Management.
- Улучшить безопасность серверных сервисов с помощью аутентификации клиентских сертификатов в Azure API Management.
- Повышайте безопасность вашего сервиса RESTful, используя сертификаты клиентов.
- Учётные данные сертификатов для аутентификации приложений.
- Используйте сертификат TLS/SSL в вашем коде в Служба приложений Azure.
Платформа Microsoft Entra
В триггере запроса вы можете использовать платформу Microsoft Entra для проверки подлинности входящих вызовов после настройки политик авторизации Microsoft Entra для приложения логики.
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
Для всех остальных триггеров и действий, поддерживающих тип проверки подлинности Active Directory OAuth (OAuth 2.0 с идентификатором Microsoft Entra), укажите следующие значения свойств:
| Собственность (дизайнер) | Свойство (JSON) | Обязательно | Ценность | Описание |
|---|---|---|---|---|
| Аутентификация | type |
Да |
Active Directory OAuth (OAuth 2.0 с идентификатором Microsoft Entra) или ActiveDirectoryOAuth |
Тип проверки подлинности. В настоящее время Azure Logic Apps использует протокол OAuth 2.0. |
| Авторитет | authority |
нет | < URL для доверенного центра эмитента токенов> | URL-адрес центра, предоставляющего ключ доступа, например https://login.microsoftonline.com/ для регионов глобальных служб Azure. Для других национальных облаков см. статью Конечные точки проверки подлинности Microsoft Entra — выбор центра идентификации. |
| Съёмщик | tenant |
Да | < идентификатор клиента> | Идентификатор клиента для клиента Microsoft Entra |
| Публика | audience |
Да | < Ресурс для авторизации> | Ресурс, который вы хотите использовать для авторизации, например, https://management.core.windows.net/ |
| идентификатор клиента | clientId |
Да | < идентификатор клиента> | Идентификатор клиента для приложения, запрашивающего авторизацию |
| Тип учетных данных | credentialType |
Да | Сертификат или Секрет |
Тип учетных данных, который клиент использует для запроса авторизации. Это свойство и значение не отображаются в базовом определении приложения логики, но определяют свойства, которые отображаются для выбранного типа учетных данных. |
| Секрет | secret |
Да, но только для типа учетных данных "Секретно" | < Секрет клиента> | Секрет клиента для запроса авторизации |
| Pfx | pfx |
Да, но только для типа учетных данных "Сертификат" | < Содержимое файла с кодировкой PFX> | Содержимое, закодированное в base64, из файла обмена персональными данными (PFX) |
| Пароль | password |
Да, но только для типа учетных данных "Сертификат" | < password-for-pfx-file> | Пароль для доступа к файлу PFX |
При использовании защищенных параметров для обработки и защиты конфиденциальной информации, например в шаблоне Azure Resource Manager для автоматизации развертывания, можно использовать выражения для доступа к значениям этих параметров во время выполнения. В этом примере определения HTTP-действия аутентификация type указывается как ActiveDirectoryOAuth, тип учетных данных как Secret, и используется функция parameters() для получения значений параметров:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "ActiveDirectoryOAuth",
"tenant": "@parameters('tenantIdParam')",
"audience": "https://management.core.windows.net/",
"clientId": "@parameters('clientIdParam')",
"credentialType": "Secret",
"secret": "@parameters('secretParam')"
}
},
"runAfter": {}
}
Это важно
Если у вас есть ресурс стандартной логики в одноарендовательном Azure Logic Apps, и вы хотите использовать HTTP-операцию с сертификатом TLS/SSL, сертификатом клиента или Microsoft Entra ID OAuth с Certificate типом учетных данных, обязательно выполните дополнительные шаги настройки для этого типа аутентификации. В противном случае вызов завершается ошибкой. Дополнительные сведения см. в статье Проверка подлинности в среде с одним клиентом.
Необработанная аутентификация
Если доступна опция Raw , вы можете использовать этот тип аутентификации, когда вам нужно использовать схемы аутентификации , которые не соответствуют протоколу OAuth 2.0. При использовании этого типа вы вручную создаете значение заголовка авторизации, которое отправляется вместе с исходящим запросом, и указываете это значение заголовка в триггере или действии.
Это важно
Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra суправляемыми удостоверениями для проверки подлинности, когда это возможно. Этот параметр обеспечивает более высокую безопасность, не предоставляя учетные данные. Azure управляет этим удостоверением и способствует защите сведений аутентификации, чтобы вам не приходилось управлять этой конфиденциальной информацией. Сведения о настройке управляемого удостоверения для Azure Logic Apps см. в статье "Проверка подлинности доступа и подключений к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps".
В следующем примере показан пример заголовка для запроса HTTPS, который следует протоколу OAuth 1.0:
Authorization: OAuth realm="Photos",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="137131200",
oauth_nonce="wIjqoS",
oauth_callback="http%3A%2F%2Fprinter.example.com%2Fready",
oauth_signature="74KNZJeDHnMBp0EMJ9ZHt%2FXKycU%3D"
В триггере или действии, поддерживающем необработанную проверку подлинности, укажите следующие значения свойств:
| Собственность (дизайнер) | Свойство (JSON) | Обязательно | Ценность | Описание |
|---|---|---|---|---|
| Аутентификация | type |
Да | Необработанные | Тип проверки подлинности |
| Ценность | value |
Да | < значение-заголовка авторизации> | Значение заголовка авторизации, используемое для аутентификации |
При использовании защищенных параметров для обработки и защиты конфиденциальной информации, например в шаблоне Azure Resource Manager для автоматизации развертывания, можно использовать выражения для доступа к значениям этих параметров во время выполнения. В этом примере определения HTTP-действия аутентификация type указана как Raw, и используется функция parameters() для получения значений параметров:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "@parameters('endpointUrlParam')",
"authentication": {
"type": "Raw",
"value": "@parameters('authHeaderParam')"
}
},
"runAfter": {}
}
Аутентификация управляемой идентификации
Если параметр управляемого удостоверения доступен в триггере или действии, поддерживающем проверку подлинности управляемого удостоверения, приложение логики может использовать это удостоверение для проверки подлинности доступа к ресурсам Azure, защищенным идентификатором Microsoft Entra, а не учетными данными, секретами или маркерами Microsoft Entra. Azure управляет этим удостоверением за вас и помогает защитить ваши учетные данные, так как вам не нужно управлять секретами или напрямую использовать токены Microsoft Entra. Узнайте больше о службах Azure, которые поддерживают управляемые удостоверения для проверки подлинности Microsoft Entra.
Ресурс приложения "Логика потребления" может использовать удостоверение, назначенное системой, или одно удостоверение, назначенное пользователем, созданное вручную.
Ресурс логического приложения стандарта поддерживает одновременное включение управляемого удостоверения, назначаемого системой, и нескольких управляемых удостоверений, назначаемых пользователем, хотя вы можете выбрать только одно удостоверение для использования в любой момент времени.
Замечание
По умолчанию удостоверение, назначаемое системой, уже включено для проверки подлинности подключений во время выполнения. Это удостоверение отличается от проверочных данных для аутентификации или строки подключения, которая используется при создании соединения. Если отключить это удостоверение, подключения не будут работать во время выполнения. Чтобы просмотреть этот параметр, в меню приложения логики в разделе Параметры выберите Удостоверение.
Прежде чем приложение логики сможет использовать управляемое удостоверение, выполните действия, описанные в статье Проверка подлинности доступа к ресурсам Azure с помощью управляемых удостоверений в Azure Logic Apps. Эти действия включают управляемое удостоверение в приложении логики и настраивают доступ этого удостоверения к целевому ресурсу Azure.
Прежде чем функция Azure сможет использовать управляемое удостоверение, сначала включите проверку подлинности для функций Azure.
В триггере или действии, поддерживающем использование управляемого удостоверения, укажите следующие сведения:
Встроенные триггеры и действия
Собственность (дизайнер) Свойство (JSON) Обязательно Ценность Описание Аутентификация typeДа Управляемая идентичность
илиManagedServiceIdentityТип проверки подлинности Управляемая идентичность identityнет < идентификатор личности, назначенный пользователю> Управляемое удостоверение, назначенное пользователем для использования. Примечание: Не включайте это свойство при использовании управляемого удостоверения, назначенного системой. Публика audienceДа < target-resource-ID> Идентификатор целевого ресурса, к которому требуется получить доступ.
Например,https://storage.azure.com/маркеры доступа для проверки подлинности становятся действительными для всех учетных записей хранения. Однако вы также можете указать URL-адрес корневой службы, напримерhttps://fabrikamstorageaccount.blob.core.windows.netдля определенной учетной записи хранения.
Примечание: Свойство Audience может быть скрыто в некоторых триггерах или действиях. Чтобы сделать это свойство видимым, в триггере или действии откройте список Дополнительные параметры и выберите Аудитория.
Важно: Убедитесь, что этот идентификатор целевого ресурса точно соответствует значению, которое ожидает Microsoft Entra ID, включая все необходимые завершающие слэши. Таким образом,https://storage.azure.com/идентификатор ресурса для всех учетных записей хранилища Blob Azure должен оканчиваться косой чертой. Однако идентификатор ресурса для определенной учетной записи облачного хранилища не требует косой черты в конце строки. Чтобы найти эти идентификаторы ресурсов, ознакомьтесь со службами Azure, поддерживающими Microsoft Entra ID.При использовании защищенных параметров для обработки и защиты конфиденциальной информации, например в шаблоне Azure Resource Manager для автоматизации развертывания, можно использовать выражения для доступа к значениям этих параметров во время выполнения. Например, это определение действия HTTP указывает аутентификацию
typeкакManagedServiceIdentityи использует функцию parameters() для получения значений параметров:"HTTP": { "type": "Http", "inputs": { "method": "GET", "uri": "@parameters('endpointUrlParam')", "authentication": { "type": "ManagedServiceIdentity", "audience": "https://management.azure.com/" }, }, "runAfter": {} }Триггеры и действия управляемого соединителя
Собственность (дизайнер) Обязательно Ценность Описание Имя подключения Да < имя_соединения> Управляемая идентичность Да Системно назначенная управляемая идентичность
или
< имя-пользовательского-управляемой-идентичности>Тип проверки подлинности
Блокировка создания соединений
Если в вашей организации не разрешено подключение к определенным ресурсам с помощью соединителей в Azure Logic Apps, вы можете заблокировать возможность создания этих подключений для определенных соединителей в рабочих процессах приложения логики с помощью Политики Azure. Дополнительные сведения см. в статье Блокировка подключений, созданных определенными соединителями в Azure Logic Apps.
Руководство по изоляции для приложений логики
Вы можете использовать Azure Logic Apps в Azure для государственных организаций , поддерживая все уровни воздействия в регионах, описанных в Руководстве по изоляции уровня 5 воздействия Azure для государственных организаций. Чтобы соответствовать этим требованиям, Azure Logic Apps поддерживает возможность создания и выполнения рабочих процессов в среде с выделенными ресурсами, что позволяет уменьшить влияние других клиентов Azure на ваши приложения логики и избежать совместного использования вычислительных ресурсов с другими клиентами.
Стандартные рабочие процессы приложения логики могут конфиденциально и безопасно взаимодействовать с виртуальной сетью Azure через частные конечные точки, настроенные для входящего трафика, и интеграцию с виртуальной сетью для исходящего трафика. Дополнительные сведения см. в статье Защита трафика между виртуальными сетями и Azure Logic Apps с одним клиентом с помощью частных конечных точек.
Чтобы запустить собственный код или выполнить преобразование XML, создайте и вызовите функцию Azure, а не используйте возможность встроенного кода или предоставляйте сборки для использования в качестве сопоставлений соответственно. Кроме того, настройте хостинг-среду для вашего функционального приложения в соответствии с требованиями изоляции.
Например, чтобы соответствовать требованиям уровня влияния 5, создайте приложение-функцию с планом службы приложений, используя ценовую категорию "Изолированный", а также среду службы приложений (ASE), которая также использует ценовую категорию "Изолированный". В этой среде функциональные приложения выполняются на выделенных виртуальных машинах Azure и выделенных виртуальных сетях Azure, которые обеспечивают сетевую изоляцию в дополнение к изоляции вычислительных ресурсов для приложений и максимальные возможности горизонтального масштабирования.
Дополнительные сведения см. в следующей документации:
Дополнительные сведения об изоляции см. в следующей документации: