Звучит так, будто вы ищете поток грантов для доступа к паролю владельца ресурса.Однако его использование не рекомендуется.
Это не работает в следующих случаях:
- У пользователя MFA
- Срок действия пароля пользователя истек
- Пользовательявляется федеративным (учетная запись MS / Google / on-prem AD)
Единственный сценарий, который я могу придумать, где этот поток в порядке, это интеграционные тесты API, где вам нужно тестировать сценарии, когда вы называете свойAPI от имени пользователя.
Вот лучший способ сделать то, что вы хотите:
- Требовать разрешение приложения для доступа к электронной почте пользователя и разрешить его администратору.Теперь вы можете использовать поток предоставления учетных данных клиента для получения токена в любое время, когда он вам нужен.
- Используйте делегированные разрешения, попросите пользователя выполнить вход один раз с потоком предоставления кода авторизации.Затем обменяйте код на токен доступа и токен обновления.Храните по крайней мере токен обновления где-нибудь в безопасности.Используйте токен обновления всякий раз, когда вам нужен новый токен.
Первый подход более надежен, но требует более широких разрешений.Второй имеет более строгую защиту (только пользователи, которые имеют авторизованный доступ, могут читать электронную почту), но имеет немного меньшую надежность.Токены обновления могут быть признаны недействительными, и в этом случае вам потребуется снова войти в систему.