Passa al contenuto principale

4.12. Autenticazione del client

4.12. Autenticazione del client

Le applicazioni che utilizzano HTTP spesso devono autenticare i client. HTTP fornisce diversi meccanismi per l'autenticazione:

  • Autenticazione HTTP: Utilizzo dei campi di intestazione WWW-Authenticate e Authorization, come definito in [HTTP] Sezione 11. Gli schemi comuni includono l'autenticazione Basic [RFC7617] e Digest [RFC7616].

  • Token bearer: Utilizzo di token (come token OAuth 2.0) nel campo di intestazione Authorization con lo schema Bearer.

  • Cookie: Utilizzo di cookie [COOKIES] per mantenere sessioni autenticate.

  • Certificati client TLS: Utilizzo di certificati a livello TLS per autenticare i client.

  • Meccanismi specifici dell'applicazione: Meccanismi di autenticazione personalizzati definiti dall'applicazione.

Le applicazioni DOVREBBERO utilizzare meccanismi di autenticazione esistenti e ben compresi ove possibile piuttosto che definirne di nuovi. Quando viene utilizzata l'autenticazione:

  • Le applicazioni DEVONO utilizzare TLS per proteggere le credenziali di autenticazione durante il transito.

  • Le applicazioni DOVREBBERO utilizzare codici di stato HTTP appropriati (in particolare 401 Unauthorized e 403 Forbidden) per indicare errori di autenticazione.

  • Le applicazioni DOVREBBERO fornire messaggi di errore chiari quando l'autenticazione fallisce, ma NON DEVONO divulgare informazioni sensibili (come l'esistenza di un nome utente).

  • Le applicazioni DOVREBBERO considerare la durata e il rinnovo delle credenziali di autenticazione.

  • Le applicazioni DOVREBBERO specificare come lo stato di autenticazione viene mantenuto tra le richieste (ad esempio, utilizzando cookie o richiedendo il campo di intestazione Authorization su ogni richiesta).

Le applicazioni DOVREBBERO essere consapevoli che l'autenticazione è diversa dall'autorizzazione. L'autenticazione stabilisce l'identità del client, mentre l'autorizzazione determina cosa quel client è autorizzato a fare.