Autenticación básica HTTP: ¿cuál es la experiencia esperada del navegador web?

Resuelto bpapa asked hace 14 años • 7 respuestas

Cuando un servidor permite el acceso mediante autenticación HTTP básica, ¿cuál se espera que sea la experiencia en un navegador web ?

Ignorando el navegador web por un momento, aquí se explica cómo crear una solicitud de autenticación básica con curl:

curl -u myusername:mypassword http://somesite.example

Pero ¿qué pasa en un navegador web? Lo que he visto en algunos sitios web es que visito la URL y luego el servidor devuelve el código de respuesta 401. Luego, el navegador muestra un mensaje de nombre de usuario/contraseña.

Sin embargo, en somesite.example, no aparece ningún mensaje de autorización, solo una página que dice que no estoy autorizado. ¿Algún sitio no implementó correctamente el flujo de trabajo de autenticación básica o hay algo más que debo hacer?

bpapa avatar Jan 12 '10 02:01 bpapa
Aceptado

Para ayudar a todos a evitar confusiones, reformularé la pregunta en dos partes.

Primero: "¿Cómo se puede realizar una solicitud HTTP autenticada con un navegador utilizando la autenticación BÁSICA?" .

En el navegador, primero puede realizar una autenticación básica HTTP esperando que llegue el mensaje o editando la URL si sigue este formato:http://myusername:[email protected]

NB: el comando curl mencionado en la pregunta está perfectamente bien, si tiene una línea de comandos y curl instalado. ;)

Referencias:

  • https://en.wikipedia.org/wiki/Basic_access_authentication#URL_encoding
  • https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax
  • https://www.rfc-editor.org/rfc/rfc3986#page-18

También según la página del manual de CURL https://curl.haxx.se/docs/manual.html

HTTP

  Curl also supports user and password in HTTP URLs, thus you can pick a file
  like:

      curl http://name:[email protected]/full/path/to/file

  or specify user and password separately like in

      curl -u name:passwd http://machine.domain/full/path/to/file

  HTTP offers many different methods of authentication and curl supports
  several: Basic, Digest, NTLM and Negotiate (SPNEGO). Without telling which
  method to use, curl defaults to Basic. You can also ask curl to pick the
  most secure ones out of the ones that the server accepts for the given URL,
  by using --anyauth.

  NOTE! According to the URL specification, HTTP URLs can not contain a user
  and password, so that style will not work when using curl via a proxy, even
  though curl allows it at other times. When using a proxy, you _must_ use
  the -u style for user and password.

La segunda y verdadera pregunta es "Sin embargo, en somesite.example, no recibo ningún mensaje de autorización, solo una página que dice que no estoy autorizado. ¿Algún sitio no implementó correctamente el flujo de trabajo de autenticación básica o hay algo más que necesito?" ¿hacer?"

La documentación de curl dice que la -uopción admite muchos métodos de autenticación, siendo Básico el predeterminado.

Nicocube avatar Oct 24 '2013 13:10 Nicocube

¿Has probado?

curl somesite.example --user username:password
daronwolff avatar Dec 18 '2015 16:12 daronwolff