O OAuth2 é um protocolo de autorização amplamente utilizado em seviços da web. Neste protocolo, a autorização é expressa na forma de uma concessão de autorização (authorization grant), que a aplicação cliente utiliza para solicitar o token de acesso. São tipos de concessão de autorização definidos no OAuth2:
- A)application grant e authorization code grant.
Errada, porque application grant não é um tipo de concessão definido no OAuth2.
- B)application grant e resource owner grant.
Errada, porque application grant e resource owner grant não são nomes oficiais dos grants do protocolo.
- C)authorization code grant e user system grant.
Errada, porque authorization code grant existe, mas user system grant não faz parte do OAuth2.
- D)client credentials grant e implicit grant.
Certa, porque client credentials grant e implicit grant são tipos de concessão previstos na especificação OAuth2.
- E)user credentials grant e system resource grant.
Errada, porque user credentials grant e system resource grant não são concessões previstas no OAuth2.
Gabarito: D
O OAuth2 é um padrão de autorização usado para permitir que um aplicativo acesse recursos protegidos sem precisar conhecer a senha do usuário. Em vez disso, a aplicação recebe uma concessão de autorização, troca essa concessão por um access token e usa esse token para falar com o servidor de recursos. Isso é bem mais seguro e modular do que entregar credenciais diretamente para todo mundo. A RFC 6749, que define o OAuth 2.0, lista quatro tipos clássicos de authorization grant: authorization code, implicit, resource owner password credentials e client credentials. Em provas, a banca costuma cobrar exatamente esse repertório, então vale guardar a lista como quem guarda senha de Wi-Fi: uma vez decorada, salva tempo. O gabarito é a letra D porque client credentials grant e implicit grant são tipos de concessão previstos no OAuth2. O client credentials é usado quando a aplicação cliente atua em nome dela mesma, sem usuário final. Já o implicit era um fluxo previsto para certos cenários em aplicações de navegador, embora hoje seja desaconselhado em muitas implementações modernas por questões de segurança. As demais alternativas inventam nomes que não fazem parte da especificação, como application grant, user system grant ou system resource grant. Em questão de concurso, quando aparecer OAuth2, pense na RFC 6749 e nos nomes oficiais dos fluxos, porque a banca adora trocar o termo correto por um parecido para ver se você escorrega.