Ответ 1
Как говорится в документах, настраиваемый фильтр проверки подлинности обеспечивает аутентификацию для каждого действия, для каждого контроллера или глобально.
В качестве примера используется изменение аутентификации только для нескольких выбранных контроллеров. Предположим, например, что весь ваш сайт использует проверку подлинности с использованием форм, где принципы берутся из форм cookie.
Однако у вас есть выбранный контроллер, который действует как сервер ресурсов OAuth2, где запросы поступают от поставщиков услуг (серверов), и нет куки-форм форм, а скорее, токен доступа OAuth2 предоставляется сервером поставщика услуг.
В этом случае пользовательский фильтр аутентификации входит в игру - его задача заключается в том, чтобы перевести токен на принципала на время жизни только текущего запроса, только для единственного контроллера, который действует как конечная точка сервера ресурсов. Вы не хотите, чтобы весь сайт принимал токены OAuth2, а не один конкретный контроллер.
Причиной введения фильтров проверки подлинности является разделение аутентификации от авторизации, где:
- аутентификация предназначена для установления принципала для текущего запроса
- авторизация заключается в проверке того, разрешено ли текущему директору выполнять текущий запрос
Это не было четко разделено до того, как были введены фильтры аутентификации. Лично я использовал фильтры авторизации для этого, однако имел два отдельных слоя фильтров в этом конкретном порядке (сначала аутентификация, а затем авторизация).