Autorização (RBAC e ABAC)
Modelos para decidir o que cada usuário pode fazer, por papel ou por atributos.
Autorização é decidir se o usuário, já identificado, pode fazer aquela ação naquele recurso. A autenticação diz quem é; a autorização, o que pode.
A falha mais comum em APIs é simples: o usuário troca o número na URL e vê o pedido de outra pessoa. Testes com um só usuário não a encontram.
- Por papel (RBAC): cada papel tem um conjunto de permissões.
- Por atributos (ABAC): a regra olha o usuário, o recurso e o contexto, como "só o dono".
- A conferência acontece em cada recurso, e não só na entrada da rota.
- O padrão é negar o que não foi permitido de forma explícita.
- A política fica num só lugar, e não espalhada pelo código.