Controle de acesso baseado em papel foi construído sobre um pressuposto que ninguém precisava enunciar: o ator é uma pessoa, age em ritmo humano e tem intenção própria. Agentes quebram os três pressupostos ao mesmo tempo.
Onde o modelo range
Granularidade. Papéis são grosseiros de propósito — “analista”, “operador”. Funciona porque a pessoa exerce julgamento dentro do papel. O agente não exerce julgamento; ele usa toda a extensão do papel se o contexto pedir.
Frequência. Uma permissão que um humano usaria três vezes por dia, um agente usa três mil. Controles que dependem de escassez natural de uso — revisão de log por amostragem, por exemplo — deixam de funcionar.
Intenção. RBAC autoriza pela identidade, não pelo motivo. Para humano isso é aceitável porque a intenção é estável. Para agente, a intenção vem do contexto, e o contexto pode ter sido escrito por um terceiro hostil.
O modelo autoriza quem chama. O problema dos agentes é que quem chama é sempre a mesma entidade, e o que mudou foi o que ela leu.
O que acrescentar sem jogar fora
Não é caso de substituir RBAC — é caso de somar atributos que o modelo não previa:
- Tarefa. A autorização considera qual tarefa está em execução, não só qual identidade chama.
- Origem do contexto. Se conteúdo externo entrou no contexto desta tarefa, restrinja verbos de escrita externa.
- Orçamento. A permissão tem contagem máxima por tarefa, não só um booleano.
- Delegação. Qual humano pediu, e o agente não pode exceder o que esse humano poderia fazer sozinho.
Esse último item é o mais importante e o mais esquecido: um agente jamais deveria conseguir fazer algo que a pessoa que o acionou não pudesse fazer diretamente. Quando ele consegue, virou mecanismo de escalonamento de privilégio disfarçado de produtividade.
Por onde começar
Comece pelo teto de delegação. É a regra mais simples de escrever, cobre a classe inteira de escalonamento e não exige reescrever nenhuma política existente — só limitar o resultado à interseção entre o que o agente pode e o que o delegante poderia.