Я пытаюсь интегрировать WS-Federation в свое приложение Asp.Net MVC, используя OWIN. Я следил за примерами github, и он работает, как и ожидалось.
Теперь я хочу сделать еще один шаг вперед и вызвать внешний WebApi, размещенный в другом веб-приложении Azure, с моего веб-сайта. Я не смог найти образцы WS-Fed для этого сценария. WebApi требуется токен доступа для предоставления доступа к защищенным ресурсам. В одном из моих контроллеров MVC я попытался использовать код ADAL.Net для получения токена доступа, но получаю ошибку тайм-аута.
string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
var authContext1 = new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(authority, new NaiveSessionCache(userObjectID));
var credential = new Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential(clientId, appKey);
var tokenResult = await authContext1.AcquireTokenAsync(todoListResourceId, credential);
Я скопировал NaiveSessionCache из одного из примеров Azure на гитхаб. Затем я передаю этот tokenResult.AccessToken вызову webApi, используя HttpClient. Это дает мне ошибку тайм-аута сервера 500.
Однако, если я не использую NaiveSessionCache в authContext1 и заменяю его на false в его конструкторе (без кеша), код работает нормально.
Что мне здесь не хватает? Спасибо!