Autenticazione HTTP di base

L'autenticazione di base HTTP è un semplice meccanismo di sfida e risposta con cui un server può richiedere informazioni di autenticazione (un ID utente e una password) a un client. Il client passa le informazioni di autenticazione al server in un'intestazione di autorizzazione. Le informazioni di autenticazione sono in codifica base-64.

Questo argomento riassume l'autenticazione di base HTTP. Per maggiori dettagli, vedere RFC 2617, HTTP Authentication: Autenticazione di base e Digest, all'indirizzo https://www.ietf.org/rfc/rfc2617.txt

Nota: Lo schema di autenticazione di base HTTP può essere considerato sicuro solo se la connessione tra il client Web e il server è sicura. Se la connessione non è sicura, lo schema non fornisce una sicurezza sufficiente per impedire agli utenti non autorizzati di rilevare le informazioni di autenticazione per un server. Se si pensa che una password possa essere intercettata, utilizzare l'autenticazione di base con la crittografia SSL per proteggere l'ID utente e la password.

Se un client effettua una richiesta per la quale il server si aspetta informazioni di autenticazione, il server invia una risposta HTTP con un codice di stato 401, una frase di motivazione che indica un errore di autenticazione e un'intestazione WWW-Authenticate. La maggior parte dei client Web gestisce questa risposta richiedendo un ID utente e una password all'utente.

Il formato dell'intestazione WWW-Authenticate per l'autenticazione di base HTTP è:
WWW-Authenticate: Basic realm="Our Site"

L'intestazione WWW - Authenticate contiene un attributo realm, che identifica la serie di risorse a cui si applicheranno l'ID utente e la password. I client Web visualizzano questa stringa all'utente. Ciascun realm potrebbe richiedere informazioni di autenticazione differenti. I client Web possono memorizzare le informazioni di autenticazione per ogni realm in modo che gli utenti non debbano immettere nuovamente le informazioni per ogni richiesta.

Quando il client web ha ottenuto un ID utente e una password, reinvia la richiesta originale con un'intestazione di autorizzazione. In alternativa, il client può inviare l'intestazione di autorizzazione quando effettua la sua richiesta originale e questa intestazione potrebbe essere accettata dal server, evitando il processo di richiesta e risposta.

Il formato dell'intestazione di autorizzazione è:
Authorization: Basic userid:password