Kiedy serwer zezwala na dostęp za pośrednictwem podstawowego uwierzytelniania HTTP, czego oczekuje się w przeglądarce internetowej ?
Ignorując przez chwilę przeglądarkę internetową, oto jak utworzyć żądanie autoryzacji podstawowej za pomocą curl
:
curl -u myusername:mypassword http://somesite.com
A co z przeglądarką internetową? Widziałem na niektórych stronach internetowych, że odwiedzam adres URL, a następnie serwer zwraca kod odpowiedzi 401. Przeglądarka wyświetla następnie monit o podanie nazwy użytkownika / hasła.
Jednak w witrynie somesite.com w ogóle nie pojawia się monit o autoryzację, tylko strona z informacją, że nie mam autoryzacji. Czy ktoś nie poprawnie zaimplementował przepływ pracy Podstawowego uwierzytelniania lub jest coś innego, co muszę zrobić?
basic-authentication
bpapa
źródło
źródło
Odpowiedzi:
Aby pomóc wszystkim uniknąć nieporozumień, przeformułuję pytanie w dwóch częściach.
Po pierwsze: „jak wykonać uwierzytelnione żądanie HTTP za pomocą przeglądarki przy użyciu uwierzytelniania BASIC?” .
W przeglądarce możesz najpierw wykonać uwierzytelnianie podstawowe HTTP, czekając na monit, lub edytując adres URL, jeśli zastosujesz ten format:
http://myusername:[email protected]
Uwaga: polecenie curl wspomniane w pytaniu jest całkowicie w porządku, jeśli masz zainstalowany wiersz poleceń i curl. ;)
Bibliografia:
Również zgodnie ze stroną podręcznika CURL https://curl.haxx.se/docs/manual.html
Drugie i prawdziwe pytanie brzmi: „Jednak na stronie somesite.com w ogóle nie pojawia się monit o autoryzację, tylko strona z informacją, że nie mam autoryzacji. Czy ktoś nie zaimplementował poprawnie przepływu pracy Basic Auth, czy jest coś jeszcze muszę to zrobić? ”
Dokumentacja curl mówi, że
-u
opcja obsługuje wiele metod uwierzytelniania, przy czym Basic jest domyślny.źródło
Czy próbowałeś ?
źródło
Być może Twoja stara nazwa użytkownika / hasło są buforowane w przeglądarce. Spróbuj je wyczyścić i sprawdź ponownie.
Jeśli korzystasz z IE, a somesite.com znajduje się w strefie bezpieczeństwa intranetu, IE może automatycznie wysyłać poświadczenia systemu Windows.
źródło
Nagłówek uwierzytelniania WWW
Możesz to również uzyskać, jeśli serwer wysyła kod odpowiedzi 401, ale nie ustawia poprawnie nagłówka uwierzytelniania WWW - powinienem wiedzieć, właśnie to naprawiłem w swoim własnym kodzie, ponieważ aplikacje VB nie wyświetlały monitu o uwierzytelnienie.
źródło
Jeśli w nagłówkach żądania nie podano poświadczeń, poniżej podano minimalną odpowiedź wymaganą dla IE, aby poprosić użytkownika o poświadczenia i ponownie przesłać żądanie.
źródło
Możesz użyć Postmana we wtyczce do chrome. Daje to możliwość wyboru rodzaju uwierzytelnienia potrzebnego dla każdego żądania. W tym menu możesz skonfigurować użytkownika i hasło. Listonosz automatycznie przetłumaczy konfigurację na nagłówek uwierzytelnienia, który zostanie wysłany z Twoim żądaniem.
źródło