Получение несанкционированного сообщения при передаче токена доступа в запросе - PullRequest
0 голосов
/ 24 сентября 2018

Я создал приложение для Windows, которое вызывает приложение, размещенное в Azure.Служба приложений использует AAD для аутентификации.Ниже приведен метод, который я использую для входа в MS и хранения токена.

authContext = new AuthenticationContext(authority, new FileCache());
authContext.AcquireTokenAsync(todoListResourceId, clientId, redirectUri, new PlatformParameters(PromptBehavior.Always)).ContinueWith(t =>
            {
               result = t.Result;
            })
            .Wait();

Используя этот метод, я успешно могу войти в систему с использованием учетных данных MS и получить токен доступа из result .

Теперь я передаю этот токен в запросе заголовка, чтобы получить некоторые данные из приложения, для которого включен SSO, например: -

using (var client = new HttpClient())
{
    var uri = "http://appservice.azurewebsites.net/api/values/5";

    _auth.GetToken().ContinueWith(t => { token = t.Result; }).Wait();
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);

    var TaskAPI = client.GetAsync(uri).ContinueWith(task =>
    {
        if (task.Status == TaskStatus.RanToCompletion)
        {
            var response = task.Result;
            if (response.IsSuccessStatusCode)
            {
                flag = 1;
                var data = response.Content.ReadAsStringAsync().Result;

            }
        }
    });

    TaskAPI .Wait();
}

Функция Get Token автоматически получает токен

Ниже приведен метод GetToken (), используемый для извлечения токена для вызова API

authContext.AcquireTokenSilentAsync(todoListResourceId, clientId)
           .ContinueWith(i =>
                  {
                       result = i.Result;
                  }).Wait(); 

return result.AccessToken;

Когда я вызываю этот URI, передавая извлеченный токен, я получаю ответ Un Authorized (401).

Как я могу проверить, является ли токен правильным, или я что-то упустил, или есть ли другой способ сделать это?

Спасибо

Subham, Nathcorp

...