Autorização
Autorização é o processo de segurança que determina se um usuário verificado (ou sistema) tem permissão para acessar recursos específicos ou realizar determinadas ações.
A autorização determina o que um usuário tem permissão para fazer. Ela segue a autenticação, que confirma quem é o usuário. A autorização depende de mecanismos de controle de acesso, como controle de acesso baseado em função (RBAC) ou controle de acesso baseado em atributo (ABAC), para conceder ou negar acesso com base em regras e políticas predefinidas. Este processo garante que os usuários só tenham acesso aos recursos e funcionalidades que estão autorizados a usar, aprimorando a segurança e prevenindo ações não autorizadas.
graph LR
Center["Autorização"]:::main
Pre_authentication["authentication"]:::pre --> Center
click Pre_authentication "/terms/authentication"
Rel_rbac["rbac"]:::related -.-> Center
click Rel_rbac "/terms/rbac"
Rel_authentication["authentication"]:::related -.-> Center
click Rel_authentication "/terms/authentication"
Rel_single_sign_on_sso["single-sign-on-sso"]:::related -.-> Center
click Rel_single_sign_on_sso "/terms/single-sign-on-sso"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Explique como se eu tivesse 5 anos
🔑 Autorização é como um bibliotecário verificando seu cartão de biblioteca para ver *quais livros* você tem permissão para pegar emprestado, e não apenas se você é você.
🤓 Expert Deep Dive
``markdown
## Especificação Técnica: Autorização - Análise Profunda
Autorização é o processo de verificar e impor direitos de acesso e permissões para um principal autenticado (usuário, serviço, etc.) a recursos e ações específicas. Ela opera após uma autenticação bem-sucedida.
### Conceitos Essenciais
Distinção da Autenticação: Autenticação confirma a identidade ('quem você é'); Autorização define as operações permitidas ('o que você pode fazer').
Tomada de Decisão Baseada em Políticas: O acesso é concedido ou negado com base na avaliação de políticas predefinidas contra as requisições.
Granularidade de Permissões: As permissões variam desde papéis amplos até ações de granularidade fina (por exemplo, ler, escrever, excluir, executar) em recursos específicos.
Centrado no Recurso vs. Centrado na Identidade: A autorização pode ser modelada definindo quais principais podem acessar um recurso, ou quais recursos e ações um principal tem permissão.
Autorização Contextual: As decisões de acesso podem incorporar fatores ambientais dinâmicos (por exemplo, hora, localização, postura do dispositivo).
### Modelos de Autorização
Listas de Controle de Acesso (ACLs): Permissões anexadas a recursos, especificando o acesso para principais.
Controle de Acesso Baseado em Papéis (RBAC): As permissões são atribuídas a papéis, que são então atribuídos a usuários. Simplifica o gerenciamento.
Controle de Acesso Baseado em Atributos (ABAC): As decisões de acesso são baseadas em políticas que avaliam atributos do sujeito, objeto, ação e ambiente. Altamente flexível.
Controle de Acesso Baseado em Políticas (PBAC): O acesso é impulsionado por políticas explícitas e declarativas; frequentemente abrange ABAC.
### Ciclo de Vida da Decisão de Autorização
Ponto de Aplicação de Políticas (PEP - Policy Enforcement Point): Intercepta requisições e as encaminha para decisão.
Ponto de Decisão de Políticas (PDP - Policy Decision Point): Avalia políticas e toma uma decisão de Permitir/Negar.
Ponto de Informação de Políticas (PIP - Policy Information Point): Fornece contexto ou atributos ao PDP.
* Ponto de Administração de Políticas (PAP - Policy Administration Point): Gerencia as políticas.
### Considerações Técnicas
Inclui armazenamento de dados (IAM, bancos de dados), mecanismos de aplicação (gateways de API, service meshes), autorização dinâmica vs. estática, desafios de sistemas distribuídos (JWTs, microsserviços), escalabilidade, revogação, auditoria, o Princípio do Menor Privilégio e Separação de Funções.
### Analogia ELI5: O Sistema da Biblioteca
Autenticação é mostrar a identidade para obter um cartão de biblioteca. Autorização é o que seu cartão permite: pegar livros emprestados, acessar salas de estudo ou visualizar arquivos raros. O bibliotecário verifica as permissões do seu cartão contra as regras da biblioteca (políticas) para determinar seu acesso.
``