Questão de Segurança da Informação — Questões Mescladas de Autenticação e Controle de Acesso — INSTITUTO AOCP 2024
Segurança da Informação›Questões Mescladas de Autenticação e Controle de Acesso
Código
qa632652
Banca
INSTITUTO AOCP
Órgão
TRF 2
Ano
2024
Cargo
TJ TRF2
Sobre SSO (Single Sign-On), Keycloak e o Protocolo OAuth2 (RFC 6749), analise as assertivas e assinale a alternativa que aponta as corretas.
I. O SSO permite que um usuário faça login uma única vez para acessar vários sistemas sem a necessidade de autenticação adicional.
II. O Keycloak é uma solução de gerenciamento de identidade e acesso que suporta SSO, OAuth2 e OpenID Connect.
III. O OAuth2 (RFC 6749) é um protocolo de autorização que permite que aplicações acessem recursos em nome de um usuário sem compartilhar suas credenciais.
IV. No fluxo de autorização do OAuth2, o client secret é utilizado principalmente no Implicit Flow para melhorar a segurança.
AApenas I e II.
BApenas I, II e III.
CApenas II e IV.
DApenas I e IV.
EApenas III e IV.
Revelar gabarito e comentário▾
GabaritoB — Apenas I, II e III.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
SSO, Keycloak e OAuth2: Autenticação e Autorização
Gabarito: letra B. Estão corretas as assertivas I, II e III: o SSO permite login único para múltiplos sistemas; o Keycloak é uma solução de gerenciamento de identidade e acesso que suporta SSO, OAuth2 e OpenID Connect; e o OAuth2 é um protocolo de autorização que permite acesso a recursos em nome do usuário sem compartilhar credenciais. A assertiva IV está incorreta, pois o client secret é utilizado no Authorization Code Flow (fluxo de código de autorização), e não no Implicit Flow, que é destinado a clientes públicos e não utiliza client secret.
O SSO (Single Sign-On) é um mecanismo de autenticação que permite que um usuário acesse múltiplos aplicativos ou sistemas com uma única autenticação. O usuário autentica uma vez, o sistema armazena um token de autenticação, e outros aplicativos confiam nesse token para permitir acesso sem exigir novas credenciais. Isso reduz a fadiga de senhas e melhora a experiência do usuário, mas depende de um provedor de identidade (IdP) confiável. Se o SSO for comprometido, todos os sistemas conectados podem ser acessados.
O Keycloak é uma solução de código aberto para gerenciamento de identidade e acesso (IAM - Identity and Access Management). Ele fornece autenticação e autorização para aplicações e serviços, suportando protocolos como OAuth2, OpenID Connect e SAML. O Keycloak atua como um provedor de identidade centralizado, permitindo implementar SSO, federação de identidade e gerenciamento de usuários.
O OAuth2 (RFC 6749) é um protocolo de autorização, não de autenticação. Ele permite que aplicações (clientes) acessem recursos protegidos em nome de um usuário (resource owner) sem que seja necessário expor as credenciais do usuário. Isso é feito através da concessão de tokens de acesso. Os principais atores são: Resource Owner (usuário), Client (aplicação), Authorization Server (servidor de autorização) e Resource Server (servidor de recursos). O Authorization Server autentica o usuário e emite tokens; o Resource Server armazena os dados protegidos e verifica os tokens antes de conceder acesso.
O OAuth2 define vários fluxos de autorização (grants), cada um com características e níveis de segurança distintos. O Authorization Code Flow é o mais seguro e recomendado para aplicações web, onde o cliente é confidencial e pode armazenar um client secret. O Implicit Flow é menos seguro, destinado a clientes públicos (como SPAs), e não utiliza client secret. O Client Credentials Flow é usado para comunicação máquina a máquina, e o Resource Owner Password Credentials Flow é restrito e menos seguro.
A distinção crucial entre autenticação e autorização é o que decide esta questão: autenticação verifica quem você é; autorização determina o que você pode fazer. O OAuth2 foca em autorização, enquanto o SSO e o OpenID Connect (que estende o OAuth2) lidam com autenticação. O Keycloak integra esses conceitos, fornecendo uma plataforma unificada.
A pegadinha da banca está na assertiva IV, que inverte o uso do client secret. O client secret é uma credencial usada por clientes confidenciais para se autenticarem no Authorization Server, principalmente no Authorization Code Flow. No Implicit Flow, o token é retornado diretamente na URL de redirecionamento, sem a etapa de troca de código, e o client secret não é utilizado, pois o cliente é público e não pode armazenar segredos com segurança.
OAuth2 (RFC 6749)
1Autorização (não autenticação)
Acesso sem compartilhar credenciais
Tokens de acesso
2Fluxos (grants)
Authorization Code Flow
Cliente confidencial
Usa client secret
Implicit Flow
Cliente público (SPA)
Sem client secret
Token na URL
Client Credentials
Máquina a máquina
Password Credentials
Restrito, menos seguro
LEVEL · soulevel.com.br
Item I — ✅ Correto
O SSO permite que um usuário faça login uma única vez para acessar vários sistemas sem a necessidade de autenticação adicional. Isso é exatamente a definição de Single Sign-On: autenticar uma vez e obter acesso a múltiplos aplicativos, reduzindo a repetição de senhas e centralizando a autenticação.
Item II — ✅ Correto
O Keycloak é uma solução de gerenciamento de identidade e acesso que suporta SSO, OAuth2 e OpenID Connect. O Keycloak é um provedor de identidade (IdP) que implementa esses protocolos, permitindo autenticação centralizada e autorização para aplicações.
Item III — ✅ Correto
O OAuth2 (RFC 6749) é um protocolo de autorização que permite que aplicações acessem recursos em nome de um usuário sem compartilhar suas credenciais. O OAuth2 concede tokens de acesso em vez de expor senhas, permitindo que aplicações acessem recursos protegidos com permissões limitadas.
Item IV — ❌ Incorreto
O client secret é utilizado principalmente no Authorization Code Flow, não no Implicit Flow. O Implicit Flow é destinado a clientes públicos (como SPAs) que não podem armazenar segredos com segurança, e o token é retornado diretamente na URL de redirecionamento. O client secret é uma credencial de cliente confidencial, usada para autenticar o cliente no Authorization Server durante a troca do código de autorização por um token de acesso.
NÃO CAIA NESSA!
A banca inverte o uso do client secret: ele é essencial no Authorization Code Flow (clientes confidenciais), não no Implicit Flow (clientes públicos). Lembre-se: Implicit Flow = sem client secret, token na URL; Authorization Code Flow = com client secret, troca de código por token.
PEGA ESSA DICA!
Para diferenciar os fluxos do OAuth2, foque no tipo de cliente: clientes confidenciais (backend) usam Authorization Code Flow com client secret; clientes públicos (SPAs, apps móveis) usam Implicit Flow ou Authorization Code Flow com PKCE, sem client secret.
Gabarito: letra B — corretas as assertivas I, II e III.