Autenticazione API Web Basic vs Bearer


93

Ho creato l'autenticazione basata su JWT nella mia applicazione API Web. Non sono in grado di capire la differenza tra

  1. Token di base
  2. Token al portatore

Qualcuno può aiutarmi?

Risposte:


119

Gli schemi di autenticazione Basic e Digest sono dedicati all'autenticazione utilizzando un nome utente e un segreto (vedere RFC7616 e RFC7617 ).

Lo schema di autenticazione Bearer è dedicato all'autenticazione tramite token ed è descritto dall'RFC6750 . Anche se questo schema proviene da una specifica OAuth2, puoi comunque utilizzarlo in qualsiasi altro contesto in cui i token vengono scambiati tra un client e un server.

Per quanto riguarda l'autenticazione JWT e poiché è un token, la scelta migliore è lo schema di autenticazione Bearer. Tuttavia, nulla ti impedisce di utilizzare uno schema personalizzato che potrebbe adattarsi alle tue esigenze.


41

L'autenticazione di base trasmette le credenziali come coppie ID utente / password, codificate utilizzando base64. Il client invia richieste HTTP con l'Authorizationintestazione che contiene la parolaBasicparola seguita da uno spazio e unabase64-encodedstringa nomeutente: password.

Autorizzazione: Basic ZGVtbzpwQDU1dzByZA ==

inserisci qui la descrizione dell'immagine Nota: per l'autenticazione di base, poiché l'ID utente e la password vengono trasmessi in rete come testo non crittografato (è codificato in base64, ma base64 è una codifica reversibile), lo schema di autenticazione di base non è sicuro. HTTPS / TLS deve essere utilizzato insieme all'autenticazione di base.


L'autenticazione del portatore (chiamata anche autenticazione del token ) ha token di sicurezza chiamati token del portatore. Il nome "Autenticazione al portatore" può essere inteso come "dai accesso al portatore di questo token ". Il token portante è una stringa criptica, generalmente generata dal server in risposta a una richiesta di accesso. Il client deve inviare questo token nell'intestazione di autorizzazione quando effettua richieste a risorse protette:

Autorizzazione: portatore <token>

inserisci qui la descrizione dell'immagine

Nota: analogamente all'autenticazione di base, l'autenticazione al portatore deve essere utilizzata solo su HTTPS (SSL) .

Per ulteriori informazioni link1 , link2


quindi entrambi questi sono autorizzazione e non realmente autorizzazione. Nel primo si invia una stringa codificata in base64 e si ottiene l'autorizzazione, mentre nel secondo si ottiene un token e lo si utilizza per accedere alla risorsa
tempesta cerebrale

qual è il vantaggio di passare il token su nome utente / password?
Muhammad Umer

@MuhammadUmer puoi revocare i token e anche concedere loro un accesso granulare (cioè solo accesso in lettura).
Mihai

Ho trovato la risposta ed è stato che non è necessario eseguire la lettura del database con il token, è possibile utilizzare la crittografia per convalidare il token, meglio per i microservizi che non hanno uno stato di sessione condiviso, sebbene ci siano bilanciatori del carico che possono risolvere un utente a un servizio, ma è comunque performante.
Muhammad Umer
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.