Perché ' Bearer ' è richiesto prima del token in ' Autorizzazione ' in una richiesta HTTP?

Qual è esattamente la differenza tra le seguenti due intestazioni:

Authorization : Bearer cn389ncoiwuencr vs Authorization : cn389ncoiwuencr 

Tutte le fonti che ho esaminato, imposta il valore dellintestazione “Autorizzazione” come “Portatore” seguito dal token effettivo. Tuttavia, non sono stato in grado di comprenderne il significato. E se inserissi semplicemente il token nellintestazione di autorizzazione?

Commenti

  • Esistono altri metodi di autenticazione http, come basic o digest . Suppongo che ' sia carino essere in grado di distinguerli.
  • La domanda riguarda specificamente lautenticazione basata su token, che di solito viene eseguita dopo lautenticazione di base in modo che lutente ' non è necessario fornire il nome utente e la password con ogni richiesta.
  • Anche io avevo una domanda simile. Volevo scegliere uno schema per unimplementazione di token di breve durata, che non fosse completamente conforme a Oauth 2.0. Mi chiedevo se potevo usare Bearer o qualsiasi valore non standard senza avere problemi con linterpretazione dei proxy ' e dei server '. Il modo più vicino a cui sono riuscito a trovare una risposta è stato: stackoverflow.com/questions/7802116/… e stackoverflow.com/questions/8463809/…
  • I server generalmente restituiscono un token tramite lo stesso percorso cioè " Autorizzazione: portatore " della risposta HTTP? O fa quasi sempre parte del corpo della risposta?
  • Questa pagina di autenticazione HTTP su MDN è molto utile per la discussione.

Risposta

Il modello Authorization: <type> <credentials> è stato introdotto dal W3C in HTTP 1.0 e da allora è stato riutilizzato in molti posti. Molti server Web supportano più metodi di autorizzazione. In questi casi, linvio del solo token non è sufficiente.

I siti che utilizzano il formato

Authorization : Bearer cn389ncoiwuencr 

molto probabilmente implementano OAuth 2.0 token bearer . Il framework di autorizzazione OAuth 2.0 stabilisce una serie di altri requisiti per mantenere sicura lautorizzazione, ad esempio richiedendo luso di HTTPS / TLS.

Se ti stai integrando con un servizio che utilizza OAuth 2.0, è una buona idea acquisire familiarità con il framework in modo che il flusso che stai utilizzando sia implementato correttamente ed evitando inutili vulnerabilità. Ci sono una serie di validi tutorial disponibili online.

Commenti

  • I ' Non ho familiarità con lAPI di MS Graph, potrebbe essere un capriccio della loro implementazione.
  • Questo è quello che stavo pensando. Data la tua conoscenza di Bearer Tokens e token in generale, puoi vedere qualche sicurezza implicazioni per il fatto che lAPI accetta il token wi la parola chiave Bearer?
  • Non proprio, ma sono daccordo con un commento in questa domanda: se la loro implementazione differisce su questo punto, cosaltro cè? Detto questo, ci sono un certo numero di implementazioni simili a OAuth che si discostano dagli RFC. Tuttavia, non significa automaticamente che le loro implementazioni siano meno sicure.

Risposta

Molto prima dellautorizzazione al portatore, questa intestazione è stata utilizzata per autenticazione di base . Per linteroperabilità, luso di queste intestazioni è regolato dalle norme W3C, quindi anche se stai leggendo e scrivendo lintestazione, dovresti seguirle. Bearer distingue il tipo di autorizzazione che stai utilizzando, quindi è importante.

Answer

Un Bearer Token è impostato nellintestazione di autorizzazione di ogni richiesta HTTP di azione inline e Bearer stesso determina il tipo di autenticazione.

Ref https://developers.google.com/gmail/markup/actions/verifying-bearer-tokens

Commenti

  • Questa risposta è specifica per gli sviluppatori Gmail, non per tutti gli sviluppatori Web. Un ' azione ' è un concetto di Gmail.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *