Cyber Security Academy · Aula

OpenID Connect (OIDC)

Adicione identidade sobre o OAuth.

Aula 2 de 413 etapas

OpenID Connect (OIDC) é uma aula grátis de Cyber Security Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cyber Security Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cyber Security Academy inclui 4 aulas no total.

Por que o OIDC existe

OpenID Connect é uma camada fina de identidade construída sobre o OAuth 2.0. O OAuth responde o que este aplicativo pode fazer; o OIDC responde quem é o usuário.

  • Ele padroniza como os clientes autenticam usuários e recebem declarações de identidade verificadas.
  • Ele introduz o token de ID como uma asserção de autenticação assinada criptograficamente.

Antes do OIDC, os desenvolvedores usavam indevidamente tokens de acesso do OAuth para autenticação, o que causava falhas de agente confuso e de personificação.

O token de ID (um JWT)

O artefato característico do OIDC é o token de ID, um JWT assinado que descreve o evento de autenticação.

  • Ele transporta declarações sobre quem iniciou sessão e quando.
  • Ele deve ser consumido pelo cliente, não pelo servidor de recursos.

Nunca envie um token de ID para uma API como credencial de acesso e nunca aceite um sem validar sua assinatura e suas declarações.

Header.Payload.Signature
{
  "iss": "https://idp.example",
  "sub": "248289761001",
  "aud": "app123",
  "exp": 1718000000,
  "iat": 1717996400,
  "nonce": "n-abc"
}

Principais declarações do token de ID

Validar um token de ID significa verificar declarações específicas, não apenas a assinatura.

  • O emissor iss deve corresponder ao IdP esperado.
  • O público aud deve conter seu client_id.
  • O token exp / iat não pode estar expirado e deve ter sido emitido recentemente.
  • O sub é um identificador estável e exclusivo do usuário.
  • O nonce deve corresponder ao valor enviado pelo cliente.

O fluxo de autenticação do OIDC

O OIDC reutiliza o fluxo de código de autorização, mas adiciona o escopo openid e um nonce.

  • O cliente solicita o escopo openid (além dos opcionais profile e email).
  • O ponto de acesso de tokens retorna um token de ID junto com o token de acesso.
  • O nonce vincula o token de ID à solicitação original, impedindo a repetição.
GET /authorize?response_type=code
  &scope=openid profile email
  &client_id=app123
  &redirect_uri=https://app.example/cb
  &state=xyz&nonce=n-abc

Validando a assinatura com JWKS

Os provedores OIDC publicam suas chaves de assinatura em um ponto de acesso JWKS, que pode ser descoberto por meio do documento de configuração conhecido.

  • Busque as chaves em jwks_uri e corresponda ao cabeçalho kid do token.
  • Verifique usando o algoritmo assimétrico listado (RS256, ES256).

Rejeite o algoritmo none e nunca confie em um valor de algoritmo fornecido exclusivamente pelo token.

GET /.well-known/openid-configuration
  -> { "jwks_uri": "https://idp.example/jwks", ... }
GET /jwks
  -> { "keys": [ { "kid": "k1", "kty": "RSA", ... } ] }

O nonce protege contra repetição

Para os tokens de ID, o nonce desempenha o mesmo papel que state para o redirecionamento: um valor de uso único que vincula a resposta à solicitação.

  • O cliente gera um nonce aleatório e o armazena na sessão.
  • O IdP o repete dentro do token de ID.
  • Ao recebê-lo, o cliente verifica se o nonce corresponde e se ainda não foi usado.

Isso bloqueia a repetição de tokens e a injeção de um token criado para uma sessão diferente.

O ponto de acesso UserInfo

Para obter dados adicionais do perfil além do token de ID, o OIDC define o ponto de acesso UserInfo.

  • O cliente o chama com o token de acesso, não com o token de ID.
  • Ele retorna declarações como nome, e-mail e imagem para o sujeito autenticado.

