Guia Prático: Autenticação Simples no Web Server ESP32

Com o avanço da Internet das Coisas (IoT), a necessidade de controlar e monitorar dispositivos remotamente se tornou essencial. O ESP32, com sua capacidade de conexão Wi-Fi e Bluetooth, é uma opção popular para criar servidores web embarcados. No entanto, ao disponibilizar um web server, é fundamental considerar a segurança básica para proteger o acesso não autorizado. Neste artigo, exploraremos como implementar uma autenticação simplesSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. no web server do ESP32, garantindo que somente usuários autorizados possam interagir com o dispositivo.

Por que Implementar Autenticação?🔗

Antes de mergulharmos na implementação, é importante entender a motivação por trás da autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados.:

Conceitos Fundamentais🔗

HTTP Básico de Autenticação

O HTTP básico de autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. é um método simples que utiliza um nome de usuário e uma senha para controlar o acesso. Quando um cliente tenta acessar uma página protegida, o servidor solicita credenciais. Se as credenciais fornecidas forem corretas, o acesso é concedido.

Cabeçalhos HTTP

Os cabeçalhos HTTP são fundamentais para a comunicação entre o cliente e o servidor. No caso da autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. básica, o servidor envia o cabeçalho WWW-Authenticate solicitando as credenciais, e o cliente responde com o cabeçalho Authorization contendo o nome de usuário e senhaConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. codificados em Base64.

Configurando o Ambiente de Desenvolvimento🔗

Para este projeto, utilizaremos:

Implementando o Web Server com Autenticação🔗

Passo 1: Incluindo as Bibliotecas Necessárias

Primeiramente, precisamos incluir as bibliotecasHospedando Múltiplas Páginas Web no ESP32Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP. que permitirão ao ESP32 conectar-se à rede Wi-Fi e hospedar um web server.

#include <WiFi.h>
#include <WebServer.h>

Passo 2: Definindo As Credenciais Wi-Fi e de Autenticação

Defina as credenciais da rede Wi-Fi que o ESP32 irá se conectar, bem como o nome de usuário e senha para a autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados..

const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const char* authUser = "admin";
const char* authPassword = "1234";

Passo 3: Criando uma Instância do Web Server

Crie uma instância do web serverIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência. na porta 80.

WebServer server(80);

Passo 4: Configurando a Função de Autenticação

Crie uma função que verificará se o cliente forneceu as credenciais corretas.

bool isAuthenticated() 
{
  if (server.authenticate(authUser, authPassword)) 
  {
    return true;
  } 
  else 
  {
    server.requestAuthentication();
    return false;
  }
}

Passo 5: Definindo as Rotas do Web Server

Configure as rotas que o servidor responderá. Nesse caso, uma rota raiz que está protegida por autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados..

void handleRoot() 
{
  if (!isAuthenticated()) 
  {
    return;
  }
  server.send(200, "text/html", "<h1>Bem-vindo ao Web Server Seguro do ESP32!</h1>");
}

Passo 6: Configurando o Setup do ESP32

No método setup(), inicialize a serial para depuração, conecte-se à rede Wi-FiConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade. e inicie o web server.

void setup() 
{
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.print("Conectando-se a ");
  Serial.print(ssid);
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConectado!");
  Serial.print("Endereço IP: ");
  Serial.println(WiFi.localIP());
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Servidor HTTP iniciado");
}

Passo 7: Loop Principal do Programa

No método loop(), chame o método handleClientHospedando Múltiplas Páginas Web no ESP32Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP.() do web serverIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência. para processar as solicitações recebidas.

void loop() 
{
  server.handleClient();
}

Código Completo🔗

Juntando todas as partes, o códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! completo fica:

#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const char* authUser = "admin";
const char* authPassword = "1234";
WebServer server(80);
bool isAuthenticated() 
{
  if (server.authenticate(authUser, authPassword)) 
  {
    return true;
  } 
  else 
  {
    server.requestAuthentication();
    return false;
  }
}
void handleRoot() 
{
  if (!isAuthenticated()) 
  {
    return;
  }
  server.send(200, "text/html", "<h1>Bem-vindo ao Web Server Seguro do ESP32!</h1>");
}
void setup() 
{
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  Serial.print("Conectando-se a ");
  Serial.print(ssid);
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nConectado!");
  Serial.print("Endereço IP: ");
  Serial.println(WiFi.localIP());
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Servidor HTTP iniciado");
}
void loop() 
{
  server.handleClient();
}

Testando a Autenticação🔗

Após carregar o códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! no ESP32:

1. Conecte-se ao mesmo Wi-FiConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. que o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! está conectado.

2. Abra um navegador webIntegração com Aplicativos Móveis e WebIntegração com Aplicativos Móveis e WebDescubra como integrar ESP32 com aplicativos móveis e dashboards web, garantindo interatividade, controle remoto e segurança em seus projetos IoT. e digite o endereço IP exibido no monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização..

3. Uma janela de autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. deve aparecer solicitando o nome de usuário e a senhaConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização..

4. Insira as credenciais definidas (admin e 1234 por padrão).

5. Se as credenciais estiverem corretas, a mensagem de boas-vindas será exibida.

Como Funciona a Autenticação no Código🔗

Melhorias Possíveis🔗

Embora esta implementação forneça uma camada básica de proteção📞 Interfone IP com Vídeo Chamada📞 Interfone IP com Vídeo ChamadaDescubra como integrar interfone IP com vídeo chamada utilizando ESP32 para segurança residencial e corporativa, com streaming e criptografia avançada., há áreas que podem ser melhoradas:

Considerações de Segurança🔗

Expandindo a Funcionalidade🔗

Após garantir que somente usuários autorizados possam acessar o web serverIntrodução ao Desenvolvimento de um Web Server com ESP32Introdução ao Desenvolvimento de um Web Server com ESP32Desenvolva seu web server com ESP32 e gerencie dispositivos IoT com controle remoto. Siga o tutorial passo a passo e garanta segurança e eficiência., você pode:

Autenticação em Múltiplas Rotas🔗

Você pode proteger múltiplas rotas aplicando o mesmo método de autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados.:

void handleAnotherPage() 
{
  if (!isAuthenticated()) 
  {
    return;
  }
  server.send(200, "text/html", "<h1>Esta é outra página protegida!</h1>");
}
void setup() 
{
  // ... Código anterior ...
  server.on("/outra", handleAnotherPage);
  // ... Código posterior ...
}

Utilizando HTTPS com o ESP32🔗

Para adicionar criptografiaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima., é possível utilizar o servidor HTTPS. Isso requer certificados SSL e ajustes adicionais no código.

Limitantes

Dicas para Melhorar a Segurança🔗

Conclusão🔗

Implementar autenticação em um web server do ESP32 é um passo crucial para garantir a segurança dos seus projetos de IoTVantagens do Uso do ESP32 em Projetos de IoTVantagens do Uso do ESP32 em Projetos de IoTDescubra os principais benefícios do ESP32 para IoT, como conectividade, baixo consumo, dual-core e segurança, e impulsione seus projetos conectados.. Embora a autenticação básica tenha suas limitações, ela oferece uma camada inicial de proteção contra acessos não autorizados. Com o conhecimento adquirido neste artigo, você está pronto para proteger seus projetos e aprofundar-se em mecanismos de segurança mais robustos.

Ao continuar a desenvolver suas habilidades com o ESP32, lembre-se sempre de considerar a segurançaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. como parte integral do seu projeto.

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados