Recursos · 43

OAuth e OpenID Connect: verifique uma integração de ponta a ponta.

Separe o login, a delegação e as permissões de dados e, em seguida, teste redirecionamentos, tokens, sessões e revogação. O guia

Atualizado · 4 min

O que este guia ajuda a alcançar

  • Separar identidade de autorização
  • Rejeitar redirecionamentos e tokens não intencionais
  • Testar negações com o mesmo cuidado que os sucessos
  • Verificar a remoção de acesso após a saída ou incidente

Verificação rápida

  • Qual provedor e emissor são esperados?
  • O URI de redirecionamento está registrado corretamente?
  • Um token de ID está sendo usado incorretamente como token de acesso?
  • Cada recurso verifica a propriedade?
  • Qual acesso sobrevive à revogação?

Método passo a passo

  1. 1

    Desenhar o fluxo implantado

    Identificar cliente público ou confidencial, navegador, servidor de autorização, API e provedor OIDC. Registrar por onde os códigos e tokens trafegam, quem os armazena e quais funções são concedidas. Um diagrama de vendas não estabelece a implantação real.

    Entregável: fluxo, limites de confiança e proprietários de componentes.

  2. 2

    Verificar a transação de login.

    Usar o fluxo de código com PKCE apropriado para o cliente. Verificar S256, vinculação de transação, redirecionamentos registrados e proteção contra solicitações falsificadas. Testar URI inesperado, verificador incorreto, código reproduzido e emissor inesperado. A RFC 9700 separa os requisitos e recomendações por tipo de cliente.

    Entregável: resultados de testes de permissão e negação.

  3. 3

    Validar o token correto.

    A API valida seu token de acesso de acordo com o formato e as regras do provedor: assinatura ou introspecção, emissor, público-alvo, expiração e permissões. O cliente OIDC valida separadamente o token de identidade. Uma assinatura válida não estabelece que o token pertence a esta API.

    Entregável: contrato de validação e testes de público-alvo e expiração.

  4. 4

    Verificar permissões de negócios

    Testar um objeto pertencente a outra conta, uma função inferior, um campo privado e uma operação administrativa. Um escopo ou gateway autenticado não substitui as verificações do lado do servidor no recurso solicitado. Usar contas e dados de teste autorizados.

    Entregável: matriz de função, objeto, operação e negação esperada.

  5. 5

    Exercitar expiração e revogação

    Separar sessão local, sessão do provedor, token de acesso e token de atualização. Testar saída, perda de dispositivo, alteração de função, rotação da chave de assinatura e indisponibilidade do provedor. Documentar o tempo de acesso residual em vez de presumir que o logout revoga tudo imediatamente.

    Entregável: linha do tempo de remoção de acesso e exceções.

  6. 6

    Observar sem expor segredos

    Registrar referência de transação, decisão de validação, categoria de erro e versão de configuração. Excluir códigos, tokens e segredos. Preparar diagnóstico, desligamento da integração e reversão para uma configuração validada; reproduzir testes após alterações de provedor.

    Entregável: procedimento operacional e verificações de regressão.

Exemplo prático fictício

Situação ilustrativa

Situação ilustrativa: dois clientes usam um provedor de identidade. Um token válido para o primeiro é apresentado à API do segundo cliente.

Decisão e evidências esperadas

A API rejeita o público-alvo errado, registra um rastreamento sem token e não retorna dados. A negação se torna um teste de regressão.

Distinguir os mecanismos

MecanismoFinalidadeVerificação ou limitação
OAuth 2.0Delegar acesso a recursosPermissões de objetos no servidor
OpenID ConnectEstabelecer identidade por meio de um token de ID validadoValidação de emissor, público-alvo e transação
Sessão do aplicativoManter o login do aplicativoExpiração, invalidação e proteção de sessão

Indicadores de gestão

IndicadorO que medePrimeira ação
Corrigir negaçõesCasos proibidos realmente bloqueadosCorrigir toda aceitação inesperada
Atraso na revogaçãoTempo até que o acesso relevante desapareçaVerificar sessões e tokens separadamente
Falhas de validaçãoRejeições por causa e versãoSeparar ataques de erros de configuração

Erros comuns

  • Confundir autenticação com autorização
  • Aceitar qualquer público-alvo após verificar a assinatura
  • Registrar URIs de redirecionamento amplo
  • Registrar tokens para facilitar Depuração

Perguntas frequentes

O PKCE substitui todos os controles?

Não. Ele protege a troca de código no fluxo pretendido; a validação de token, redirecionamentos, autorização de negócios e sessões ainda precisam ser verificados.

Um JWT é uma permissão?

JWT é um formato. As declarações só se tornam utilizáveis ​​após a validação e aplicação das suas regras de API.

A validação deve ser construída do zero?

Prefira uma biblioteca mantida e documentação do provedor e, em seguida, teste sua configuração. Uma biblioteca correta ainda pode ser configurada incorretamente.

Referências oficiais

As referências apoiam o método. Adapte as verificações ao seu contexto; elas não são uma certificação. Os títulos das referências originais e os documentos de origem podem estar em outro idioma.