Pular para o conteúdo principal

Questão de Segurança da Informação — OAuth — FCC 2024

Segurança da InformaçãoOAuth
Código
fc147374
Banca
FCC
Órgão
TRT 20
Ano
2024
Cargo
TJ TRT20
O parâmetro scope no OAuth 2.0 é usado para especificar
  1. Ao método de autenticação do cliente.
  2. Bo tipo de token de acesso a ser emitido.
  3. Cos recursos e permissões que o cliente deseja acessar.
  4. Do servidor de autorização será utilizado .
  5. Eo tempo de vida do token de acesso.
Revelar gabarito e comentário

GabaritoC — os recursos e permissões que o cliente deseja acessar.

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”.

OAuth 2.0: o parâmetro scope e a delimitação de acesso

Gabarito: letra C. No OAuth 2.0, o parâmetro scope especifica os recursos e permissões que o cliente deseja acessar em nome do usuário — é ele que delimita o escopo da autorização concedida. As demais alternativas confundem o scope com outros elementos do protocolo: o método de autenticação do cliente é definido pelo client_secret/client_authentication, o tipo de token é definido pelo token_type/grant_type, o servidor de autorização é uma entidade do fluxo (não um parâmetro) e o tempo de vida do token é controlado pelo expires_in.

O OAuth 2.0 é um protocolo de autorização, não de autenticação. Ele permite que uma aplicação (cliente) acesse recursos protegidos de um usuário (proprietário do recurso) sem que o usuário precise compartilhar suas credenciais com a aplicação. Em vez disso, o usuário autoriza o acesso, e o servidor de autorização emite um token de acesso que o cliente apresenta ao servidor de recursos para obter os dados.

O parâmetro scope é um dos elementos centrais desse fluxo. Quando o cliente solicita um token, ele informa quais permissões precisa — por exemplo, "ler e-mails" ou "acessar dados do perfil". O servidor de autorização, após a aprovação do usuário, emite um token que carrega exatamente essas permissões. Isso permite um controle granular: o usuário pode conceder acesso a apenas parte dos seus dados, e não a tudo.

Para entender a questão, é essencial distinguir os papéis e parâmetros do OAuth 2.0:

Elemento

Função

scope

Define os recursos e permissões solicitados pelo cliente

client_secret

Credencial usada para autenticar o cliente

grant_type

Define o fluxo de autorização (ex.: authorization_code, client_credentials)

expires_in

Tempo de vida do token de acesso

token_type

Tipo do token (ex.: Bearer)

Authorization Server

Servidor que autentica o usuário e emite tokens

Resource Server

Servidor que hospeda os recursos protegidos e valida tokens

A pegadinha da banca está em associar o scope a elementos que, embora façam parte do protocolo, têm funções distintas. O candidato que decora os nomes dos parâmetros sem entender o papel de cada um tende a confundir scope com client_secret (autenticação do cliente) ou com expires_in (tempo de vida).

NÃO CAIA NESSA!

A banca explora a confusão entre os parâmetros do OAuth 2.0. O scope não define o método de autenticação do cliente (isso é papel do client_secret), não define o tipo de token (isso é papel do grant_type/token_type) e não define o tempo de vida do token (isso é papel do expires_in). O scope é exclusivamente sobre o que o cliente quer acessar — recursos e permissões. Memorize: scope = escopo de acesso.

Alternativa A — ❌ Incorreta

O método de autenticação do cliente no OAuth 2.0 é definido por outros mecanismos, como o client_secret (para clientes confidenciais) ou o client_authentication no token endpoint. O scope não tem relação com a autenticação do cliente — ele diz respeito ao que o cliente quer acessar, não a como ele se identifica.

Alternativa B — ❌ Incorreta

O tipo de token de acesso a ser emitido é determinado pelo grant_type (o fluxo de autorização utilizado) e pelo token_type (ex.: Bearer). O scope não define o tipo de token, mas sim as permissões que o token carregará. Um mesmo tipo de token (ex.: Bearer) pode carregar diferentes escopos.

Alternativa C — ✅ Correta ⟵ GABARITO

O scope especifica exatamente os recursos e permissões que o cliente deseja acessar. Quando o cliente faz uma solicitação de token, ele inclui o parâmetro scope para indicar o nível de acesso necessário. O servidor de autorização, após a aprovação do usuário, emite um token restrito a esse escopo. É o mecanismo que permite o controle granular de permissões — o usuário pode conceder acesso a apenas parte dos seus dados.

Alternativa D — ❌ Incorreta

O servidor de autorização é uma entidade do fluxo OAuth, não um parâmetro da requisição. Ele é o componente responsável por autenticar o usuário e emitir tokens. O scope é um parâmetro enviado na requisição de autorização/token, não uma referência ao servidor.

Alternativa E — ❌ Incorreta

O tempo de vida do token de acesso é controlado pelo parâmetro expires_in, que indica em quantos segundos o token expira. O scope não tem relação com a validade temporal do token — ele define o que o token permite acessar, não por quanto tempo.

Gabarito: letra C — o scope especifica os recursos e permissões que o cliente deseja acessar.

Link permanente: /questoes/fc147374