A analista Joana implementou o sistema de autorização da aplicação TJApp utilizando o protocolo OAuth2. Joana decidiu por implementar o fluxo do OAuth2 de concessão por código de autorização. A fim de indicar ao servidor de autorização o fluxo de concessão escolhido, Joana atribuiu ao parâmetro response_type da requisição de autorização de TJApp o valor associado ao fluxo implementado, conforme a especificação do OAuth2. Joana atribuiu ao response_type o valor:
- A)code;
Correta, porque no fluxo de concessão por código de autorização o valor do response_type é "code".
- B)token;
Errada, porque "token" é associado a outro fluxo e não ao authorization code grant.
- C)auth-code;
Errada, pois "auth-code" não é o valor padrão definido pela especificação OAuth 2.0.
- D)access-token;
Errada, porque "access-token" não é o response_type usado no fluxo por código de autorização.
- E)client-credentials.
Errada, pois client credentials é um grant type, não o valor do response_type dessa requisição.
Gabarito: A
No OAuth 2.0, o parâmetro response_type é usado na requisição de autorização para indicar qual fluxo de concessão a aplicação quer usar. No fluxo de concessão por código de autorização, o valor correto é "code", porque o cliente primeiro recebe um código e depois o troca por um token no servidor de autorização. Isso reduz a exposição do access token e torna o processo mais seguro, especialmente para aplicações web. Pense assim: o response_type funciona como uma placa na porta dizendo "quero este tipo de resposta". Se a aplicação quer o fluxo de autorização por código, ela deve pedir "code". Os outros valores listados não correspondem ao padrão desse fluxo no OAuth 2.0 e misturam nomes que parecem plausíveis, mas não são os valores definidos pela especificação. Esse ponto cai muito em prova porque a banca gosta de testar se você confunde o tipo de fluxo com o tipo de token. No OAuth 2.0, "code" é o valor associado ao authorization code grant. Já o client credentials é outro grant, usado sem participação do usuário, então não faz sentido como response_type dessa requisição.