¿Por qué se requiere ' Bearer ' antes del token en ' Autorización ' encabezado en una solicitud HTTP?

¿Cuál es exactamente la diferencia entre los siguientes dos encabezados?

Authorization : Bearer cn389ncoiwuencr vs Authorization : cn389ncoiwuencr 

Todas las fuentes que he revisado, establece el valor del encabezado «Autorización» como «Portador» seguido del token real. Sin embargo, no he podido comprender su significado. ¿Qué pasa si simplemente coloco el token en el encabezado de Autorización?

Comentarios

  • Existen otros métodos de autenticación http, como básico o resumen . Supongo que ' es bueno poder distinguirlos.
  • La pregunta es específicamente sobre la autenticación basada en tokens, que generalmente se realiza después de la autenticación básica para que el usuario no ' no tengo que proporcionar el nombre de usuario y la contraseña con cada solicitud.
  • También tenía una pregunta similar. Quería elegir un esquema para una implementación de token de corta duración, que no es totalmente compatible con Oauth 2.0. Me preguntaba si podría usar Bearer o cualquier valor no estándar sin tener problemas con la interpretación de los servidores proxy ' y los servidores '. Lo más cerca que estuve de encontrar una respuesta fue: stackoverflow.com/questions/7802116/… y stackoverflow.com/questions/8463809/…
  • ¿Los servidores generalmente devuelven un token por la misma ruta? es decir, " Autorización: ¿Portador " de la respuesta HTTP? ¿O es casi siempre parte del cuerpo de la respuesta?
  • Esta página de autenticación HTTP en MDN es muy útil para la discusión.

Respuesta

El patrón Authorization: <type> <credentials> fue introducido por el W3C en HTTP 1.0 , y se ha reutilizado en muchos lugares desde entonces. Muchos servidores web admiten varios métodos de autorización. En esos casos, enviar solo el token no es suficiente.

Los sitios que usan el formato

Authorization : Bearer cn389ncoiwuencr 

probablemente estén implementando OAuth 2.0 tokens de portador . El marco de autorización de OAuth 2.0 establece una serie de otros requisitos para mantener la autorización segura, por ejemplo, requiriendo el uso de HTTPS / TLS.

Si se está integrando con un servicio que usa OAuth 2.0, es una buena idea familiarizarse con el marco para que el flujo que está usando sea implementado correctamente y evitando vulnerabilidades innecesarias. Hay una serie de buenos tutoriales disponibles en línea.

Comentarios

  • I ' No estoy familiarizado con la API de MS Graph, podría ser una peculiaridad de su implementación.
  • Eso es lo que estaba pensando. Dado su conocimiento de Bearer Tokens y tokens en general, ¿puede ver alguna seguridad implicaciones por el hecho de que la API acepta el token wi ¿Cuál es la palabra clave Bearer?
  • No realmente, pero estoy de acuerdo con un comentario en esa pregunta: si su implementación difiere en este punto, ¿qué más es diferente? Dicho esto, hay una serie de implementaciones similares a OAuth que se desvían de las RFC. Sin embargo, no significa automáticamente que sus implementaciones sean menos seguras.

Responder

Mucho antes de la autorización del portador, este encabezado se usó para autenticación básica . Para la interoperabilidad, el uso de estos encabezados se rige por las normas del W3C, por lo que incluso si estás leyendo y escribiendo el encabezado, debes seguirlos. El portador distingue el tipo de autorización que estás usando, por lo que es importante.

Respuesta

Se establece un token de portador en el encabezado de autorización de cada solicitud HTTP de acción en línea y el propio portador determina el tipo de autenticación.

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

Comentarios

  • Esta respuesta es específica para los desarrolladores de Gmail, no para todos los desarrolladores web. Una ' action ' es una concepto de gmail.
  • Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *