Я работаю над обновлением устаревшего приложения ASP.NET до ASP.NET Core.
Наше приложение имеет (для меня) довольно базовые требования к аутентификации и авторизации:
- Нам нужно запустить специальную логику для аутентификации запроса (звонки в центральную службу аутентификации)
- Мы хотим, чтобы все действия отклоняли неаутентифицированные запросы по умолчанию
- Мы хотим разрешить анонимные запросы с разрешением анонимно
- Пользователи могут быть членами нескольких разных ролей, и мы хотим иметь возможность принимать / отклонять запросы на их основе. Одна из ролей требуется по умолчанию (для которой могут быть отключены определенные конечные точки), в то время как для других требуется согласие.
- Когда запрос отклонен, мы хотим настроить то, что происходит (например, мы можем отправить 403 или перенаправить пользователя на определенную страницу)
Я пытаюсь выяснить, как наилучшим образом использовать многие и многие интерфейсы и классы авторизации и аутентификации в Asp.NET Core для реализации нашего потока, но после прочтения документации MSFT я все еще чувствую, что я чего-то не хватает
Например, мне удалось заставить вещи работать, используя пользовательский компонент промежуточного программного обеспечения для выполнения аутентификации и установки идентификатора, а также настраиваемый фильтр авторизации для обработки авторизации, но я чувствую, что мне нужно выполнить такие вещи, как проверка на AllowAnonymous
вручную, который не кажется правильным.
Может ли кто-нибудь сопоставить вышеуказанные требования с соответствующими компонентами ASP.NET Core?