Articulo de referencia

autenticación de acceso básico

En el contexto de una transacción HTTP , la autenticación de acceso básico es un método para que un agente de usuario HTTP (por ejemplo, un navegador web ) proporcione un nombre...

En el contexto de una transacción HTTP , la autenticación de acceso básico es un método para que un agente de usuario HTTP (por ejemplo, un navegador web ) proporcione un nombre de usuario y una contraseña al realizar una solicitud. En la autenticación HTTP básica, una solicitud contiene un campo de encabezado con el formato , donde es la codificación Base64 del ID y la contraseña unidos por un solo punto y coma .Authorization: Basic <credentials><credentials>:

Fue implementado originalmente por Ari Luotonen en el CERN en 1993 [ 1 ] y definido en la especificación HTTP 1.0 en 1996. [ 2 ] Está especificado en el RFC 7617 de 2015, que deja obsoleto el RFC 2617 de 1999.  

Características

La implementación de la autenticación básica HTTP (BA) es la técnica más sencilla para aplicar controles de acceso a los recursos web porque no requiere cookies , identificadores de sesión ni páginas de inicio de sesión; en cambio, la autenticación básica HTTP utiliza campos estándar en el encabezado HTTP .

Seguridad

El mecanismo BA no proporciona protección de confidencialidad para las credenciales transmitidas. Estas simplemente se codifican con Base64 durante la transmisión y no se cifran ni se les aplica ningún tipo de hash . Por lo tanto, la autenticación básica se suele utilizar junto con HTTPS para garantizar la confidencialidad.

Dado que el campo BA debe enviarse en el encabezado de cada solicitud HTTP, el navegador web necesita almacenar en caché las credenciales durante un período de tiempo razonable para evitar solicitar constantemente al usuario su nombre de usuario y contraseña. La política de almacenamiento en caché varía entre navegadores.

HTTP no proporciona un método para que un servidor web le indique al cliente que cierre la sesión del usuario. Sin embargo, existen varios métodos para borrar las credenciales almacenadas en caché en ciertos navegadores web. Uno de ellos consiste en redirigir al usuario a una URL del mismo dominio, utilizando credenciales intencionadamente incorrectas. No obstante, este comportamiento es inconsistente entre los distintos navegadores y versiones de navegador. [ 3 ] Microsoft Internet Explorer ofrece un método JavaScript específico para borrar las credenciales almacenadas en caché: [ 4 ]

<script> document.execCommand ( ' ' ) ; </script>

En los navegadores modernos, las credenciales almacenadas en caché para la autenticación básica generalmente se borran al borrar el historial de navegación. La mayoría de los navegadores permiten a los usuarios borrar específicamente solo las credenciales, aunque la opción puede ser difícil de encontrar y, por lo general, borra las credenciales de todos los sitios visitados. [ 5 ] [ 6 ]

Los ataques de fuerza bruta para obtener credenciales no se previenen ni se detectan activamente (a menos que se utilice un mecanismo del lado del servidor).

Protocolo

Lado del servidor

Cuando el servidor quiere que el agente de usuario se autentique ante el servidor después de recibir una solicitud no autenticada, debe enviar una respuesta con una línea de estado HTTP 401 No autorizado [ 7 ] y un campo de encabezado WWW-Authenticate . [ 8 ]

El campo de encabezado WWW-Authenticate para la autenticación básica se construye de la siguiente manera:

WWW-Authenticate: Basic realm="User Visible Realm"

El servidor puede optar por incluir el parámetro charset de RFC 7617 : [ 3 ] 

WWW-Authenticate: Basic realm="User Visible Realm", charset="UTF-8"

Este parámetro indica que el servidor espera que el cliente utilice UTF-8 para codificar el nombre de usuario y la contraseña (véase más abajo).

Lado del cliente

Cuando el agente de usuario desea enviar credenciales de autenticación al servidor, puede utilizar el campo de encabezado Authorization .

El campo de encabezado de autorización se construye de la siguiente manera: [ 9 ]

  1. El nombre de usuario y la contraseña se combinan con dos puntos ( :). Esto significa que el nombre de usuario en sí no puede contener dos puntos.
  2. La cadena resultante se codifica en una secuencia de octetos. El conjunto de caracteres que se utiliza para esta codificación no se especifica por defecto, siempre que sea compatible con US-ASCII, pero el servidor puede sugerir el uso de UTF-8 enviando el parámetro charset . [ 9 ]
  3. La cadena resultante se codifica utilizando una variante de Base64 (+/ y con relleno).
  4. A continuación, se antepone a la cadena codificada el método de autorización y un espacio en blanco (por ejemplo, "Basic").

Por ejemplo, si el navegador usa Aladdin como nombre de usuario y open sesame como contraseña, entonces el valor del campo es la codificación Base64 de Aladdin:open sesame , o QWxhZGRpbjpvcGVuIHNlc2FtZQ== . Entonces el campo de encabezado de autorización aparecerá como:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

'Básico ' + base64 . b64encode ( f " { < clientid > } : { < client secret key > } " . encode ()) . decode ()

Véase también

Referencias y notas

  1. Luotonen, Ari (10 de septiembre de 2022). "Anuncio de la documentación de autorización de acceso" . www-talk@w3.org (Lista de correo) . Consultado el 7 de febrero de 2022 .
  2. "Protocolo de transferencia de hipertexto -- HTTP/1.0" . www.w3.org . W3C. 19 de febrero de 1996. Consultado el 7 de febrero de 2022 .
  3. 1 2 "¿Existe algún navegador equivalente a ClearAuthenticationCache de IE?" . StackOverflow . Consultado el 15 de marzo de 2013 .
  4. " identificador de comando" . Microsoft . Consultado el 15 de marzo de 2013 .IDM_CLEARAUTHENTICATIONCACHE
  5. "540516 - Usabilidad: Permitir a los usuarios borrar los detalles de autenticación básica HTTP ('Cerrar sesión')" . bugzilla.mozilla.org . Consultado el 6 de agosto de 2020. Borrar historial reciente -> Inicios de sesión activos (en los detalles) se utiliza para borrar la autenticación.
  6. "Borrar datos de navegación - Ordenador - Ayuda de Google Chrome" . support.google.com . Consultado el 6 de agosto de 2020. Datos que se pueden eliminar[...]Contraseñas: Se eliminan los registros de las contraseñas que guardaste.
  7. Autenticación de acceso . Grupo de trabajo de ingeniería de Internet . Mayo de 1996. pág. 46. sec. 11. doi : 10.17487/RFC1945 . RFC 1945. Recuperado el 3 de febrero de 2017 .   
  8. Fielding, Roy T. ; Berners-Lee, Tim ; Henrik, Frystyk. Protocolo de transferencia de hipertexto -- HTTP/1.0 . Grupo de trabajo de ingeniería de Internet. sec. 10.16. doi : 10.17487/RFC1945 . RFC 1945 . 
  9. 1 2 Reschke, Julian. El esquema de autenticación HTTP 'básico' . Grupo de trabajo de ingeniería de Internet. sec. 2.1. doi : 10.17487/RFC7617 . RFC 7617 . 
Obtenido de " https://en.wikipedia.org/w/index.php?title=Basic_access_authentication&oldid=1330539887 "