Существует API, из которого мне нужно многократно возвращать данные в Azure Logic App. Для этого мне нужно два шага http: 1 для получения токена доступа и другой для использования токена для возврата данных. К сожалению, я могу получить токен только через авторизацию Oauth 2.0, а в Azure Logic App эта функция авторизации НЕ встроена в соединитель (но я вижу Active Directory OAuth, который кажется другим). Есть ли способ обойти это?
Попытка добиться ниже. Но единственное, что меня беспокоит, это шаг 2: у Logic нет авторизации Oauth 2.0.
Доступный вариант аутентификации OAuth — это OAuth Active Directory, специфичный для Azure, и мое требование — внешний URL-адрес, который содержит только идентификатор клиента и секретную информацию клиента.
Пробовал ниже. Получение ошибки
Привет, Скин, я обновил свой вопрос, включив в него то, что пробовал.
На самом деле очень сложно дать вам окончательный ответ, потому что я не могу протестировать решение для вас, если не знаю платформу, и даже тогда, если я не могу подписаться на бесплатную пробную версию или что-то в этом роде, я не смогу проверить решение. .
Если вы посмотрите на предоставленный вами снимок экрана, он в значительной степени говорит вам, что делать, он имеет JSON и говорит, что вам нужно сделать вызов POST
, чтобы получить токен, так что вы пробовали это? Бросьте это в тело и посмотрите, что произойдет.
Клиент и аудитория являются обязательными здесь и доступны только для службы в Azure. Я пытался использовать другие доступные варианты аутентификации, но ничего не работает
Нет, вставьте JSON в тело и вызовите его вручную. Это просто вызов HTTP, вы не понимаете, что я говорю. Если вы можете сделать это в почтальоне, вы делаете то же самое и здесь. Что за услуга? Я заставлю его работать. Вы предоставили некоторую документацию по авторизации выше, просто следуйте ей. Игнорируйте раздел auth в действии HTTP, используйте тело и вызывайте его, как из любого приложения. Сначала заставьте его работать в Postman, и все будет хорошо.
Перестаньте зацикливаться на разделе Authentication
и создайте его, как в обычном смысле.
Я обновил свой http-запрос, включив в него все нижеследующее, и когда я запустил его, я получил «Невозможно проанализировать запрос» URI = adfae.adfa.asd/auth/token Headers = Content-Type application/json Body = grant_type=client_credentials&client_id=< >&client_secret=<>
Затем покажите нам это на скриншоте или что-то в этом роде.
Обновлено, чтобы включить скриншот
Вы не обернули его в JSON, и вы указали JSON в качестве типа контента И это то, что на вашем снимке экрана вверху, поэтому структурируйте его как JSON и повторите попытку.
Приложение логики ДЕЙСТВИТЕЛЬНО имеет функцию авторизации, встроенную в соединитель http. Щелкните раскрывающийся список Добавить новый параметр.
Но это для конкретных случаев. В вашем случае учетные данные находятся в теле, поэтому вы можете использовать собственный соединитель без какой-либо авторизации. Просто добавьте заголовки и тело, которые вам нужны, как показано ниже.
Тело, которое я использовал, выглядит следующим образом (чтобы соответствовать требованиям вашего тела):
{"client_id":"@{triggerBody()?['client_id']}","client_secret":"@{triggerBody()?['client_secret']}","grant_type":"client_credentials"}
В случае успеха вам нужно будет проанализировать ответ, чтобы вы могли использовать токен из ответа при следующем фактическом вызове API.
Существует проверка подлинности, но доступным вариантом является OAuth Active Directory, специфичный для Azure. Я пытаюсь создать токен для внешнего URL. Вы знаете, как это можно сделать?
Что вы пробовали? Это просто заголовки или параметры в теле вызова, так что да, это поддерживается.