Как использовать авторизацию Oauth 2.0 в соединителе HTTP Logic App

Существует 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-адрес, который содержит только идентификатор клиента и секретную информацию клиента.

Пробовал ниже. Получение ошибки

Что вы пробовали? Это просто заголовки или параметры в теле вызова, так что да, это поддерживается.

Skin 12.02.2023 21:32

Привет, Скин, я обновил свой вопрос, включив в него то, что пробовал.

Vivek KB 13.02.2023 08:51

На самом деле очень сложно дать вам окончательный ответ, потому что я не могу протестировать решение для вас, если не знаю платформу, и даже тогда, если я не могу подписаться на бесплатную пробную версию или что-то в этом роде, я не смогу проверить решение. .

Skin 13.02.2023 09:30

Если вы посмотрите на предоставленный вами снимок экрана, он в значительной степени говорит вам, что делать, он имеет JSON и говорит, что вам нужно сделать вызов POST, чтобы получить токен, так что вы пробовали это? Бросьте это в тело и посмотрите, что произойдет.

Skin 13.02.2023 10:52

Клиент и аудитория являются обязательными здесь и доступны только для службы в Azure. Я пытался использовать другие доступные варианты аутентификации, но ничего не работает

Vivek KB 13.02.2023 10:58

Нет, вставьте JSON в тело и вызовите его вручную. Это просто вызов HTTP, вы не понимаете, что я говорю. Если вы можете сделать это в почтальоне, вы делаете то же самое и здесь. Что за услуга? Я заставлю его работать. Вы предоставили некоторую документацию по авторизации выше, просто следуйте ей. Игнорируйте раздел auth в действии HTTP, используйте тело и вызывайте его, как из любого приложения. Сначала заставьте его работать в Postman, и все будет хорошо.

Skin 13.02.2023 11:06

Перестаньте зацикливаться на разделе Authentication и создайте его, как в обычном смысле.

Skin 13.02.2023 11:14

Я обновил свой http-запрос, включив в него все нижеследующее, и когда я запустил его, я получил «Невозможно проанализировать запрос» URI = adfae.adfa.asd/auth/token Headers = Content-Type application/json Body = grant_type=client_credentials&client_id=< >&client_secret=<>

Vivek KB 13.02.2023 12:28

Затем покажите нам это на скриншоте или что-то в этом роде.

Skin 13.02.2023 12:29

Обновлено, чтобы включить скриншот

Vivek KB 13.02.2023 12:31

Вы не обернули его в JSON, и вы указали JSON в качестве типа контента И это то, что на вашем снимке экрана вверху, поэтому структурируйте его как JSON и повторите попытку.

Skin 13.02.2023 12:34
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
11
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Приложение логики ДЕЙСТВИТЕЛЬНО имеет функцию авторизации, встроенную в соединитель http. Щелкните раскрывающийся список Добавить новый параметр.

Но это для конкретных случаев. В вашем случае учетные данные находятся в теле, поэтому вы можете использовать собственный соединитель без какой-либо авторизации. Просто добавьте заголовки и тело, которые вам нужны, как показано ниже.

Тело, которое я использовал, выглядит следующим образом (чтобы соответствовать требованиям вашего тела):

{"client_id":"@{triggerBody()?['client_id']}","client_secret":"@{triggerBody()?['client_secret']}","grant_type":"client_credentials"}

В случае успеха вам нужно будет проанализировать ответ, чтобы вы могли использовать токен из ответа при следующем фактическом вызове API.

Существует проверка подлинности, но доступным вариантом является OAuth Active Directory, специфичный для Azure. Я пытаюсь создать токен для внешнего URL. Вы знаете, как это можно сделать?

Vivek KB 13.02.2023 08:43

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