O que é Basic Authentication nas requisições HTTP?

Dan Vitoriano
2 min readOct 25, 2022

--

O Basic Authentication é o sistema de autenticação mais comum do protocolo HTTP. Ele é incluído no header da requisição HTTP dessa maneira:

Authorization: Basic {credenciais em base 64 no formato usuário:senha}

Lembre que o Base 64 é um esquema de codificação e não criptografia. Assim sendo, você DEVE utilizá-lo somente com uma conexão HTTPS (TLS). O uso do Base 64 se deve ao padrão MIME.

Workflow

O esquema de autenticação funciona assim: o servidor responde ao cliente o código HTTP 401 (Unauthorized) e com um cabeçalho WWW-Authenticate, que dá informações de como se autenticar. O cliente manda o request com o header de autenticação, mostrado acima. Se as credenciais estiverem corretas, receberá uma resposta diferente de 403 (Forbidden).

Segurança

O Basic Auth no HTTPS (TLS) é bom, mas não é 100% seguro. Seu uso dependerá do nível de risco dos dados que estiverem transitando. Perceba que a cada requisição você estará enviando as credenciais. A autenticação pode ser permanentemente armazenada no navegador, se requerido pelo usuário (bem difícil acontecer quando se trata de RESTful APIs).

Existem várias ações a serem tomadas para aumentar a segurança do seu serviço. Não vou me alongar, porém destacar um ponto: gere chaves de API que não sejam quebradas facilmente. Dê uma olhada nos UUIDs.

Quando utilizar?

Só você pode analisar isso. Qual é o nível de sigilo dos dados em trânsito via HTTP? Se for alto, talvez valha a pena investir em outro esquema de autenticação.

Uma grande vantagem do Basic Auth é a simplicidade. Tanto para o cliente quanto para o servidor. Isso vai acelerar o desenvolvimento para os dois lados.

Utilizar esquemas de autenticação mais modernos, como OAuth e OAuth2 trazem suas vantagens, mas tem que se analisar a real necessidade.

  1. Está transportando dados sigilosos? Talvez a sua opção não seja nem o OAuth ou OAuth2. De quanta segurança você precisa?
  2. Um esquema simples e de rápida implementação resolve seu problema? O Basic Auth parece ser bom.
  3. Precisa de funcionalidades como autenticação por outros serviços? O OAuth traz isso e pode ser a opção.

Vou deixar alguns links que podem ajudar na escolha:

Resposta original em StackOverflow por “vinibrsl”: https://pt.stackoverflow.com/questions/254503/o-que-%C3%A9-basic-auth

Sign up to discover human stories that deepen your understanding of the world.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Dan Vitoriano
Dan Vitoriano

Written by Dan Vitoriano

📱💻 Engenheiro de software, professor e LinkedIn Creator. Tutoriais e artigos sobre tecnologia e programação. Eu era o Idman na blogosfera gay dos anos 2000.

No responses yet

Write a response