Custom. Net Core API для настройки аутентификации Microsoft Graph API с потоком Azure Active Directory и OAuth2 - PullRequest
0 голосов
/ 13 июля 2020

Информация

Я создаю собственный. Net Core API в Microsoft Visual Studio 2017. Идея состоит в том, чтобы этот пользовательский API обрабатывал вызовы API Microsoft Graph и разрешал для пользовательских веб-приложений для вызова этого пользовательского API. Мы настроили сайт разработчика Microsoft Office 365 и Azure клиента Active Directory, который связан с сайтом разработчика. Учетная запись клиента в настоящее время имеет делегированный доступ для Microsoft Graph API. Это было отправной точкой для всего этого: https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/?view=odsp-graph-online

Проблема

Я следил за документацией Microsoft здесь: https://docs.microsoft.com/en-us/onedrive/developer/rest-api/getting-started/aad-oauth?view=odsp-graph-online

Я могу получить токен access / refre sh через Postman и использовать поток OAuth2:

  1. GET запрос для получения кода авторизации (это проблема c, пришлось делать это вручную через браузер)
  2. POST запрос на получение токена доступа / refre sh токен
  3. Использовать токен доступа для вызовов Graph API

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу найти способ выполнить 1-й шаг процесса OAuth2 только с запросами Http (Postman, позже HttpClient). Чтобы получить фактический код авторизации, мне нужно открыть браузер, подключить конечную точку, а затем он перенаправляет мой браузер и дает мне код авторизации в параметрах строки запроса. Затем я могу взять это значение и вставить его в запрос Post для токена access / refre sh и получить токены. Поскольку это приложение будет постоянно работать на выделенном сервере, я не хочу беспокоиться о том, что по истечении срока действия токена придется вернуть go и открыть браузер для выполнения шага 1 процесса OAuth2. Кажется, что это должно быть просто сделать, запрос GET для кода авторизации, но из того, что я прочитал в документации, похоже, что это предназначено для выполнения через пользователя с браузером? Если я вызываю эту конечную точку прямо из PostMan, она возвращает Html, а не код авторизации.

Решение?

Я прошу помощи в выборе способа чтобы получить этот код авторизации с помощью простого запроса Http или каким-то образом передать этот шаг и просто получить конечную точку, чтобы напрямую выдать мне токены. Упростит ли переключение клиента на разрешения приложений этот процесс OAuth2? Любой, у кого есть опыт работы с этим или имеет другой выбор дизайна, был бы признателен.

1 Ответ

1 голос
/ 14 июля 2020

Для потока кода аутентификации это требует, чтобы вы сделали это в два этапа:

  1. Получите код авторизации через браузер.
  2. Используйте код авторизации для получения токена доступа.

Фактически, рекомендуется использовать поток учетных данных клиента , что избавляет вас от операции получения кода авторизации. Вы можете получить токен доступа напрямую через client secret в почтальоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...