OpenID Connect (OIDC)
Adicione identidade sobre o OAuth.
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 opcionaisprofileeemail). - O ponto de acesso de tokens retorna um token de ID junto com o token de acesso.
- O
noncevincula 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-abcValidando 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_urie corresponda ao cabeçalhokiddo 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-configurationlista 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 sessionOIDC 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
noncecontra repetições estatecontra CSRF. - Use OIDC, não o OAuth puro, quando precisar autenticar usuários.
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
- Fluxos do OAuth 2.0
- OpenID Connect (OIDC)
- SAML e federação
- Ataques a tokens e reforço de segurança