Authentication = quem e voce? (identidade) | Authorization = voce pode fazer isso? (permissao). Sao dois middlewares separados que devem rodar nessa ordem.

Authentication vs Authorization

AspectoAuthentication (AuthN)Authorization (AuthZ)
PerguntaQuem e voce?Voce pode fazer isso?
MiddlewareUseAuthentication()UseAuthorization()
ResultadoPopula HttpContext.User (ClaimsPrincipal)Permite ou nega acesso (200/403)
Falha401 Unauthorized403 Forbidden
SchemesJWT Bearer, Cookie, OAuth, OpenID ConnectRoles, Claims, Policies, Custom Requirements

Esquemas de autenticacao

SchemeQuando usarStateless?
JWT BearerAPIs, SPAs, mobile apps, microservicesSim
CookieServer-side rendered apps (Razor, MVC)Nao β€” session no servidor
OAuth 2.0 / OIDCLogin via Google, Azure AD, KeycloakDepende do token resultante
API KeyService-to-service, webhooksSim
Authentication vs Authorization β€” explique a diferenca com exemplo
Authentication e como mostrar sua identidade na portaria β€” voce prova quem e (token, credenciais). Authorization e a portaria verificar se voce tem acesso ao andar 5. No ASP.NET Core, Authentication popula HttpContext.User com claims. Authorization verifica essas claims contra policies. Um pode passar sem o outro: voce pode estar autenticado mas nao autorizado (403), ou nao autenticado (401).