Как заставить ADAL проверять имя пользователя перед использованием кэшированных учетных данных для входа пользователя в приложение

#c# #asp.net-mvc #oauth #azure-active-directory #adal

#c# #asp.net-mvc #oauth #azure-active-directory #adal

Вопрос:

У меня есть ASP.NET Приложение MVC, которое использует Azure Active Directory для аутентификации. Все работает отлично, за исключением этого сценария.

  1. Запустите приложение и войдите с помощью user@domain.com пользователь аутентифицируется, и отображается домашняя страница приложения
  2. Закройте браузер (выход из системы не реализован)
  3. Снова запустите приложение и нажмите войти как другой пользователь
  4. Введите имя пользователя как abc@domain.com — Этот пользователь является поддельным и не существует

Ожидаемое поведение: некоторая ошибка, указывающая, что пользователь не существует или не удалось войти

Поведение приложения: входит в систему user@domain.com по умолчанию без проверки введенного нового имени пользователя.

Примечание: portal.azure.com работает таким же образом.

Вопрос: Есть ли способ изменить это поведение, чтобы имя пользователя проверялось или аутентифицировалось до использования кэшированного токена.

Спасибо

Ответ №1:

Это сделано специально.Мы не обращаемся к AAD для аутентификации каждый раз, кэшированные учетные данные, используемые в качестве токенов / файлов cookie, полученных клиентом во время первоначального входа, достаточно хороши, чтобы получить доступ к ресурсам.

Есть два способа достичь того, что вы ищете

1) Реализовать выход (возможное и оптимальное решение)

2) Внедрите фильтр аутентификации и примените на глобальном уровне, чтобы для каждого запроса он должен проверять токен и имя пользователя, предоставленные пользователем.

Надеюсь, это поможет.