Пользовательский соединитель с триггером веб-перехватчика вызывает DirectApiAuthorizationRequired при вызове

Я создаю собственный соединитель в Power Automate и присвоил ему триггер на основе веб-перехватчика. Как и в руководстве «Использование триггера веб-перехватчика», моя цель состоит в том, чтобы мой соединитель генерировал собственный URL-адрес веб-перехватчика, регистрировал его в моем собственном приложении при создании экземпляра и запускал поток, когда мое приложение отправляет запрос на URL-адрес.

Когда я создаю экземпляр триггера в потоке Power Automate, он правильно передает сгенерированный URL-адрес веб-перехватчика в мое приложение после сохранения потока. Однако когда я отправляю запрос на URL-адрес со своей стороны, я получаю следующий ответ HTTP 401:

{
    "error": {
        "code": "DirectApiAuthorizationRequired",
        "message": "The request must be authenticated only by Shared Access scheme."
    }
}

Если бы вместо этого это был экземпляр триггера «При получении HTTP-запроса», я мог бы решить эту проблему, установив «Кто может запустить поток?» параметр «Любой»:

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

Вопрос

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

Устранение неполадок на данный момент

Мой пользовательский соединитель проходит проверку в веб-редакторе Power Automate и может генерировать и регистрировать URL-адрес веб-перехватчика в моей собственной службе. Я пробовал отправить запрос POST на URL-адрес Webhook с нескольких разных платформ (сервер моего приложения, Postman и т. д.) каждый раз с одним и тем же ответом 401. Все результаты, которые я нашел при поиске в Google вариантов «веб-перехватчика Power Automate Custom Connector DirectApiAuthorizationRequired», касались встроенного (не настраиваемого) триггера HTTP-коннектора (например ), остались без ответа ( например ), или были решены путем удаления заголовка аутентификации ( например), который я не использую.

Другие вещи, которые я пробовал:

  • Чтение страницы справки «Устранение распространенных проблем с триггерами» (это поведение не рассматривается)
  • Публикация URL-адреса веб-перехватчика с заголовком Authorization = "SharedKey foo:bar" на основе документов общего доступа, чтобы увидеть, что произойдет. Результат: {"error":{"code":"DirectApiInvalidAuthorizationScheme","message":"The provided authentication token is not valid. Only 'basic' or 'bearer' type of token is supported."}} (подразумевается, что разрешена только базовая аутентификация или аутентификация на предъявителя?)
  • Публикую с Authorization = "Basic foo:bar". Результат: {"error":{"code":"AuthorizationFailed","message":"The provided authorization header value is not valid."}} (подразумевается, что может быть способ предоставить действительные учетные данные с помощью базовой аутентификации?)
  • Публикую с Authorization = "Bearer foobar". Результат: {"error":{"code":"OAuthAccessPolicyNotFound","message":"'Authorization' header is not allowed, The OAuth authentication policy is not enabled for the workflow."}} (подразумевается, что заголовок Authorization вообще не следует использовать??)
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
294
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказалось, что это вина моего собственного приложения.

URL-адреса веб-перехватчиков Power Automate должны быть доступны для вызова без отдельной авторизации, поскольку они аутентифицируются через включенный параметр URL-адреса sig. К сожалению, я настроил свой локальный столбец MySQL, в котором URL-адреса входящих веб-перехватчиков сохранялись как VARCHAR(255), и, что еще хуже, сохраненные значения автоматически усекались (поведение по умолчанию в старых версиях Rails), а не вызывали ошибку. Поскольку URL-адреса веб-перехватчиков Power Automate обычно длиннее 300 символов, конец каждого URL-адреса обрезался, и мое приложение сохраняло неполный URL-адрес без параметра sig=....

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

Другие вопросы по теме