У нас есть identityServer3, связанный как проверяющая сторона с ADFS3 с помощью WSFed. Логин работает нормально. Пытаюсь реализовать logout. Добавлена конечная точка в IDServer, как указано здесь >https://leastprivacy.com/2015/07/08/federated-logout-with-the-katana-ws-federation-middleware/ однако это не работает, потому что не выходит из IDServer, это называется ОК, так как зарегистрировали вызов.
Экспериментировали, вызывая выход из системы непосредственно на IDServer, например. ://идентификатор/выход. Но я должен вызвать его дважды, чтобы выйти из системы. В первый раз, когда я вызываю его, я перенаправляюсь на выход из ADFS, я вижу, что с помощью fiddler ADFS имеет iframe, возвращающийся к ://idserver/?wa=wsignoutcleanup, поэтому я думаю, что это просто случай получения правильного кода в подпрограмма очистки для wsignoutcleanup.
Я обнаружил, что если я дважды вызывал выход из системы, это срабатывало, поэтому я попытался выполнить перенаправление на ://idserver/logout в функции очистки. С помощью fiddler я вижу, что страница вызывается в iframe, но /endsession?sid=xxx тогда не вызывается, может быть, потому, что это iframe в iframe? Я также попытался перенаправить на endsession?sid=xxxx. Я думаю, это сработало, но только если я вызывал https://idserver/logout, а не если я вызывал ://adfs/?wa =выйти. Я предполагаю, что что-то делается при выходе из системы перед вызовом endsession?
Как только это заработает, я надеюсь, что наше javascript-приложение openID/oauth обнаружит, что сеанс пользователя изменился с помощью конечной точки checksession. Кажется, что изменения улавливаются при двойном вызове выхода из системы...
Есть ли у кого-нибудь фрагмент кода, который мы можем использовать в подпрограмме wsignoutcleanup на IDserver, чтобы правильно очистить сеанс?
Спасибо