Sobes.tech
Junior

Cos'è l'autenticazione di base (Basic Auth)?

sobes.tech AI

Risposta dell'AI

L'autenticazione di base è il metodo più semplice per autenticare un client HTTP, definito nello standard RFC 7617.

Principio di funzionamento:

  1. Il client invia una richiesta HTTP a una risorsa protetta.
  2. Il server risponde con uno stato 401 Unauthorized e un'intestazione WWW-Authenticate: Basic realm="<realm>", dove <realm> è una descrizione testuale dell'area protetta (risorsa).
  3. Il browser o l'applicazione client mostra una finestra di dialogo per inserire nome utente e password.
  4. Il client codifica nome utente e password in una stringa nel formato username:password.
  5. La stringa risultante viene codificata usando Base64.
  6. Il client ripete la richiesta, aggiungendo l'intestazione Authorization: Basic <stringa_base64> dove <stringa_base64> è il risultato della codifica Base64.
  7. Il server decodifica la stringa Base64, separa nome utente e password e verifica le credenziali.
  8. Se le credenziali sono corrette, il server invia la risorsa richiesta. Altrimenti, risponde di nuovo con 401 Unauthorized.

Esempio di intestazione Authorization:

Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

dove YWxhZGRpbjpvcGVuc2VzYW1l è una stringa codificata in Base64 di aladdin:opensesame.

Caratteristiche:

  • Semplicità: Facile da implementare sia lato client che lato server.
  • In sicurezza: I dati di credenziali vengono trasmessi, anche se codificati in Base64, ma non cifrati. Base64 è una codifica, non una cifratura. Intercettando il traffico, i dati possono essere facilmente decodificati. Solo in combinazione con HTTPS fornisce un livello minimo di sicurezza.
  • Stato: Non mantiene stato sul server tra le richieste (senza stato). Ogni richiesta richiede l'intestazione Authorization.
  • Esperienza utente: La finestra di dialogo del browser è meno flessibile e user-friendly rispetto ai moduli di autenticazione personalizzati.

Utilizzo: Viene principalmente usato per proteggere API, risorse statiche o in sistemi interni semplici dove la sicurezza non è critica, o sempre in combinazione con SSL/TLS (HTTPS).