Questão nº 49
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 49)
O servidor OAuth2 do TJMS recebeu a seguinte requisição no endpoint de token:
POST /token HTTP/1.1
Host: auth-tjms.jus.br
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=client_id
&client_secret=client_secret
De acordo com a especificação do OAuth2, a requisição OAuth2 acima é:
- Ainválida, pois há parâmetros obrigatórios ausentes;
- Binválida, pois utiliza o método POST ao invés do GET;
- Cválida, e os parâmetros obrigatórios estão presentes; (alternativa correta)
- Dinválida, pois utiliza o HTTP/1.1 ao invés do HTTP/2.0;
- Einválida, pois há parâmetros com valores não permitidos.
Resposta comentada
Gabarito Alternativa C
OAuth2 é um protocolo de autorização que permite a uma aplicação (o cliente) obter acesso limitado a recursos protegidos. O endpoint de token é o local onde o cliente solicita um token de acesso, e o grant_type (tipo de concessão) especifica o método de autorização utilizado e os parâmetros necessários para essa solicitação.
- (A) Incorreta: Todos os parâmetros obrigatórios para o
grant_type=client_credentials(que sãogrant_type,client_ideclient_secretquando a autenticação é via corpo da requisição) estão presentes. O parâmetroscopeé opcional. - (B) Incorreta: A especificação OAuth2 exige que as requisições ao endpoint de token utilizem o método POST, não GET, para enviar os parâmetros no corpo da requisição de forma segura. Armadilha da banca: Muitos iniciantes podem associar GET a requisições web simples, mas para troca de tokens, POST é o método correto e obrigatório.
- (C) Correta: A requisição é válida. Ela utiliza o método POST e o
Content-Typecorretos, e inclui os parâmetrosgrant_type=client_credentials,client_ideclient_secret, que são os parâmetros obrigatórios para esse tipo de concessão quando a autenticação do cliente é feita no corpo da requisição. - (D) Incorreta: O HTTP/1.1 é um protocolo válido e amplamente utilizado para requisições OAuth2; não há exigência de uso do HTTP/2.0.
- (E) Incorreta: Os valores
client_credentials,client_ideclient_secretsão exemplos de valores permitidos para os respectivos parâmetros. Não há indicação de que os valores utilizados sejam inválidos.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Web Designer (Caderno Tipo 1). Reproduzida para fins de estudo.