Я создал API, в котором я пытаюсь получить токен, а затем получить данные с помощью этого токена. Он отлично работает в режиме отладки Visual Studio / локально, запрос учетных данных пользователя, поскольку MFA включен, также будет запрошен OTP и работает нормально
Проблема в том, что когда я развертываю в Azure приложениях API / WEb, он не работает и не работает на линии, где был получен токен. Также заметил, что он никогда не запрашивает учетные данные пользователя при развертывании в веб-приложении. Я хочу получить токен в автоматическом режиме, если это невозможно, запрос учетных данных тоже ОК. По крайней мере, он должен работать после глубокого развертывания в веб-приложении. Вот фрагмент кода:
using Microsoft.IdentityModel.Clients.ActiveDirectory;
//API Method
public async Task<IEnumerable<string>> Get()
{
try
{
private static string authority = String.Format(CultureInfo.InvariantCulture, "https://login.microsoftonline.com/{0}" ,"575d120d-78ae-41fc-b5a0-4072a4349b");
AuthenticationResult result = null;
HttpClient httpClient = new HttpClient();
AuthenticationContext authContext = new AuthenticationContext(authority);
result = await authContext.AcquireTokenAsync(todoListResourceId, clientId, redirectUri, new PlatformParameters(PromptBehavior.Auto));//new PlatformParameters(PromptBehavior.Auto)
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
// Call the To Do list service.
HttpResponseMessage response = await httpClient.GetAsync(todoListBaseAddress + "locations");//+ "/api/values/4"
if (response.IsSuccessStatusCode)
{
//MessageBox.Show(response.RequestMessage.ToString());
string s = await response.Content.ReadAsStringAsync();
}
}
catch (HttpRequestException ex)
{
return new string[] { ex.Message, ex.StackTrace };
}
catch (Exception ex)
{
return new string[] { ex.Message, ex.StackTrace };
}
}