2012-08-23 20 views
24

Estoy intentando acceder a un servicio que está detrás de la Autenticación de Windows. Pensé que podría pasar las credenciales de la misma forma que las credenciales de Autenticación Básica HTTP, pero no está funcionando. Cuando hago lo siguiente, aparece un error 401 y estoy absolutamente seguro de que la contraseña es correcta.¿Por qué no funciona cURL con la Autenticación de Windows en IIS7?

curl --user username:password http://example.com 

¿Por qué no funciona?

Respuesta

39

Si utiliza la autenticación de Windows, es necesario utilizar NTLM:

curl --ntlm --user username:password http://example.com 
+3

Y si no pone la contraseña, la línea de comando lo solicitará. – Neal

+3

Consulte mi respuesta sobre cómo usar el usuario registrado actual para sus solicitudes –

17

También puede dejar los campos de nombre de usuario y contraseña vacía (-u :) y el rizo utilizará sus credenciales actuales en el entorno:

curl --ntlm -u : http://example.com 

Per la docs (bajo -u, --user)

Si utiliza un binario curl compatible con SSPI de Windows y realiza Kerberos V5, Negociar, NTLM o Autenticación implícita, puede indicar curl a seleccione el nombre de usuario y la contraseña de su entorno especificando un solo punto con esta opción: " -u: ".

Kerberos-Enabled Binaries

0

sólo quiero añadir que la autorización podría incluir varias redirecciones y la autenticación NTLM puede ser necesario para las segundas o posteriores solicitudes, pero no el primero. En este caso, las respuestas aquí no funcionarán.

El problema es que CURL envía las credenciales con la primera solicitud de , solo, mientras que las puede necesitar para la segunda, por ejemplo. Para pasar credenciales con todas las solicitudes, use la opción --location-trusted.

De la documentación CURL (-L option):

Cuando se utiliza la autenticación, rizo sólo envía sus credenciales para el host inicial. Si una redirección lleva curl a un host diferente, no podrá interceptar el usuario + contraseña. Ver también --location-trusted sobre cómo cambiar esto.

Esta nota importante me ayudó a autorizar en el sitio web de mi compañía. Espero que ayude a alguien más.

Cuestiones relacionadas