Quand un serveur autorise l'accès via une authentification HTTP de base, quelle expérience attend-on du navigateur?
Je fais généralement cela avec curl:
curl -u myusername:mypassword http://somesite.com
Et ça marche très bien. Cependant, pour le moment, je n'ai pas accès à curl (longue histoire) et je souhaite le faire depuis le navigateur Web, si possible.
Je pensais que la manière dont l'authentification de base était censée fonctionner était la suivante: je tape l'URL que je veux, le serveur décide alors que je ne suis pas autorisé, retourne le code de réponse 401 et je tape mon nom d'utilisateur et mon mot de passe dans une invite. Si c'est correct, la page se charge!
Cependant, sur somesite.com, je ne reçois pas d’autorisation d’autorisation, mais juste une page qui dit que je ne suis pas autorisé. Certains sites n’ont-ils pas implémenté correctement le flux de travail de l’authentification de base ou dois-je faire autre chose?
Pour aider tout le monde à éviter la confusion, je reformulerai la question en deux parties.
Premièrement: "Comment faire une requête HTTP authentifiée avec un navigateur, en utilisant l’authentification BASIC?" .
Dans le navigateur, vous pouvez commencer par effectuer une authentification de base http en attendant l'invite ou en modifiant l'URL si vous suivez le format suivant: http://myusername:[email protected]
NB: la commande curl mentionnée dans la question convient parfaitement, si vous avez une ligne de commande et que curl est installé. ;)
Références:
Toujours selon la page de manuel 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 deuxième et vraie question est "Cependant, sur somesite.com, je ne reçois pas d’autorisation d’autorisation, mais juste une page qui dit que je ne suis pas autorisé. Le flux de travail d’authentification de base est correct correctement ou y at-il autre chose à faire? "
La documentation de Curl indique que l’option -u
prend en charge de nombreuses méthodes d’authentification, Basic étant la valeur par défaut.
As-tu essayé ?
curl somesite.com --user username:password
Vous avez peut-être un ancien nom d'utilisateur/mot de passe invalide mis en cache dans votre navigateur. Essayez de les effacer et vérifiez à nouveau.
Si vous utilisez IE et que somesite.com se trouve dans votre zone de sécurité Intranet, IE envoie peut-être automatiquement vos informations d'identification Windows.
Vous pouvez également l'obtenir si le serveur envoie un code de réponse 401 mais ne définit pas correctement l'en-tête WWW-Authenticate - je devrais le savoir, je viens de corriger cela dans son propre code car VB applications n'étaient pas disponibles. faire apparaître l'invite d'authentification.
S'il n'y a pas d'informations d'identification fournies dans les en-têtes de requête, voici la réponse minimale requise pour IE to Demander à l'utilisateur des informations d'identification et resoumettre la demande.
Response.Clear();
Response.StatusCode = (Int32)HttpStatusCode.Unauthorized;
Response.AddHeader("WWW-Authenticate", "Basic");
Vous pouvez utiliser Postman, un plugin pour chrome. Il donne la possibilité de choisir le type d'authentification dont vous avez besoin pour chacune des demandes. Dans ce menu, vous pouvez configurer l'utilisateur et le mot de passe. Postman traduira automatiquement la configuration en un en-tête d’authentification qui sera envoyé avec votre demande.