Delegação
O sujeito autoriza o agente a agir por ele. Sem delegação, não há token e não há chamada.
A delegação é a relação "esta pessoa autoriza este agente a agir por ela". Antes de qualquer pergunta sobre tools ou recursos, o Xokepoint confere essa relação. No modelo de autorização ela é a tupla agent#delegator@user (ou @service_account) no OpenFGA, descrita em Modelo de autorização.
Consentimento e expiração não são definidos por pessoa. Eles pertencem ao escopo de cada identity provider no documento de permissões do agente: o administrador escolhe as pessoas ou serviços de um IdP, registra o consentimento uma vez para esse grupo e, se quiser, uma data de fim. A publicação copia essa data em cada tupla de delegação do escopo, e um escopo sem consentimento não é publicado.
O consentimento tem duas origens. Para os sujeitos listados no escopo, vem do administrador: o Admin registra quem confirmou e quando, a partir do usuário logado. Para um harness de código, vem da pessoa: o escopo diz quais grupos do IdP têm membros que podem consentir, e cada pessoa aceita no login (Conectar um harness de código). Esse consentimento interativo é um registro próprio, com a pessoa, o grupo e uma validade limitada pelo escopo, e a publicação inclui uma tupla de delegação para cada um ativo. Uma pessoa bloqueada no agente não tem tupla de delegação, seja qual for a origem. Alguns IdPs conseguem provar a delegação por conta própria (Entra On-Behalf-Of, Okta Cross App Access, o claim act no Keycloak), e o documento de permissões já tem espaço para um consentimento com origem no IdP, mas o authorization server ainda não aceita essas provas: uma troca de token com actor_token é recusada.
A data de fim é uma condição da própria relação: o OpenFGA a avalia com a hora atual em cada consulta, e uma delegação vencida simplesmente deixa de existir para a decisão.
A delegação é conferida em dois momentos, e o segundo é o que importa para revogar:
Se a conferência acontecesse só na troca, revogar uma delegação esperaria o token vencer. Como ela se repete em cada chamada, o agente perde o acesso na chamada seguinte à revogação.