Я хочу получить токен доступа по указанному URL:
https://login.microsoftonline.com/{AzureTenantId}/oauth2/v2.0/token
Я передаю следующие параметры, как указано в документации Microsoft: client_id
, scope
, client_secret
, grant_type
.
Когда я нажимаю на этот URL, я получаю ответ «400 Bad Request».
Когда я пытаюсь сделать то же самое с почтальоном, он успешно завершает работу и предоставляет мне токен доступа:
Но не из моего кода:
public async Task<string> GetAuthorizationToken(string clientId, string ServicePrincipalPassword, string AzureTenantId) {
var result = "";
var requestURL = "https://login.microsoftonline.com/{AzureTenantId}/oauth2/v2.0/token";
var _httpClient = new HttpClient();
var model = new {
client_id = clientId,
scope = "{clentID}/.default",
client_secret = ServicePrincipalPassword,
grant_type = "client_credentials"
};
HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(model), System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, new Uri(requestURL)) {
Content = httpContent
};
using (var response = await _httpClient.SendAsync(httpRequestMessage)) {
if (response.IsSuccessStatusCode) {
var responseStream = await response.Content.ReadAsStringAsync();
return result;
} else {
return result;
}
}