¿Cómo definir la autenticación HTTP básica usando cURL correctamente?
authorization basic-authentication (2)
Al usar OAuth u otros servicios de autenticación, a menudo también puede enviar su token de acceso en una cadena de consulta en lugar de en un encabezado de autorización, por lo que puede decir algo como:
GET https://www.example.com/v1/users/1?access_token=abcdefghijklmnopqrstuvwxyz1234567890ABCD
Estoy aprendiendo Apigility ( Apigility docu -> REST Service Tutorial ) e intento enviar una solicitud POST con autenticación básica a través de cURL:
$ curl -X POST -i -H "Content-Type: application/hal+json" -H "Authorization: Basic YXBpdXNlcjphcGlwd2Q=" http://apigilityhw.sandbox.loc/status
YXBpdXNlcjphcGlwd2Q=
es la cadena codificada en la base 64 con mis credenciales apiuser:apipwd
. Las credenciales se guardan en /data/htpasswd
( apiuser:$apr1$3J4cyqEw$WKga3rQMkxvnevMuBaekg/
).
Se ve así:
HTTP/1.1 401 Unauthorized
Server: nginx/1.4.7
Date: Mon, 22 Sep 2014 07:48:47 GMT
Content-Type: application/problem+json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.5.12-1~dotdeb.1
WWW-Authenticate: Basic realm="api"
¿Dónde está el error aquí? ¿Cómo hacer que funcione?
curl -u username:password http://
curl -u username http://
Desde la página de documentación:
-u, --user <usuario: contraseña>
Especifique el nombre de usuario y la contraseña para usar para la autenticación del servidor. Anula -n, --netrc y --netrc-optional.
Si simplemente especifica el nombre de usuario, Curl solicitará una contraseña.
El nombre de usuario y las contraseñas se dividen en los primeros dos puntos, lo que hace que sea imposible usar dos puntos en el nombre de usuario con esta opción. La contraseña puede, aún.
Al usar Kerberos V5 con un servidor basado en Windows, debe incluir el nombre de dominio de Windows en el nombre de usuario, para que el servidor obtenga con éxito un Ticket de Kerberos. Si no lo hace, el protocolo de autenticación inicial puede fallar.
Al usar NTLM, el nombre de usuario se puede especificar simplemente como el nombre de usuario, sin el dominio, si hay un solo dominio y bosque en su configuración, por ejemplo.
Para especificar el nombre de dominio use los nombres de Nombre de inicio de sesión descendente o UPN (Nombre principal del usuario). Por ejemplo, EJEMPLO / usuario y [email protected] respectivamente.
Si usa un binario curl compatible con SSPI de Windows y realiza Kerberos V5, Negociar, NTLM o Autenticación implícita, puede indicar a curl que seleccione el nombre de usuario y la contraseña de su entorno especificando un solo punto con esta opción: "-u:" .
Si esta opción se usa varias veces, se usará la última.
http://curl.haxx.se/docs/manpage.html#-u
Tenga en cuenta que no necesita --basic
ya que es el predeterminado.