У меня возникает проблема с циклом входа при использовании WsFederation Authentication
в моем веб-приложении MVC. Я использовал визуальную студию для создания лесов веб-приложения и для настройки WsFederation
в Startup.cs
. Который генерирует следующий блок кода:WsFederation Authentication login loop
public class Startup
{
private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];
public void Configuration(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata
});
}
}
Веб-приложение размещается в лазури и ADFS находится на территории.
На некоторых клиентов при попытке Логин производится на страницу входа в систему входит в цикл запроса нового лексемы вызывает следующее исключение на сервере ADFS:
Сведения об исключении: Microsoft.IdentityServer.Web. InvalidRequestException: MSIS7042: тот же сеанс браузера клиента сделал «6» запросов за последние 7 секунд. Для получения дополнительной информации обратитесь к администратору.
Я прочитал много статей о StackOverflow и смотрели на различных примерах, предоставленных ребятами, которые писали IdentityServer и я пробовал различные варианты конфигурации, и я не могу локализовать проблему в конкретной области.
Из того, что я прочитал, это общая проблема с совпадением промежуточного продукта OWIN, теряющим контекст объекта, и в результате токен получает «потерянный».
Я попытался реализовать некоторые из sample code, которые другие предоставили в StackOverflow, но, похоже, я не могу найти решение, которое разрешает мою проблему или, возможно, не правильно реализовало код.
Любые идеи?
Я смог воспроизвести проблему в своей локальной среде, но я не ближе к пониманию причины проблемы. Я добавил свой IP как привязку к моей конфигурации IIS Express, так что я могу удаленно получить доступ к веб-сайту для отладки. Это позволило повторить цикл. Когда я обращаюсь к сайту с «192.168.1.20:44341/»; логин работает. Однако, когда я обращаюсь к сайту с "localhost: 44341 /"; происходит цикл входа. IP-адрес конечной точки доверия доверяющей стороны - это мой IP-адрес. –