Проблемы с выходом из веб-приложения ASP с помощью служб федерации - PullRequest
0 голосов
/ 26 марта 2019

Я пытаюсь выйти из приложения интрасети, которое также доступно из Интернета при входе с использованием служб федерации Active Directory.

Во-первых, я только что сделал href для https://federation.mycompany.com/adfs/ls/?wa=wsignout1.0. На странице федерации появится и отобразится сообщение: «Вы успешно вышли из системы!» Но если я вернусь, я снова смогу получить доступ к веб-приложению без повторного входа. Я также попытался добавить параметр перенаправления, чтобы пользователю было предложено снова ввести учетные данные. Но перенаправление не происходит.

Позже я создал Action в одном из моих контроллеров. Вот код:

public ActionResult Logoff()
{
    string absoluteUrl = HttpContext.Request.Url.AbsoluteUri;
    string replyUrl = absoluteUrl.Substring(0, absoluteUrl.LastIndexOf("/")+1);
    WSFederationAuthenticationModule.FederatedSignOut(new Uri(@"https://federation.mycompany.com/adfs/ls/?wa=wsignout1.0"), new Uri(replyUrl));
    return null;
}

Но проблема та же.

Третье, что я попробовал, это удалить куки перед выходом. Но похоже, что cookie для аутентификации находится в домене, а не в моем приложении, поэтому он недоступен.

Как мне решить эту проблему?

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 27 марта 2019

Я только предполагаю, но я подозреваю, что ваша ADFS настроена для проверки подлинности Windows, в то время как ваше приложение имеет кнопку входа в систему.

Если это так, то вы не можете действительно выйти из уже аутентифицированной ADFS, и он с радостью переиздаст токен при следующем запросе приложения. Вы ничего не можете с этим поделать, поскольку аутентификация выполняется с помощью MTML / Kerberos, и это браузер, который хранит ваши учетные данные, пока вы не закроете его.

Решением было бы переключить ADFS в режим форм и посмотреть, поможет ли это.

...