Мы могли бы сделать это, но не рекомендуется использовать имя пользователя и пароль для этого.
Как правило, Microsoft не рекомендует клиентам использовать его, поскольку он менее безопасен, чем другие потоки, и он не совместим с условным доступом (если ресурс требует условного доступа, вызов AcquireTokenSilent будет простоне удается, учитывая, что это не интерактивный поток, служба STS не имеет возможности представить диалоговое окно пользователю, чтобы сказать ему / ей, что ему / ей необходимо выполнить многофакторную аутентификацию).
Демонстрационный код.
var graphResourceId = "https://graph.windows.net";
var clientId = "afa0b3fxxxxx";
var userName= "xxxxx";
var password = "xxx";
var result = await authenticationContext.AcquireTokenAsync(graphResourceId, clientId, new UserPasswordCredential(userName, password));
var accessToken = result.AccessToken
Для получения дополнительной информации, пожалуйста, обратитесь к этому документу .
Обновление:
Получить токен обновления.
url:
post https://login.microsoftonline.com/{tenantId}/oauth2/token
Заголовок:
Content-Type: application/x-www-form-urlencoded
body
resource=https%3A%2F%2Fgraph.windows.net&client_id=xxxxx&grant_type=password&username=tom%40xxxx.onmicrosoft.com&password=xxxxx&scope=openid
Результат теста: