Apidog

Plataforma Colaborativa All-in-one para Desenvolvimento de API

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Cabeçalho de Autorização HTTP | Um Tutorial Definitivo

Aprenda a usar o cabeçalho de autorização HTTP para acessar APIs de forma segura e eficiente, e como lidar com erros e desafios comuns relacionados a isso.

Miguel Oliveira

Miguel Oliveira

Updated on novembro 29, 2024

Se você está trabalhando com APIs, provavelmente sabe o que é o cabeçalho de autorização HTTP. É uma maneira de enviar credenciais a um servidor para autenticar uma solicitação. É frequentemente usado para acessar recursos protegidos ou realizar ações que requerem permissão.

Mas você sabe como usá-lo de forma eficaz e segura? Neste post do blog, vamos mostrar como usar o cabeçalho de autorização HTTP como um profissional, utilizando uma ferramenta chamada Apidog.

💡
Apidog é uma ferramenta baseada na web que ajuda você a testar, depurar e documentar suas APIs gratuitamente. Baixe para experimentar.
button

Ao final deste post do blog, você terá uma melhor compreensão do cabeçalho de autorização HTTP e como usá-lo com confiança. Vamos lá!

O que é um Cabeçalho de Autorização HTTP?

O cabeçalho de autorização HTTP é parte do protocolo HTTP que permite enviar credenciais a um servidor para autenticar uma solicitação. Normalmente é formatado como:

Authorization: <tipo> <credenciais>

O <tipo> indica o esquema de autorização, como Basic, Bearer, Digest, etc. As <credenciais> são os dados que o servidor precisa para verificar sua identidade, como um nome de usuário e uma senha, um token, um hash, etc.

O cabeçalho de autorização HTTP é frequentemente usado para acessar recursos protegidos ou realizar ações que requerem permissão. Por exemplo, pode ser necessário enviar o cabeçalho de autorização HTTP para:

  • Acessar o perfil ou dados de um usuário em uma plataforma de mídia social
  • Carregar ou baixar arquivos de um serviço de armazenamento em nuvem
  • Fazer um pagamento ou uma transação em um site de comércio eletrônico
  • Gerenciar ou monitorar um servidor ou dispositivo em uma rede
  • E muito mais

O cabeçalho de autorização HTTP é uma maneira simples e flexível de autenticar solicitações, mas também apresenta alguns desafios e riscos. Você precisa escolher o esquema de autorização correto para sua API, gerar e enviar o cabeçalho de autorização HTTP corretamente, lidar com erros e respostas do servidor, proteger seu cabeçalho de autorização HTTP contra ataques e documentar seu cabeçalho de autorização HTTP para outros desenvolvedores.

Como Escolher o Esquema de Autorização Certo para sua API

Existem muitos esquemas de autorização que você pode usar com o cabeçalho de autorização HTTP, como Basic, Bearer, Digest, OAuth, etc. Cada esquema tem suas próprias vantagens e desvantagens, e você precisa escolher aquele que atende às necessidades e requisitos de segurança da sua API. Aqui estão alguns fatores que você deve considerar ao escolher um esquema de autorização para sua API:

  • Complexidade: Alguns esquemas de autorização são mais simples e fáceis de implementar do que outros. Por exemplo, Basic e Bearer são muito diretos e requerem apenas um único cabeçalho, enquanto OAuth e Digest são mais complexos e exigem várias etapas e cabeçalhos. Você deve escolher um esquema de autorização que seja fácil de entender e usar tanto para você quanto para os consumidores de sua API.
  • Segurança: Alguns esquemas de autorização são mais seguros e robustos do que outros. Por exemplo, Basic e Bearer são vulneráveis a escuta e ataques de repetição, enquanto OAuth e Digest são mais resistentes a essas ameaças. Você deve escolher um esquema de autorização que forneça proteção adequada para os dados e funcionalidades da sua API.
  • Desempenho: Alguns esquemas de autorização são mais eficientes e rápidos do que outros. Por exemplo, Basic e Bearer são sem estado e não requerem nenhuma solicitação ou consulta adicional ao banco de dados, enquanto OAuth e Digest são com estado e podem exigir sobrecarga extra. Você deve escolher um esquema de autorização que minimize a latência e o consumo de largura de banda da sua API.
  • Padronização: Alguns esquemas de autorização são mais amplamente adotados e suportados do que outros. Por exemplo, Basic e Bearer são muito comuns e compatíveis com a maioria dos clientes e servidores HTTP, enquanto OAuth e Digest são mais específicos e podem exigir bibliotecas ou ferramentas especiais. Você deve escolher um esquema de autorização que seja fácil de integrar e manter para sua API.

Para ajudá-lo a escolher o esquema de autorização certo para sua API, aqui está uma tabela que resume as principais características e diferenças de alguns esquemas de autorização populares:

EsquemaComplexidadeSegurançaDesempenhoPadronização
BasicBaixaBaixaAltaAlta
BearerBaixaMédiaAltaAlta
DigestMédiaMédiaMédiaMédia
OAuthAltaAltaBaixaMédia

Claro, esta tabela não é exaustiva e podem haver outros esquemas de autorização que não estão listados aqui. Você deve sempre fazer sua própria pesquisa e testes antes de escolher um esquema de autorização para sua API.

Como Usar o Cabeçalho de Autorização HTTP com Autenticação Básica?

A autenticação básica é um dos tipos mais simples e amplamente utilizados de cabeçalho de autorização HTTP. Funciona enviando o nome de usuário e a senha do solicitante em texto simples, codificados em base64, para o servidor. O servidor então decodifica as credenciais e verifica se elas correspondem às armazenadas em seu banco de dados. Se corresponderem, o servidor concede acesso ao recurso solicitado. Se não, o servidor retorna uma mensagem de erro.

Para usar o cabeçalho de autorização HTTP com autenticação básica, você precisa seguir estas etapas:

  1. Codifique seu nome de usuário e senha em base64. Você pode usar qualquer ferramenta ou biblioteca online para fazer isso. Por exemplo, se seu nome de usuário for “alice” e sua senha for “secret”, a string codificada em base64 seria “YWxpY2U6c2VjcmV0”.
  2. Adicione o prefixo "Basic " à string codificada. Isso indica que você está usando autenticação básica. Por exemplo, a string final seria “Basic YWxpY2U6c2VjcmV0”.
  3. Defina o valor do cabeçalho de autorização HTTP para a string final. Por exemplo, o cabeçalho de autorização HTTP ficaria assim:
Authorization: Basic YWxpY2U6c2VjcmV0

4. Envie a solicitação ao servidor. O servidor decodificará as credenciais e autentificará a solicitação. Por exemplo, se você estiver usando curl, o comando seria assim:

curl -H "Authorization: Basic YWxpY2U6c2VjcmV0" https://example.com/api

5. Receba a resposta do servidor. Se as credenciais forem válidas, o servidor retornará o recurso solicitado. Se as credenciais forem inválidas, o servidor retornará uma mensagem de erro com o código de status 401 (Não Autorizado).

Usar o cabeçalho de autorização HTTP com autenticação básica é simples e fácil, mas também tem algumas desvantagens. A principal desvantagem é que as credenciais são enviadas em texto simples, o que significa que podem ser interceptadas e comprometidas por qualquer um que possa ver o tráfego da rede.

Portanto, a autenticação básica deve ser utilizada apenas sobre HTTPS, que criptografa os dados e impede a escuta. Outra desvantagem é que a autenticação básica não suporta qualquer forma de gerenciamento de sessão, o que significa que as credenciais precisam ser enviadas com cada solicitação, o que pode ser ineficiente e inseguro.

Portanto, a autenticação básica deve ser usada apenas para APIs simples e sem estado, onde os requisitos de segurança são baixos e o impacto no desempenho é mínimo.

Como Usar o Cabeçalho de Autorização HTTP com Token Bearer

O token Bearer é outro tipo popular de cabeçalho de autorização HTTP. Funciona enviando um token, que é uma string de caracteres que representa a identidade e as permissões do solicitante, ao servidor. O servidor então valida o token e verifica se ele concede acesso ao recurso solicitado. Se conceder, o servidor retorna o recurso. Se não conceder, o servidor retorna uma mensagem de erro.

Para usar o cabeçalho de autorização HTTP com token Bearer, você precisa seguir estas etapas:

  1. Obtenha um token do servidor ou de um serviço de terceiros. O token pode ser gerado e validado usando vários métodos e padrões, como JWT (JSON Web Token), que é uma maneira autossuficiente e segura de codificar e verificar reivindicações. Para obter um token, geralmente você precisa fornecer algumas credenciais, como nome de usuário e senha, ou uma chave de API, ao servidor ou ao serviço. O servidor ou o serviço então retornará um token que contém as informações e permissões do solicitante. Por exemplo, se você estiver usando JWT, o token ficaria assim:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhbGljZSIsIm5hbWUiOiJBbGljZSBCb2IiLCJyb2xlIjoiYWRtaW4iLCJleHAiOjE2MjEwMjQwMDB9.6y0jZt7xg8GxhXUq3TJrcQ4aR7fZ0v0t5DLGJ4Z5C8k

O token consiste em três partes, separadas por pontos: o cabeçalho, a carga e a assinatura. O cabeçalho contém o algoritmo e o tipo do token. A carga contém as reivindicações, que são as informações e permissões do solicitante. A assinatura é o resultado de aplicar o algoritmo ao cabeçalho e à carga, usando uma chave secreta. A assinatura garante a integridade e autenticidade do token.

2. Adicione o prefixo "Bearer " ao token. Isso indica que você está usando autenticação de token Bearer.

3. Defina o valor do cabeçalho de autorização HTTP para a string final.

4. Envie a solicitação ao servidor. O servidor decodificará e verificará o token e autentificará a solicitação.

5. Receba a resposta do servidor. Se o token for válido, o servidor retornará o recurso solicitado. Se o token for inválido, o servidor retornará uma mensagem de erro com o código de status 401 (Não Autorizado) ou 403 (Proibido).

Como usar o cabeçalho de autorização HTTP com Autenticação Digest

A autenticação digest é um tipo de cabeçalho de autorização HTTP mais avançado e seguro do que a autenticação básica. Funciona enviando um hash, que é o resultado de aplicar uma função matemática a uma string de caracteres, das credenciais e algumas outras informações, como um nonce e um timestamp, ao servidor. O servidor então calcula o mesmo hash usando as mesmas informações e o compara com o enviado pelo solicitante. Se corresponderem, o servidor concede acesso ao recurso solicitado. Se não, o servidor retorna uma mensagem de erro.

Para usar o cabeçalho de autorização HTTP com autenticação digest, você precisa seguir estas etapas:

  1. Receba um desafio do servidor. O desafio é uma mensagem que contém algumas informações que o servidor usa para verificar as credenciais, como um nonce, um realm e um qop. O desafio é enviado pelo servidor quando o solicitante tenta acessar um recurso protegido sem autenticação, ou com credenciais inválidas. O desafio é enviado com o código de status 401 (Não Autorizado) e um cabeçalho chamado WWW-Authenticate.
  2. Calcule o hash das credenciais e do desafio. O hash é calculado usando uma função matemática chamada MD5, que produz um número hexadecimal de 32 dígitos a partir de qualquer entrada.

O hash é composto por três partes: o HA1, o HA2 e a resposta. O HA1 é o hash do nome de usuário, do realm e da senha. O HA2 é o hash do método HTTP e da URI da solicitação. A resposta é o hash do HA1, do nonce, da contagem de nonce, do nonce do cliente, do qop e do HA2. A contagem de nonce é um número que indica quantas vezes o nonce foi utilizado. O nonce do cliente é uma string aleatória gerada pelo solicitante.

Como Enviar o Cabeçalho de Autorização HTTP com Apidog

Uma vez que você tenha escolhido um esquema de autorização para sua API, você precisa gerar e enviar o cabeçalho de autorização HTTP com suas solicitações. Isso pode ser feito facilmente com Apidog, uma ferramenta baseada na web que ajuda você a testar, depurar e documentar suas APIs. O Apidog permite que você:

  • Crie e salve várias solicitações de API com diferentes parâmetros, cabeçalhos e corpo
  • Envie e receba solicitações e respostas de API em tempo real
  • Veja e analise o status, cabeçalhos e corpo da resposta da API
  • Valide e formate o corpo da resposta da API com JSON, XML, HTML, etc.
  • Gere e compartilhe documentação da API com outros desenvolvedores.
button

Para usar o Apidog, você precisa seguir estas etapas:

  1. Clique no botão "Nova Solicitação".
Apidog

2. Selecione o método HTTP que deseja usar e insira a URL da API que deseja acessar.

Apidog

3. Clique na aba "Cabeçalhos" e adicione o cabeçalho de autorização HTTP e Auth para modificar seu tipo de autorização.

Apidog
Apidog

4. Clique no botão "Enviar" e verifique o código de status da resposta, cabeçalhos e corpo. Se o token for válido, o código de status deve ser 200 (OK) e o corpo deve conter o recurso solicitado. Se o token for inválido, o código de status deve ser 401 (Não Autorizado) ou 403 (Proibido) e o corpo deve conter uma mensagem de erro.

Apidog

Verifique o código de status da resposta, cabeçalhos e corpo. Se o token for válido, o código de status deve ser 200 (OK) e o corpo deve conter o recurso solicitado. Se o token for inválido, o código de status deve ser 401 (Não Autorizado) ou 403 (Proibido) e o corpo deve conter uma mensagem de erro.

Como você pode ver, apidog torna muito fácil e conveniente gerar e enviar o cabeçalho de autorização HTTP com suas solicitações de API. Você também pode usar o apidog para testar e depurar outros aspectos de sua API, como os parâmetros, cabeçalhos e corpo de suas solicitações e respostas.

Como Lidar com Erros e Desafios Comuns com o Cabeçalho de Autorização HTTP

Quando você usa o cabeçalho de autorização HTTP para autenticar suas solicitações de API, pode encontrar alguns erros e desafios que precisa lidar adequadamente. Alguns dos erros e desafios comuns são:

Credenciais Inválidas ou Ausentes:

Um dos erros mais comuns com o cabeçalho de autorização HTTP é quando as credenciais são inválidas ou estão ausentes. Isso pode acontecer quando o usuário insere o nome de usuário ou senha errados, o token expira ou é revogado, o hash está incorreto ou foi adulterado, ou o cabeçalho está malformado ou omitido.

Para lidar com esse erro, você deve sempre verificar o código de status da resposta e o cabeçalho WWW-Authenticate do servidor.

Se o código de status for 401 (Não Autorizado), isso significa que o servidor requer autenticação e fornece um desafio que indica os esquemas e parâmetros suportados. Você deve, então, solicitar ao usuário que forneça as credenciais corretas ou obter um novo token e tentar novamente a solicitação com o cabeçalho de autorização apropriado.

Se o código de status for 403 (Proibido), isso significa que o servidor rejeita as credenciais ou o token e não permite o acesso ao recurso. Você deve, então, informar ao usuário a razão e as possíveis ações, como entrar em contato com o administrador ou solicitar uma nova autorização.

Ataques de Repetição:

Outro desafio comum com o cabeçalho de autorização HTTP é quando as credenciais ou o token são reutilizados por um atacante que intercepta a solicitação ou a resposta. Isso pode comprometer a segurança e integridade da API e dos dados. Para prevenir esse desafio, você deve sempre usar HTTPS, que criptografa os dados e impede a escuta.

Você também deve usar esquemas que incluam nonce, timestamp e assinatura, como autenticação digest e JWT, que tornam as credenciais ou o token únicos e verificáveis. Você também deve utilizar esquemas que tenham tempo de expiração e mecanismos de revogação, como OAuth 2.0, que limitam a validade e usabilidade das credenciais ou do token.

Desempenho e Escalabilidade:

Outro desafio comum com o cabeçalho de autorização HTTP é quando o processo de autenticação afeta o desempenho e a escalabilidade da API e do servidor. Isso pode acontecer quando o esquema de autenticação é complexo e intensivo em computação, como hashing, criptografia e assinatura, ou quando a autenticação requer várias solicitações e respostas, como obter e atualizar tokens.

Para superar esse desafio, você deve sempre escolher o esquema de autenticação certo para sua API, com base nos requisitos de segurança, na funcionalidade e na experiência do usuário. Você também deve otimizar o processo de autenticação, como armazenar em cache as credenciais ou o token, usar algoritmos e bibliotecas eficientes e reduzir a sobrecarga da rede.

Documentação e Comunicação:

Outro desafio comum com o cabeçalho de autorização HTTP é quando o esquema de autenticação não está bem documentado e comunicado aos usuários e desenvolvedores da API. Isso pode levar a confusão, erros e frustração.

Para evitar esse desafio, você deve sempre documentar e comunicar o esquema de autenticação para sua API, como o tipo, formato, parâmetros, erros e exemplos do cabeçalho de autorização.

Conclusão

O Cabeçalho de Autorização HTTP é uma maneira poderosa e flexível de proteger suas APIs e fornecer autenticação e autorização para seus clientes. Ao seguir as melhores práticas e dicas discutidas neste post, você pode garantir que suas APIs sejam robustas, confiáveis e compatíveis com os padrões e especificações.

Você também pode usar várias ferramentas e frameworks, como Apidog, para projetar, depurar, desenvolver, simular e testar suas APIs com o Cabeçalho de Autorização HTTP. O Apidog ajuda você a conectar todo o ciclo de vida da API e implementar as melhores práticas para o desenvolvimento de API com foco no design.

button
Como acessar a API do Claude 3.7 Sonnet e testar usando ApidogTutoriais

Como acessar a API do Claude 3.7 Sonnet e testar usando Apidog

Se você está empolgado com o último lançamento da Anthropic, Claude 3.7 Sonnet, e quer explorar suas capacidades através da API enquanto o testa com o Apidog, você está no lugar certo. 💡Antes de começarmos, deixe-me fazer uma rápida observação: baixe o Apidog gratuitamente hoje e otimize seu processo de teste de API, especialmente para explorar os poderosos recursos do Claude 3.7 Sonnet—perfeito para desenvolvedores que desejam testar modelos de IA de ponta como este!botão Vamos começar com a

@apidog

fevereiro 25, 2025

Como passar o x-API-key no cabeçalho?Tutoriais

Como passar o x-API-key no cabeçalho?

Desvende os segredos da segurança eficaz de APIs, dominando como passar x-API-key nos cabeçalhos. Este guia abrangente revelará a importância desse processo e como ferramentas como o Apidog podem facilitar seus esforços. Continue lendo para garantir que suas interações com a API permaneçam seguras!

Miguel Oliveira

agosto 12, 2024

Como corrigir o erro HTTP 405 Método Não Permitido no PostmanTutoriais

Como corrigir o erro HTTP 405 Método Não Permitido no Postman

O código de erro HTTP 405 ocorre quando você tenta acessar um servidor usando uma chave de API ou token de acesso inválido ou ausente. Neste artigo, veremos mais sobre o erro 405 e como corrigi-lo.

Miguel Oliveira

agosto 11, 2024