Arquitetura de software · Confiabilidade e segurança · 6 min de leitura
Autenticação: OAuth 2.0, OpenID Connect e JWT
Como um app obtém acesso em nome do usuário sem ver a senha dele, e como tokens carregam essa autorização de forma verificável.
Arraste para o lado para ver o diagrama inteiro.
OAuth 2.0 e OpenID Connect
OAuth 2.0 trata de autorização: dar a um app acesso limitado (escopos) a uma API. OpenID Connect é uma camada por cima que trata de autenticação: quem é o usuário (o ID token). Para apps web e móveis, o fluxo recomendado é o authorization code com PKCE.
JWT
Um JSON Web Token carrega declarações (usuário, escopos, validade) assinadas. A API valida a assinatura sem consultar o banco a cada chamada. Por isso: prazos curtos, renovação com refresh token e nunca guardar dados sensíveis no conteúdo (ele é só codificado, não criptografado).
Cuidados
- Verifique assinatura, emissor, público e validade em toda requisição.
- No navegador, prefira cookies
HttpOnlyeSecurea guardar tokens em armazenamento acessível por scripts. - Use bibliotecas consolidadas; não implemente criptografia por conta própria.
Em resumo
- OAuth = autorização; OIDC = autenticação.
- Authorization code + PKCE para apps.
- JWT: assinado, não secreto; prazo curto.
- Valide sempre assinatura, emissor e validade.