#c# #asp.net-mvc #oauth #azure-active-directory #adal
#c# #asp.net-mvc #oauth #azure-active-directory #adal
Вопрос:
У меня есть ASP.NET Приложение MVC, которое использует Azure Active Directory для аутентификации. Все работает отлично, за исключением этого сценария.
- Запустите приложение и войдите с помощью user@domain.com пользователь аутентифицируется, и отображается домашняя страница приложения
- Закройте браузер (выход из системы не реализован)
- Снова запустите приложение и нажмите войти как другой пользователь
- Введите имя пользователя как abc@domain.com — Этот пользователь является поддельным и не существует
Ожидаемое поведение: некоторая ошибка, указывающая, что пользователь не существует или не удалось войти
Поведение приложения: входит в систему user@domain.com по умолчанию без проверки введенного нового имени пользователя.
Примечание: portal.azure.com работает таким же образом.
Вопрос: Есть ли способ изменить это поведение, чтобы имя пользователя проверялось или аутентифицировалось до использования кэшированного токена.
Спасибо
Ответ №1:
Это сделано специально.Мы не обращаемся к AAD для аутентификации каждый раз, кэшированные учетные данные, используемые в качестве токенов / файлов cookie, полученных клиентом во время первоначального входа, достаточно хороши, чтобы получить доступ к ресурсам.
Есть два способа достичь того, что вы ищете
1) Реализовать выход (возможное и оптимальное решение)
2) Внедрите фильтр аутентификации и примените на глобальном уровне, чтобы для каждого запроса он должен проверять токен и имя пользователя, предоставленные пользователем.
Надеюсь, это поможет.