Создание пользовательского соединителя для веб-API
В этом руководстве показано, как начать создавать веб-API ASP.NET, разместить его в веб-приложениях Azure (это функция Службы приложений Azure), включить аутентификацию Microsoft Entra ID, а затем зарегистрировать веб-API в ASP.NET в Power Automate, Зарегистрировав API, вы сможете подключиться к нему для вызова из потока. Можно также зарегистрировать и вызывать API из Power Apps или Azure Logic Apps.
Предварительные условия
Visual Studio 2013 или позднее. Это руководство использует Visual Studio 2015.
Код для вашего веб-API. Если у вас его нет, попробуйте это руководство: Начало работы с веб-API ASP.NET 2 (C#).
Подписка Azure. Если у вас нет подписки, вы можете начать с бесплатной учетной записью Azure. В противном случае оформите подписку с оплатой по мере использования.
Создание и развертывание веб-приложения ASP.NET для Azure
Для этого руководства создайте веб-приложение Visual C# ASP.NET.
Откройте Visual Studio, затем выберите Файл > Создать проект.
Разверните элемент Установленные, перейдите в меню Шаблоны > Visual C# > Веб и выберите Веб-приложение ASP.NET.
Введите имя проекта, местоположение и название решения для своего приложения, затем выберите ОК.
В поле Новое веб-приложение ASP.NET выберите шаблон Веб-API, убедитесь, что установлен флажок Разместить в облаке, затем выберите Изменить аутентификацию.
Выберите пункт Без проверки подлинности, затем выберите ОК. Вы можете настроить аутентификацию позже.
Когда снова появится поле Создать веб приложение ASP.NET, выберите ОК.
В поле Создать службу приложений проверьте настройки размещения, описанные в следующей таблице, внесите необходимые изменения, затем выберите Создать.
План службы приложений представляет собой набор физических ресурсов, используемых для размещения приложений в вашей подписке Azure. Узнайте о службе приложений.
Параметр Предлагаемое значение Описание Ваша рабочая или школьная учетная запись Azure или ваша личная учетная запись Microsoft ваша-учетная-запись-пользователя Выберите свою учетную запись пользователя. Имя веб-приложения настраиваемое-имя-приложения-веб-API или имя по умолчанию Введите имя для вашего приложения Web API, которое используется в URL-адресе вашего приложения, например: http://имя-приложения-веб-API. Подписка имя-подписки-Azure Выберите подписку Azure, которую нужно использовать. Группа ресурсов имя-группы-ресурсов-Azure Выберите существующую группу ресурсов Azure или, — если вы еще этого не сделали, — создайте группу ресурсов. Примечание. Группа ресурсов Azure помогает структурировать ресурсы Azure в подписке Azure.
План службы приложений имя-плана-службы-приложений Выберите существующий план службы приложений или, — если вы еще этого не сделали, — создайте план. Если вы создаете план службы приложений, укажите следующее.
Параметр Предлагаемое значение Описание Location регион-развертывания Выберите регион для развертывания вашего приложения. Размер размер-плана-службы-приложений Выберите размер вашего плана, который определяет стоимость и объем вычислительных ресурсов для вашего сервисного плана. Чтобы настроить любые другие ресурсы, необходимые для вашего приложения, выберите Обзор дополнительных служб Azure.
Параметр Предлагаемое значение Описание Тип ресурса тип-ресурсов-Azure Выберите и настройте любые дополнительные ресурсы, необходимые для вашего приложения. После того как Visual Studio развернет ваш проект, создайте код для вашего приложения.
Создание файла OpenAPI (swagger), описывающего ваш веб-API
Чтобы подключить приложение веб-API к Power Automate, Power Apps или Logic Apps, вам потребуется файл OpenAPI (прежнее название — Swagger) с описанием операций этого API. Вы можете написать свое собственное определение OpenAPI для вашего API с помощью Онлайн-редактора Swagger, но в этом руководстве используется инструмент с открытым исходным кодом под названием Swashbuckle.
Если вы этого еще не сделали, установите пакет Swashbuckle NuGet в свой проект Visual Studio:
В Visual Studio выберите Сервис > Диспетчер пакетов NuGet > Консоль диспетчера пакетов.
В окне Консоль диспетчера пакетов перейдите в каталог проекта вашего приложения, если вы еще не находитесь в нем (запустите
Set-Location "project-path"
) и выполните этот командлет PowerShell:Install-Package Swashbuckle
Совет
Если вы запустите свое приложение после установки Swashbuckle, Swashbuckle создаст файл OpenAPI по этому URL-адресу:
http://{your-web-api-app-root-URL}/swagger/docs/v1
Swashbuckle также генерирует пользовательский интерфейс по этому URL-адресу:
http://{your-web-api-app-root-URL}/swagger
Когда будете готовы, опубликуйте приложение веб-API в Azure. Чтобы опубликовать из Visual Studio, щелкните правой кнопкой мыши свой веб-проект в обозревателе решений, выберите Опубликовать и следуйте инструкциям.
Важно!
Если документ OpenAPI содержит повторяющиеся идентификаторы операций, он будет недействительным. Образец шаблона C# повторяет идентификатор операции,
Values_Get
.Если вы использовали пример шаблона C#, вы можете решить эту проблему, изменив один экземпляр идентификатора операции на
Value_Get
и выполнив повторную публикацию.Получите документ OpenAPI, перейдя в это место:
http://{your-web-api-app-root-URL}/swagger/docs/v1
Вы также можете скачать пример документа OpenAPI из этого руководства. Убедитесь, что вы удалили комментарии, которые начинаются с
//
, прежде чем использовать документ.Сохраните содержимое в формате JSON. В зависимости от браузера, может потребоваться скопировать и вставить текст в пустой текстовый файл.
Настройка проверки подлинности Microsoft Entra ID
Теперь вам нужно создать два приложения Microsoft Entra ID в Azure. Подробнее см. в статье Интеграция приложений с Microsoft Entra ID.
Важно!
Оба приложения должны находиться в одном каталоге.
Первое приложение Microsoft Entra ID: защита веб-API
Первое приложение Microsoft Entra ID используется для защиты веб-API. Назовите его webAPI. Вы можете включить аутентификацию Microsoft Entra ID в своем веб-API, выполнив эти действия со следующими значениями:
- URL-адрес входа:
https://login.windows.net
- URL-адрес ответа:
https://<your-root-url>/.auth/login/aad/callback
- Вам не нужен ключ клиента.
- Вам не требуется делегировать какие-либо полномочия.
- Скопируйте идентификатор приложения, потому что он понадобится вам позже.
Второе приложение Microsoft Entra ID: защита пользовательского соединителя и получение делегированного доступа
Второе приложение Microsoft Entra ID используется для защиты регистрации пользовательского соединителя и получения делегированного доступа к веб-API, защищенному первым приложением. Назовите это приложение webAPI-customAPI.
- URL-адрес входа:
https://login.windows.net
- URL-адрес ответа:
https://msmanaged-na.consent.azure-apim.net/redirect
- Добавьте разрешения, чтобы делегировать доступ к веб-API.
- Скопируйте идентификатор приложения, потому что он понадобится вам позже.
- Сгенерируйте клиентский ключ и скопируйте его, потому что он понадобится вам позже.
Добавление проверки подлинности для веб-приложения Azure
Войдите на портал Azure и найдите веб-приложение, развернутое в первом разделе.
Выберите Параметры, а затем выберите Проверка подлинности/авторизация.
Включите Аутентификация службы приложений, затем выберите Azure Active Directory. В следующей колонке выберите Экспресс.
Выберите Выбрать существующее приложение AD и выберите ранее созданное приложение Microsoft Entra ID webAPI.
Теперь вы сможете использовать Microsoft Entra ID для проверки подлинности веб-приложения.
Добавление пользовательского соединителя в Power Automate
- Внесите изменения в OpenAPI, чтобы добавить объект
securityDefintions
и аутентификацию Microsoft Entra ID, используемую для веб-приложения. Раздел OpenAPI со свойством host должен выглядеть так:
// File header should be above here...
"host": "<your-root-url>",
"schemes": [
"https" //Make sure this is https!
],
"securityDefinitions": {
"Microsoft Entra ID": {
"type": "oauth2",
"flow": "accessCode",
"authorizationUrl": "https://login.windows.net/common/oauth2/authorize",
"tokenUrl" : "https://login.windows.net/common/oauth2/token",
"scopes": {}
}
},
// The rest of the OpenAPI follows...
Перейдите в службу Power Automate и добавьте пользовательский соединитель, как описано в статье Использование пользовательского соединителя в Power Automate.
После отправки OpenAPI в систему мастер автоматически определит, что для веб-API используется аутентификация Microsoft Entra ID.
Настройте аутентификацию Microsoft Entra ID для пользовательского соединителя.
- Идентификатор клиента: идентификатор клиента для webAPI-CustomAPI
- Секрет: клиентский ключ для webAPI-CustomAPI
- URL-адрес входа:
https://login.windows.net
- ResourceUri: идентификатор клиента для webAPI
- Выберите Создать, чтобы создать подключение к пользовательскому соединителю.
Дополнительные сведения
Подобнее об аутентификации Microsoft Entra ID
Предоставление отзывов
Для нас очень важны отзывы о проблемах с нашей платформой соединителей и новые идеи о функциях. Чтобы оставить отзыв, выберите пункт Сообщить о проблемах или получить помощь с соединителями и выберите тип отзыва.