Autenticación de API web básica vs portadora

89

He creado autenticación basada en JWT en mi aplicación Web API. No puedo averiguar la diferencia entre

  1. Token básico
  2. Token de portador

¿Alguien puede ayudarme?

SharmaPattar
fuente

Respuestas:

117

Los esquemas de autenticación básica y implícita están dedicados a la autenticación mediante un nombre de usuario y un secreto (consulte RFC7616 y RFC7617 ).

El esquema de autenticación de portador está dedicado a la autenticación mediante un token y se describe en el RFC6750 . Incluso si este esquema proviene de una especificación OAuth2, aún puede usarlo en cualquier otro contexto donde los tokens se intercambien entre un cliente y un servidor.

Con respecto a la autenticación JWT y como es un token, la mejor opción es el esquema de autenticación de portador. Sin embargo, nada le impide utilizar un esquema personalizado que se ajuste a sus necesidades.

Florent Morselli
fuente
35

La autenticación básica transmite las credenciales como pares de ID de usuario / contraseña, codificados en base64. El cliente envía solicitudes HTTP con elAuthorizationencabezado que contiene la palabraBasicpalabra seguida de un espacio y unabase64-encodedcadena de nombre de usuario: contraseña.

Autorización: Basic ZGVtbzpwQDU1dzByZA ==

ingrese la descripción de la imagen aquí Nota: Para la autenticación básica, como el ID de usuario y la contraseña se pasan a través de la red como texto sin cifrar (está codificado en base64, pero base64 es una codificación reversible), el esquema de autenticación básico no es seguro. HTTPS / TLS debe usarse junto con la autenticación básica.


La autenticación de portador (también llamada autenticación de token ) tiene tokens de seguridad llamados tokens de portador. El nombre "Autenticación de portador" puede entenderse como " dar acceso al portador de este token ". El token de portador es una cadena críptica, generalmente generada por el servidor en respuesta a una solicitud de inicio de sesión. El cliente debe enviar este token en el encabezado de Autorización al realizar solicitudes a recursos protegidos:

Autorización: Portador <token>

ingrese la descripción de la imagen aquí

Nota: De manera similar a la autenticación básica, la autenticación de portador solo debe usarse sobre HTTPS (SSL) .

Para más información link1 , link2

fgul
fuente
por lo que ambos son autorización y no realmente autorización. En el primero, envía una cadena codificada en base64 y se autoriza, mientras que en el segundo obtiene un token y lo usa para acceder a los recursos
tormenta
¿Cuál es la ventaja de pasar el token sobre el nombre de usuario / contraseña?
Muhammad Umer
@MuhammadUmer puede revocar los tokens y también otorgarles acceso granular (es decir, solo acceso de lectura).
Mihai
Encontré la respuesta y fue que no tiene que hacer una lectura de base de datos con token, puede usar criptografía para validar el token, lo mejor para microservicios que no tienen un estado de sesión compartido, aunque hay un equilibrador de carga que puede arreglar un usuario para un servicio, pero sigue funcionando.
Muhammad Umer