Compare sempre o sub retornado com o sub do token de ID para impedir a substituição de declarações.

GET /userinfo
Authorization: Bearer <access_token>

-> { "sub": "248289761001", "email": "u@example.com" }

Descoberta e metadados

O OIDC padroniza a descoberta para que os clientes possam configurar automaticamente pontos de acesso e recursos compatíveis.

  • O documento /.well-known/openid-configuration lista pontos de acesso, escopos compatíveis e algoritmos.
  • Fixe ou valide o emissor; não siga cegamente a descoberta a partir de um servidor controlado por um invasor.

A descoberta simplifica a integração, mas o emissor continua sendo uma âncora de confiança que deve ser verificada.

Encerramento pelo canal frontal vs. pelo canal de retorno

O encerramento de sessões entre aplicativos federados é tratado pelas especificações de encerramento do OIDC.

  • O encerramento pelo canal frontal usa redirecionamentos e quadros incorporados do navegador para limpar cada parte confiável.
  • O encerramento pelo canal de retorno envia tokens de encerramento entre servidores, sendo mais confiável, mas exigindo pontos de acesso.

Sem um encerramento coordenado, um usuário pode sair de um aplicativo e continuar conectado a outros, o que representa um risco real de gerenciamento de sessões.

Armadilhas comuns do OIDC

Os erros de identidade geralmente surgem quando etapas de validação são ignoradas.

  • Aceitar tokens sem verificar aud (o token destinava-se a outro cliente).
  • Ignorar iss, permitindo a falsificação do IdP.
  • Não validar a assinatura ou aceitar alg: none.
  • Confundir tokens de ID com tokens de acesso.
  • Não verificar o nonce, permitindo a repetição.
Validation checklist:
  [ ] iss == expected
  [ ] aud contains client_id
  [ ] exp not passed, iat sane
  [ ] signature verified via JWKS
  [ ] nonce matches session

OIDC vs. OAuth puro para autenticação

Se seu objetivo é a autenticação, use OIDC, não o OAuth puro.

  • Os tokens de acesso do OAuth são opacos para o cliente e não comprovam nada sobre a identidade.
  • Um token de acesso pode ser válido para outro usuário ou aplicativo, levando à personificação se for usado para autenticação.
  • Os tokens de ID do OIDC são asserções de identidade explicitamente vinculadas ao público.

Essa distinção impede a falha clássica de autenticação do agente confuso.

Verificação rápida: validação do token de ID

Escolha a etapa de validação mais crítica para uma parte confiável que consome um token de ID.

Recapitulação: OpenID Connect

Principais conclusões:

  • O OIDC adiciona uma camada de identidade ao OAuth 2.0; o token de ID é um JWT assinado que comprova a autenticação.
  • Sempre valide iss, aud, exp, assinatura (por meio de JWKS) e nonce.
  • Os tokens de ID são destinados ao cliente; os tokens de acesso são destinados às APIs; nunca troque suas funções.
  • Use nonce contra repetições e state contra CSRF.
  • Use OIDC, não o OAuth puro, quando precisar autenticar usuários.
Grátis para começar

Aprenda Cyber Security Academy com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
76
Aulas
303

Perguntas Frequentes

A aula “OpenID Connect (OIDC)” é grátis?

Sim — o texto completo de “OpenID Connect (OIDC)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cyber Security Academy, atualize para CoddyKit PRO. O curso de Cyber Security Academy inclui 4 aulas no total.

O que vou aprender em “OpenID Connect (OIDC)”?

Adicione identidade sobre o OAuth. Você pratica Cyber Security Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cyber Security Academy?

Nenhuma experiência prévia é necessária. Cyber Security Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “OpenID Connect (OIDC)”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cyber Security Academy?

Sim. Cada aula de Cyber Security Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Fluxos do OAuth 2.0
  2. OpenID Connect (OIDC)
  3. SAML e federação
  4. Ataques a tokens e reforço de segurança
← Voltar para Cyber Security Academy