Почему почтальон с OAuth 2 Access Token возвращает форму HTML из запроса, а не результат API? - PullRequest
0 голосов
/ 22 января 2020

У меня довольно простой. NET Core Web API с действием, которое было защищено с помощью Azure AD. Это довольно базовая c установка с одним действием, которое возвращает некоторый текст. Я могу убедиться, что это работает правильно в браузере - если я не вошел в систему, когда я пытаюсь получить доступ к этому действию, меня отправляют на страницу онлайн-входа Microsoft, и когда я правильно ввожу свои данные для входа, я могу для просмотра содержимого, в противном случае возвращается результат 401.

Я пытался настроить запрос GET в Postman с помощью вкладки Авторизация. Я установил тип для OAuth 2.0 и заполнил форму «Получить новый маркер доступа» с информацией из Azure. Когда я нажимаю «Запросить токен», меня перенаправляют на ту же страницу входа, что и в браузере, и я вижу, что почтальон получает токен доступа. Я могу выбрать этот токен и даже убедиться, что он добавлен в заголовки.

Когда я отправляю запрос, вместо получения данных из API возвращается страница HTML, которая содержит форму с Путь обратного вызова в качестве действия формы и токен доступа отображаются в теге. Я нахожу это неожиданным, так как предполагал, что Postman теперь будет иметь доступ к API. Я также не могу найти эту проблему где-либо еще в учебниках и других постах.

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

1 Ответ

1 голос
/ 22 января 2020

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

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

...