Para ajudar todos a evitar confusões, vou reformular a questão em duas partes.
Primeiro: "como fazer uma solicitação HTTP autenticada com um navegador usando a autenticação BASIC?".
No navegador, você pode fazer uma autenticação básica http primeiro, aguardando o prompt chegar ou editando o URL se você seguir este formato: http://myusername:mypassword@somesite.com
Nota: o comando curl mencionado na pergunta é perfeitamente adequado, se você tiver uma linha de comando e um curl instalados. ;)
Referências:
Também de acordo com a página do manual 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:passwd@machine.domain/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.
A segunda e verdadeira pergunta é "No entanto, no somesite.com, não estou recebendo nenhum aviso de autorização, apenas uma página que diz que não estou autorizado. Algum site não implementou o fluxo de trabalho de autenticação básica corretamente ou há algo mais eu preciso fazer? "
A documentação do curl diz que a -u
opção suporta muitos métodos de autenticação, sendo o básico o padrão.