Uma vez, eu fui até lá para fazer o procedimento de recebimento de um lote de mercadorias.

O responsável daquele dia faltou de forma repentina.

Outro homem saiu ao balcão, verificou os documentos e assinou uma confirmação para que a mercadoria fosse liberada do estoque.

Tudo aconteceu de forma bem normal.

Mas depois eu descobri que o que a empresa se importa não é quem ele é.

Mas, na época em que foi assinado, ele estava de fato representando o papel correto, com permissão para tomar aquela decisão?

Parece a mesma coisa.

Mas, na verdade, são duas perguntas totalmente diferentes.

A gente costuma achar que um sistema só precisa saber a identidade de quem está operando.

Verifica.

Saber exatamente quem é.

Assim basta.

Mais tarde, percebi que a identidade só consegue responder “quem está em pé diante do sistema.”

Ela ainda não consegue responder “com base em qual decisão que está sendo tomada sob que denominação.”

Isso me fez pensar bastante ao ler sobre o @NewtonProtocol.

O que acho interessante não está em o policy apenas verificar uma identidade.

Ou seja, uma execução não carrega apenas o nome da pessoa que a realiza.

Ela também carrega o papel, o escopo e a qualificação pela qual aquela execução está sendo representada.

Essa diferença é a que eu acho digna de refletir.

A mesma pessoa.

Mas quando representa papéis diferentes, o significado da mesma execução pode mudar completamente.

Nesse momento, o que o policy precisa avaliar deixa de ser apenas “a pessoa certa”.

Ou seja, esta execução está realmente sendo realizada de acordo com a função que o sistema aceita?

Autorreferência para contestar.

Se todas as decisões se basearem apenas na identidade, o sistema provavelmente ignorará a diferença entre uma pessoa e o papel que ela representa no momento da execução.

Mas, se você olhar apenas para o papel e ignorar a identidade, a responsabilidade individual também se torna menos nítida.

Talvez essas duas coisas nunca tenham sido escolhas que substituem uma à outra.

O que eu quero ver a partir de @NewtonProtocol não é só a capacidade de verificar uma identidade.

Em vez disso, é como o policy entende em que qualidade a execução está sendo realizada, ao invés de presumir que saber quem está executando já é suficiente para tomar uma decisão.

Para mim, uma camada de autorização confiável não precisa apenas saber quem está solicitando a execução.

Ela também precisa entender pelo que essa execução está representando.

#Newt $GOOGLB $LAB $NEWT