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:
- Il client invia una richiesta HTTP a una risorsa protetta.
- Il server risponde con uno stato
401 Unauthorizede un'intestazioneWWW-Authenticate: Basic realm="<realm>", dove<realm>è una descrizione testuale dell'area protetta (risorsa). - Il browser o l'applicazione client mostra una finestra di dialogo per inserire nome utente e password.
- Il client codifica nome utente e password in una stringa nel formato
username:password. - La stringa risultante viene codificata usando Base64.
- Il client ripete la richiesta, aggiungendo l'intestazione
Authorization: Basic <stringa_base64>dove<stringa_base64>è il risultato della codifica Base64. - Il server decodifica la stringa Base64, separa nome utente e password e verifica le credenziali.
- 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).