Grant Type Authorization Code no OAuth 2.0
O Grant Type Authorization Code e um dos grant types OAuth 2.0 mais comummente utilizados. Foi especificamente concebido para aplicacoes que podem manter confidencialmente o seu client secret, tornando-o ideal para aplicacoes do lado do servidor.
Como Funciona o Authorization Code?
- Redirecionamento:
- A aplicacao cliente redireciona o utilizador para o endpoint de autorizacao do servidor de autorizacao OAuth 2.0. Este redirecionamento tipicamente inclui parametros de consulta como o
client_id,response_type(definido como "code"),redirect_uri(para onde o servidor de autorizacao enviara o utilizador apos conceder/negar permissao) escope(que especifica o nivel de acesso que a aplicacao esta a solicitar).
- Autenticacao do Utilizador:
- O utilizador faz login no servidor de autorizacao (se ainda nao tiver sessao iniciada) e revisa o pedido de acesso pela aplicacao cliente.
- Emissao do Codigo de Autorizacao:
- Se o utilizador conceder permissao, e redirecionado de volta para a aplicacao cliente atraves do
redirect_urifornecido anteriormente. O redirecionamento tambem inclui um codigo de autorizacao no URL.
- Troca de Token:
- A aplicacao cliente troca o codigo de autorizacao por um token de acesso fazendo um pedido POST ao endpoint de token do servidor de autorizacao. Este pedido contem o codigo de autorizacao,
client_id,client_secret,redirect_uriegrant_type(definido como "authorization_code").
- Emissao do Token de Acesso:
- Se o servidor de autorizacao verificar com sucesso o codigo fornecido e as credenciais do cliente, retorna um token de acesso (e opcionalmente, um refresh token) para a aplicacao cliente.
- Aceder ao Recurso Protegido:
- A aplicacao cliente usa o token de acesso obtido para fazer pedidos ao servidor de recursos (API) em nome do utilizador.
Como Configurar o Authorization Code?
- Registar a Sua Aplicacao:
- Antes de iniciar o fluxo OAuth, registe a sua aplicacao com o fornecedor OAuth 2.0. Apos registo bem-sucedido, recebera um
client_ideclient_secret.
- Configuracao do Redirect URI:
- Ao registar a sua aplicacao, sera frequentemente solicitado a fornecer um
redirect_uri. Este URI e para onde o servidor de autorizacao enviara os utilizadores apos concederem/negarem acesso. Garanta que este URI e preciso e seguro (tipicamente usando HTTPS).
- Implementar o Fluxo OAuth:
- Use uma biblioteca ou SDK compativel com a linguagem e framework da sua aplicacao para simplificar este processo.
- Inicie o fluxo redirecionando os utilizadores para o endpoint de autorizacao do servidor de autorizacao com os parametros de consulta necessarios.
- Implemente um endpoint no seu servidor que corresponda ao
redirect_urique registou. Este endpoint tratara do codigo de autorizacao recebido. - Troque o codigo de autorizacao por um token de acesso fazendo um pedido POST ao endpoint de token.
- Proteger o Client Secret:
- Nunca exponha o seu
client_secretem codigo do lado do cliente. Use-o apenas do lado do servidor ao trocar o codigo de autorizacao por um token de acesso.
- Armazenamento de Token:
- Uma vez que tenha um token de acesso, armazene-o de forma segura. Dependendo das necessidades da sua aplicacao, isto pode ser na memoria do servidor, numa base de dados ou num cookie seguro. Use sempre HTTPS para garantir comunicacao encriptada.
- Lidar com Expiracao de Token:
- Os tokens de acesso sao frequentemente de curta duracao. Se tiver um refresh token, use-o para obter um novo token de acesso sem necessitar que o utilizador se re-autentique.
Consideracoes Finais sobre Authorization Code
O Grant Type Authorization Code e um metodo robusto e seguro para obter autorizacao do utilizador, especialmente para aplicacoes do lado do servidor. O passo adicional de trocar um codigo de autorizacao por um token de acesso garante que o acesso direto as credenciais do utilizador e evitado. Ao implementar, priorize sempre a seguranca, usando HTTPS e gerindo de forma segura client secrets e tokens.