Backend, APIs e dados · Misto

Autenticação e autorização: quem você é e o que tem permissão

Em uma linha: Identidade e autorização são duas perguntas distintas, e a maioria das brechas vem da segunda ser verificada na interface e não no servidor.

Separação

Autenticação responde quem é o usuário. Autorização responde se ele tem permissão de executar a ação no recurso. Esconder um botão na interface não é autorização — qualquer requisição pode ser enviada diretamente.

A regra: toda rota verifica a autorização no recurso concreto, não só que o usuário está logado.

Modelos práticos

Por papéis — simples, suficiente para a maioria dos sistemas. Por propriedade e pertencimento — necessário quando usuários veem só os dados da própria organização. Por política detalhada — poderoso e caro de manter, e só quando realmente necessário.

Comece simples e documente as regras em um único lugar no código, não espalhadas em vinte verificações.

Tokens

Expiração curta para um token de acesso, um token de renovação que possa ser revogado, e uma lista de negação para eventos de logout. Guarde no servidor o suficiente para revogar o acesso imediatamente — uma capacidade necessária exatamente no dia em que não há tempo para construí-la.

Indo mais fundo

O perigo mais comum é o acesso direto a um recurso por identificador: trocar um número no endereço que retorna dados de outro. Verifique isso sistematicamente em toda rota que recebe um identificador, e adicione um teste automático que tenta acessar entre usuários.