Questão de Segurança da Informação — OAuth — CESPE / CEBRASPE 2025
- Código
- ce418208
- Banca
- CESPE / CEBRASPE
- Órgão
- PF
- Ano
- 2025
- Cargo
- PCF
- CCerto
- EErrado
GabaritoE — Errado
❌ ERRADO. O OIDC não é uma camada de autorização construída sobre o OAuth 2.0; ele é uma camada de autenticação (identity layer) construída sobre o OAuth 2.0. O OAuth 2.0 é o protocolo de autorização (delegação de acesso a recursos), e o OIDC adiciona a capacidade de autenticar o usuário final, permitindo que o cliente verifique a identidade do usuário com base na autenticação realizada pelo servidor de autorização. A afirmação inverte os papéis: o OIDC usa o OAuth 2.0 como base, mas a camada adicionada é de autenticação, não de autorização.
O OAuth 2.0 é um protocolo de autorização que permite que um aplicativo (cliente) acesse recursos protegidos em nome do usuário (resource owner) sem expor as credenciais dele. Ele faz isso por meio da emissão de tokens de acesso (access tokens) pelo servidor de autorização, após o usuário autenticar e consentir. O OAuth 2.0, por si só, não define um mecanismo padronizado para autenticar o usuário final — ele apenas delega o acesso a recursos.
O OpenID Connect (OIDC) é uma extensão construída sobre o OAuth 2.0 que adiciona uma camada de autenticação. Ele permite que o cliente (chamado de relying party) verifique a identidade do usuário final com base na autenticação realizada pelo servidor de autorização (que atua como Identity Provider). O OIDC introduz o ID Token, um token JWT assinado que contém informações sobre o usuário autenticado (claims como nome, e-mail, identificador único). Enquanto o access token do OAuth 2.0 dá acesso a recursos, o ID Token serve apenas para identificar o usuário.
A confusão entre autenticação e autorização é clássica e a banca explora exatamente essa inversão. Veja a distinção:
Critério | OAuth 2.0 | OpenID Connect (OIDC) |
|---|---|---|
Finalidade | Autorização (delegar acesso a recursos) | Autenticação (verificar identidade do usuário) |
Camada | Protocolo base | Camada de identidade sobre o OAuth 2.0 |
Token principal | Access Token | ID Token (além do Access Token) |
Uso típico | APIs, delegação de acesso | SSO, login social |
Na prática, quando você faz login em um site com "Entrar com Google", o Google atua como servidor de autorização e provedor de identidade: o OAuth 2.0 cuida da autorização (emitir o access token para acessar seus dados), e o OIDC cuida da autenticação (emitir o ID Token que informa quem você é).
A banca troca os termos autenticação e autorização. O OIDC é uma camada de autenticação sobre o OAuth 2.0, não de autorização. O OAuth 2.0 é que é o protocolo de autorização. Guarde: OAuth = autorização (o que você pode fazer); OIDC = autenticação (quem você é).
A afirmação diz que o OIDC é uma "camada de autorização construída sobre o OAuth 2.0". Isso está incorreto porque o OIDC é uma camada de autenticação (identity layer) construída sobre o OAuth 2.0. O OAuth 2.0 já é o protocolo de autorização; o OIDC adiciona a capacidade de autenticar o usuário final, permitindo que o cliente verifique a identidade do usuário com base na autenticação realizada pelo servidor de autorização. A segunda parte da frase ("permite que os clientes usem a identidade do usuário final com base na autorização realizada pelo servidor de autenticação") está correta em essência, mas o erro está em classificar o OIDC como "camada de autorização". O correto seria "camada de autenticação".
Gabarito: ❌ ERRADO (letra E).
Link permanente: /questoes/ce418208