Как получить токен графа Microsoft без всплывающей страницы входа пользователя? - PullRequest
0 голосов
/ 25 сентября 2018

Мне нужно написать бэкэнд-приложение для чтения и записи одного почтового ящика компании.
Я зарегистрировал приложение Active Directory и получил делегированные разрешения (чтение и запись в почтовый ящик пользователя).Вопрос в том, как получить токен, необходимый для аутентификации вызовов API api (например, ListMessages).Из документа я не могу найти ни одного рабочего примера для того, чтобы бэкэнд-приложение получало токен и делало вызовы API.

Существует две версии конечных точек:
Конечные точки Azure AD и Azure AD v2.0;
И два метода аутентификации:
1.Получить доступ от имени пользователя
https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_user
2.Получить доступ без пользователя
https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service

Что мне использовать?Действительно смущен.
Спасибо всем.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Звучит так, будто вы ищете поток грантов для доступа к паролю владельца ресурса.Однако его использование не рекомендуется.

Это не работает в следующих случаях:

  • У пользователя MFA
  • Срок действия пароля пользователя истек
  • Пользовательявляется федеративным (учетная запись MS / Google / on-prem AD)

Единственный сценарий, который я могу придумать, где этот поток в порядке, это интеграционные тесты API, где вам нужно тестировать сценарии, когда вы называете свойAPI от имени пользователя.

Вот лучший способ сделать то, что вы хотите:

  • Требовать разрешение приложения для доступа к электронной почте пользователя и разрешить его администратору.Теперь вы можете использовать поток предоставления учетных данных клиента для получения токена в любое время, когда он вам нужен.
  • Используйте делегированные разрешения, попросите пользователя выполнить вход один раз с потоком предоставления кода авторизации.Затем обменяйте код на токен доступа и токен обновления.Храните по крайней мере токен обновления где-нибудь в безопасности.Используйте токен обновления всякий раз, когда вам нужен новый токен.

Первый подход более надежен, но требует более широких разрешений.Второй имеет более строгую защиту (только пользователи, которые имеют авторизованный доступ, могут читать электронную почту), но имеет немного меньшую надежность.Токены обновления могут быть признаны недействительными, и в этом случае вам потребуется снова войти в систему.

0 голосов
/ 26 сентября 2018

Согласно вашему описанию, я предполагаю, что вы хотите получить токен доступа без страницы входа пользователя.

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

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

Более подробно мы можем обратиться к этому официальному документу .

...