Por que um desligamento temporário pode deixar acesso para trás
Quando você precisa pausar uma integração rapidamente, a medida óbvia é suspendê-la ou desinstalá-la. Isso resolve o lado da instalação. Não resolve automaticamente o lado da autorização, que é uma concessão diferente com um proprietário diferente.
Suspender um GitHub App instalado bloqueia temporariamente o acesso aos recursos pertencentes à conta da instalação. Fonte
Essa distinção importa porque um GitHub App pode deter dois tipos de acesso ao mesmo tempo: acesso de instalação aos recursos de uma conta e autorização de usuário para agir em nome de uma pessoa. Pausar um não pausa o outro.
A suspensão não remove a autorização separada para um app agir em nome de um usuário. Fonte
Acesso de instalação versus autorização de usuário
Use esta tabela para decidir qual superfície você realmente precisa alterar.
| O que você quer interromper | Superfície a verificar | O que a suspensão faz | O que ela não faz |
|---|---|---|---|
| O app acessar recursos pertencentes à conta que o instalou | A instalação nessa conta | Bloqueia temporariamente o acesso dessa instalação | Remover a autorização do usuário |
| O app agir em nome de uma pessoa | GitHub Apps autorizados para esse usuário | Nada por si só | Interromper a autorização no nível do usuário |
| Ambos, para uma conta | As duas superfícies | Cobre apenas o lado da instalação | Deixa a outra concessão no lugar |
Um GitHub App não é uma sessão de navegador ativa da qual você simplesmente sai. Suspender uma instalação é um controle no nível da conta sobre recursos; a desautorização é um controle no nível do usuário sobre a ação delegada. Eles são gerenciados separadamente e devem ser verificados separadamente.
Uma lista de verificação prática para um desligamento temporário
- Defina o objetivo primeiro. Decida se você está pausando o alcance do app nos recursos de uma conta, impedindo-o de agir em nome de um usuário, ou ambos. A resposta determina qual superfície você toca.
- Cuide da instalação. Suspenda a instalação na conta proprietária dos recursos que você quer proteger. Trate isso como temporário e reversível.
- Verifique o lado do usuário separadamente. Se o app foi autorizado a agir em seu nome e você quer que isso pare, vá para GitHub Apps autorizados e desautorize-o lá. Não presuma que a suspensão cobriu isso.
- Registre o que você mudou e onde. Anote qual instalação de conta você suspendeu e qual autorização de usuário, se houver, você removeu. Isso evita que uma limpeza posterior deixe uma das duas de fora.
- Reverta deliberadamente. Se a pausa foi temporária, reative a instalação somente depois de confirmar se a autorização do usuário também deve ser restaurada.
Desinstalar é mais forte que suspender, mas ainda tem escopo
Se uma pausa temporária não basta e você quer a instalação removida, desinstalar é a ação mais forte do lado da instalação. Ela ainda não alcança a autorização do usuário por si só.
Desinstalar remove o acesso de instalação dessa conta; a desautorização em GitHub Apps autorizados é uma ação separada quando o proprietário quer impedir que o app aja em seu nome. Fonte
A consequência prática: após desinstalar, verifique GitHub Apps autorizados se o proprietário também quer que o app pare de agir em seu nome. Remover uma conexão não é prova de que a outra sumiu, e um app que não aparece mais em um lugar pode ainda deter a outra concessão.
Caminhos comuns de falha
- Presumir que a suspensão é uma revogação total. Ela bloqueia apenas o acesso aos recursos da instalação. A autorização do usuário sobrevive até você tratá-la.
- Tratar a desautorização como desinstalação. Desautorizar impede o app de agir em seu nome, mas a instalação em uma conta pode permanecer. Decida qual das duas o seu desligamento realmente exige.
- Limpar uma conta e esquecer a outra. Instalações pertencem a contas; autorizações pertencem a usuários. Um plano de desligamento que nomeia apenas uma superfície geralmente deixa a outra intocada.
- Reativar cedo demais. Se você suspendeu em vez de desinstalar, restaurar a instalação pode restaurar o acesso aos recursos antes de você ter revisado o lado do usuário.
Verificando as duas superfícies antes de considerar concluído
Um desligamento só está completo quando cada superfície que você pretendia alterar foi verificada nos seus próprios termos. Confirme o estado da instalação na conta proprietária e depois confirme o estado da autorização em GitHub Apps autorizados para o usuário relevante. Não inferira uma a partir da outra e não descreva o app como desconectado — ele nunca foi uma sessão de navegador.
Se sua próxima tarefa é remover uma concessão OAuth mais antiga e você quer mantê-la separada das sessões de login, o guia relacionado sobre revogar um app OAuth antigo do GitHub sem confundi-lo com uma sessão de login cobre essa etapa de limpeza diferente.