Junior
¿Qué es la autenticación básica (Basic Auth)?
sobes.tech AI
Respuesta de la IA
La autenticación básica es la forma más sencilla de autenticar a un cliente HTTP, definida en el estándar RFC 7617.
Principio de funcionamiento:
- El cliente envía una solicitud HTTP a un recurso protegido.
- El servidor responde con un estado
401 Unauthorizedy un encabezadoWWW-Authenticate: Basic realm="<realm>", donde<realm>es una descripción textual del área protegida (recurso). - El navegador o la aplicación cliente muestra un cuadro de diálogo para ingresar el nombre de usuario y la contraseña.
- El cliente codifica el nombre de usuario y la contraseña en una cadena en formato
username:password. - La cadena resultante se codifica usando Base64.
- El cliente repite la solicitud, agregando el encabezado
Authorization: Basic <cadena_base64_codificada>, donde<cadena_base64_codificada>es el resultado de la codificación Base64. - El servidor decodifica la cadena Base64, separa el nombre de usuario y la contraseña y verifica las credenciales.
- Si las credenciales son correctas, el servidor envía el recurso solicitado. De lo contrario, vuelve a responder con
401 Unauthorized.
Ejemplo de encabezado Authorization:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
donde YWxhZGRpbjpvcGVuc2VzYW1l es una cadena codificada en Base64 de aladdin:opensesame.
Características:
- Simplicidad: Fácil de implementar tanto en el cliente como en el servidor.
- Inseguridad: Las credenciales se transmiten, aunque en Base64, pero sin cifrar. Base64 es codificación, no cifrado. Al interceptar el tráfico, los datos se pueden decodificar fácilmente. Solo en combinación con HTTPS proporciona un nivel mínimo de seguridad.
- Estado: No mantiene estado en el servidor entre solicitudes (sin estado). Cada solicitud requiere el encabezado
Authorization. - Experiencia del usuario: La ventana de diálogo del navegador es menos flexible y amigable en comparación con formularios de autenticación personalizados.
Uso: Se emplea principalmente para proteger API, recursos estáticos o en sistemas internos simples donde la seguridad no es crítica, o siempre en combinación con SSL/TLS (HTTPS).