Curl Basic Auth - ¿Cómo funciona?

25 de agosto de 2022

Introducción

Los servidores que utilizan autenticación HTTP envían una respuesta 401 no autorizada si un cliente intenta acceder a un recurso protegido. La respuesta incluye una o más WWW-Autenticación encabezados que indican qué métodos de autenticación acepta el servidor para ese recurso. 

La autenticación básica (Basic Auth) no es completamente segura, pero es una forma rápida y conveniente de implementar el control de acceso para recursos web no críticos.  

Descubre cómo usar el rizo utilidad de línea de comandos para agilizar las solicitudes de autenticación básica. 

¿Cómo funciona la autenticación básica curl?

¿Qué es la autenticación básica? 

La autenticación básica es un método de autenticación HTTP en el que el servidor declara que el cliente debe enviar un nombre de usuario y una contraseña para acceder a un recurso. El servidor valida las credenciales proporcionadas contra una base de datos de usuarios autorizados y sirve los recursos. 

La autenticación básica incluye los siguientes pasos: 

  1. Un cliente web, por ejemplo, un navegador, solicita acceso a un recurso protegido.
  2. El servidor web devuelve un desafío, generalmente un cuadro de diálogo que solicita al cliente web que proporcione credenciales válidas. 
  3. El cliente envía el nombre de usuario y la contraseña. 
  4. El servidor autentica al usuario y devuelve el recurso solicitado. 
Representación visual del modelo de autenticación básico HTTP.

El cliente envía credenciales de autenticación en el Autorización campo de encabezado. El campo de encabezado está estructurado de la siguiente manera:  

  • El nombre de usuario y la contraseña se emparejan con dos puntos (:). El nombre de usuario puede contener cualquier carácter especial excepto dos puntos. 
  • El par nombre de usuario:contraseña se codifica utilizando la codificación Base64. 
  • El método de autorización (Basic) y espacios en blanco se insertan antes de la cadena codificada. 

Por ejemplo, el nombre de usuario Mjolnir y la contraseña Valhalla se unen mediante dos puntos: 

Mjolnir:Valhalla

El valor se codifica utilizando el esquema Base64, lo que da como resultado la siguiente cadena:  

TWpvbG5pcjpWYWxoYWxsYTRldmVy  

El libro Autorización campo de encabezado aparece como: 

Autorización: Básica TWpvbG5pcjpWYWxoYWxsYTRldmVy

La autenticación básica es ideal para evitar el acceso no intencional de terceros no malintencionados, pero no es un método de autenticación integral. No autentica los servidores de destino, mientras que el texto codificado en Base64 se puede interceptar y decodificar fácilmente. Esto hace que Basic Auth sea especialmente vulnerable a Hombre en el medio y reproducir ataques. 

La autenticación básica se puede fortalecer con tecnología de encriptación, como Certificados SSL. Sin embargo, eso no significa que Basic Auth sea adecuado para proteger recursos críticos. 


Note: Autenticación de token de portador se considera un método de autenticación mucho más seguro, especialmente si se trabaja con un API y delicada información. 


Cómo utilizar la autenticación básica de curl 

La rizo La herramienta de línea de comandos se utiliza para transferir datos hacia y desde un servidor para recursos especificados como URL, como Puntos finales API. Ambos rizo y libcurl biblioteca de transferencia son parte de Open Source cURL (URL del cliente) proyecto para facilitar la transferencia de datos utilizando varios protocolos de red. 

Los casos de uso más comunes para rizo son la prueba de punto final, la recuperación de recursos, el registro de errores y la depuración. 

Los usuarios pueden comunicarse con servidores web y de aplicaciones enviando solicitudes directamente desde el terminal o incorporando rizo solicitudes en un script automatizado. 

Basic rizo la sintaxis es sencilla: 

curl [opciones/URL]

Curl tiene soporte integrado para la autenticación HTTP básica. 

Enviar credenciales con el argumento -u 

Ingrese al -u opción para enviar autenticación básica usuario Contraseña pares: 

curl -u nombre de usuario:contraseña [URL]

El nombre de usuario en este ejemplo es Mjolnir, y la contraseña Valhalla

curl -u Mjolnir: Valhalla https://someurl.com/protectedresource 

Curl codifica automáticamente el proporcionado Mjolnir:Valhalla par usando el cifrado Base64 y agrega el Autorización: Básica [token] Encabezado HTTP a la solicitud: 

Autorización: BasicTWpvbG5pcjpWYWxoYWxsYTRldmVy


Nota: Si su nombre de usuario o contraseña contiene un carácter especial (es decir, @, #, espacio en blanco), coloque las credenciales entre comillas simples. 


Encabezado de autenticación de prueba 

Puedes usar rizo para probar si un servidor requiere autenticación HTTP con el --anyauth opción. Curl automáticamente intenta realizar una solicitud no autenticada y luego intenta el método más seguro disponible si es necesario:  

curl --anyauth -u Mjolnir: Valhalla https://someurl.com/protectedresource 

Encabezado de autorización de paso 

el rizo -H 'Autorización: Básica [token] La opción ' también permite a los usuarios pasar las credenciales de autenticación básica. Los clientes pueden codificar el usuario Contraseña empareje con anticipación y colóquelo en el Autorización encabezamiento: 

rizo -H 'Autorización: Básica TWpvbG5pcjpWYWxoYWxsYTRldmVy' https://someurl.com/protectedresource 

La -H La opción pasa el encabezado de autorización a curl como un encabezado personalizado. 

Hacer curl Solicitar la contraseña 

Para hacer que curl solicite una contraseña, use el -u opción y solo pasar el nombre de usuario: 

curl -u 'nombre de usuario' [URL] 

Esta solicitud tendrá éxito si el servidor permite a los usuarios acceder a los recursos sin contraseña. De lo contrario, fallará y se le pedirá al usuario que ingrese su contraseña. 

Conclusión

Conoce cómo funciona la autenticación básica y cómo usar curl para enviar encabezados de autorización para diferentes casos de uso. 

Los recursos web que brindan información confidencial no deben usar la autenticación básica como método de autenticación. Las API de pago y otros servicios web que manejan información confidencial y de identificación personal usan tokens de portador y Autenticación OAuth para asegurar las transferencias de datos. 

Acerca del autor.
Vladímir Kaplarevic
Vladimir es un redactor técnico residente en CCBill. Tiene más de 8 años de experiencia en la implementación de comercio electrónico y soluciones de pago en línea con varios proveedores de servicios de TI globales. Su atractivo estilo de escritura proporciona consejos prácticos y tiene como objetivo despertar la curiosidad por las tecnologías innovadoras.
Hable con un especialista en asistencia comercial