407 cere autentificare la proxy. 401 cere autentificare pentru resursa țintă. O cerere poate întâlni ambele răspunsuri, așa că află cine le solicită înainte să dai o parolă.

Compară starea și antetele de solicitare a autentificării

RăspunsAntetul solicitării de autentificareAntetul datelor de accesPartea implicată
407 Proxy Authentication RequiredProxy-AuthenticateProxy-AuthorizationUn proxy intermediar
401 UnauthorizedWWW-AuthenticateAuthorizationFluxul de autentificare al resursei de origine

Codul de stare este un prim indiciu esențial, dar verifică întregul schimb. O pagină cu numărul 407 în text nu echivalează cu un răspuns HTTP 407 real. La fel, o pagină de conectare personalizată poate returna 200 și totuși cere autentificare la nivelul aplicației.

De ce HTTPS poate eșua cu 407 înainte să ajungă la site

Când un proxy HTTP obișnuit transportă o cerere HTTPS, clientul îi cere de regulă mai întâi să creeze un tunel CONNECT. Proxy-ul poate cere autentificare pentru acea cerere CONNECT. Dacă nu se finalizează, sesiunea TLS cu destinația nu este încă stabilită prin tunel. Schimbarea tokenului API al site-ului probabil nu repară această etapă.

Folosește o cerere cu ieșire detaliată ca să vezi unde apare solicitarea:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

Înlocuiește interfața locală de ascultare cu a ta și citește prima solicitare din jurnal. Un 407 în timpul CONNECT apare înainte de TLS-ul destinației; un 401 ulterior poate urma după un tunel stabilit cu succes.

Oferă datele proxy-ului prin interfața dedicată proxy-ului

Pentru un endpoint și un cont de la un administrator de încredere, curl poate negocia schema de autentificare a proxy-ului și poate cere parola lipsă:

curl --proxy http://proxy.example:8080 --proxy-anyauth --proxy-user alice https://example.com/

Înlocuiește endpointul și utilizatorul din exemplu cu datele serviciului pe care ai voie să îl folosești. Doar numele de utilizator evită includerea parolei direct în comanda de mai sus. Metodele acceptate pot varia după compilarea curl și proxy; dacă negocierea eșuează, verifică solicitarea efectivă și capacitățile compilării.

Opțiunea de autentificare a proxy-ului este separată de cea pentru utilizatorul de la origine în curl. Nu adăuga un antet Authorization pentru origine ca înlocuitor pentru răspunsul la solicitarea proxy-ului. Nu redirecționa manual antetele cu datele proxy-ului către cereri fără legătură și nu le salva în antete reutilizate de întreaga aplicație.

Dacă proxy-ul continuă să returneze 407

  • Confirmă că folosești gazda și portul proxy-ului dorit.
  • Verifică schemele anunțate de proxy în loc să presupui Basic.
  • Confirmă starea contului și eventualul format de utilizator cerut de serviciu.
  • Verifică transmiterea caracterelor speciale dacă datele sunt încorporate în URL.
  • Stabilește dacă autentificarea de companie integrată cu browserul are nevoie de suportul mediului de execuție sau al platformei.
  • Dacă informațiile clientului nu ajung, cere administratorului un identificator de cerere ori o intrare de jurnal a serverului fără date sensibile.

403 sau un CONNECT refuzat poate fi o decizie a politicii de acces chiar după o conectare reușită. Mai multe încercări de parolă nu vor permite accesul la o destinație interzisă.

HTTPS-ul destinației nu protejează orice schimb de date ale proxy-ului

Autentificarea proxy-ului poate avea loc înainte de TLS-ul destinației. Dacă legătura cu proxy-ul însuși este necriptată și metoda expune acolo date de acces reutilizabile, destinația HTTPS nu protejează retroactiv acel schimb. Alege un transport și o autentificare potrivite serviciului; nu trimite conturi private unui proxy public necunoscut.

Verifică jurnalele detaliate înainte să le distribui. Chiar dacă instrumentul maschează câmpurile uzuale de acces, pot rămâne utilizatori, nume de endpointuri interne, cookie-uri ori alte date de identificare.

Articole similare