#azure #azure-active-directory #logout
#azure #azure-active-directory #Выход
Вопрос:
Мы столкнулись с проблемой при выходе из нашего приложения. Как только мы выйдем из системы, все будет в порядке из браузера, но если мы перехватим запрос с помощью некоторых инструментов (fidler или burp) и снова отправим запрос на сервер со старыми файлами cookie, и сведения о сеансе дадут полный ответ. Это возможно только с помощью любого средства перехвата. Я использую приведенный ниже код для выхода из приложения:
Session.RemoveAll();
HttpContext.GetOwinContext().Authentication.SignOut(OpenIdConnectAuthenticationDefaults.AuthenticationType,
CookieAuthenticationDefaults.AuthenticationType);
Ответ №1:
Это происходит потому access token
, что и refresh tokens
, выданные Azure AD, не удаляются при инициировании выхода из приложения. Пока срок действия этих токенов не истек, их можно использовать.
На основе this
, время жизни токена доступа настраивается (по умолчанию, я полагаю, составляет 1 час), и вы должны установить его в зависимости от ваших потребностей.
Кроме того, есть сообщение об отзыве, касающееся недействительных токенов: https://feedback.azure.com/forums/169401-azure-active-directory/suggestions/19474918-invalidate-jwt-token. Не стесняйтесь голосовать за эту функцию.
Комментарии:
1. Спасибо @gaurav, поскольку я использую проверку подлинности Azure ad (страницу входа в Microsoft), и мы не используем какой-либо другой явный токен jwt, и при выходе из системы приложение перенаправляется на login.microsoftonline.com {идентификатор тананта}/oauth2/выход из системы?post_logout_redirect_uri={logouturl} и он отлично работает со стороны браузера, но если мы снованажмите старый запрос от fidler или какого-либо инструмента, после чего он будет аутентифицирован.
2. Если вы посмотрите на запрос, вы увидите заголовок «Авторизация», содержащий маркер доступа.
3. Я понял вашу точку зрения, но в моем сценарии приведенный выше код автоматически возвращает URL-адрес для выхода из системы, но на стороне сервера он все еще действителен: (