407 Proxy Authentication Required
Penggunaan
Ketika error 407 Proxy Authentication Required diterima, klien memahami bahwa kredensial login yang valid diperlukan sebelum mengakses sumber daya yang diminta melalui proxy. Ini serupa dengan respons 401 Unauthorized, dan klien menggunakan protokol autentikasi yang sama.
Header Proxy-Authenticate dikembalikan oleh server untuk menunjukkan metode yang diizinkan.
Dampak SEO
Mesin pencari seperti Google tidak mengindeks URL yang mengembalikan status 407 Proxy Authentication Required. URL yang sebelumnya terindeks namun kini mengembalikan kode status ini akan dihapus dari hasil pencarian.
Contoh
Klien meminta sebuah sumber daya dan server merespons dengan 407 Proxy Authentication Required untuk menunjukkan bahwa sumber daya tersebut dilindungi di balik proxy. Server menyatakan dukungan untuk otorisasi basic. Klien merespons dengan pasangan username:password menggunakan protokol autentikasi basic, yang dicantumkan pada header Proxy-Authorization. Server kemudian mengirimkan sumber daya yang diminta.
Request awal
GET /documents/tech-news HTTP/1.1
Host: example.com
Respons awal
HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="Documents"
Request berikutnya
GET /documents/tech-news HTTP/1.1
Host: example.com
Proxy-Authorization: Basic RXhhbXBsZTphaQ==
Respons akhir
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 25000
<PDF document included in message body>
Cara memperbaiki
407 Proxy Authentication Required berarti server proxy memerlukan kredensial yang valid sebelum meneruskan request.
Periksa header Proxy-Authenticate pada respons. Header ini menentukan skema autentikasi yang dibutuhkan (Basic, Digest, NTLM, Negotiate). Sesuaikan konfigurasi klien dengan metode yang diharapkan. Inspeksi header tersebut dengan DevTools browser atau curl -v melalui proxy.
Konfigurasikan kredensial proxy di klien. Setel nama pengguna dan kata sandi proxy pada pengaturan proxy browser, konfigurasi aplikasi, atau variabel lingkungan. Untuk perkakas baris perintah, sematkan kredensial di dalam URL proxy:
export HTTP_PROXY=http://user:pass@proxy:8080
export HTTPS_PROXY=http://user:pass@proxy:8080
Sertakan kredensial pada header Proxy-Authorization untuk klien HTTP programatik.
Verifikasi nama pengguna dan kata sandi proxy. Pasangan kredensial yang salah atau kedaluwarsa memicu error ini. Konfirmasikan nilainya dengan administrator jaringan. Proxy NTLM dan Kerberos memerlukan kredensial yang tergabung dalam domain. Pastikan prefiks domain (misalnya, DOMAIN\username) disertakan.
Periksa adanya intersepsi proxy transparan. Sebagian jaringan perusahaan merutekan seluruh lalu lintas melalui proxy transparan tanpa konfigurasi klien secara eksplisit. Koneksi VPN atau perubahan kebijakan jaringan dapat memunculkan autentikasi proxy yang sebelumnya tidak ada. Periksa pengaturan proxy sistem (Windows: Internet Options, macOS: System Settings > Network > Proxies, Linux: /etc/environment atau pengaturan proxy desktop).
Bersihkan kredensial proxy yang di-cache. Browser dan sistem operasi menyimpan token autentikasi proxy di cache. Kredensial cache yang usang menyebabkan respons 407 berulang setelah penggantian kata sandi. Bersihkan cache kredensial (Credential Manager pada Windows, Keychain Access pada macOS).
Verifikasi bahwa proxy mengizinkan domain tujuan. Sebagian server proxy membatasi akses hanya pada domain atau kategori URL yang disetujui. Proxy mengembalikan 407 untuk memaksa autentikasi ulang bahkan ketika kredensial valid, apabila tujuan diblokir oleh kebijakan. Periksa daftar izin proxy bersama administrator jaringan.
Hubungi administrator jaringan untuk memperoleh akses proxy. Proxy perusahaan atau institusi memerlukan penyediaan akun. Mintalah kredensial akses, konfirmasikan alamat dan porta proxy, serta verifikasi skema autentikasi yang digunakan.
Referensi kode
.NET
HttpStatusCode.ProxyAuthenticationRequired
Rust
http::StatusCode::PROXY_AUTHENTICATION_REQUIRED
Rails
:proxy_authentication_required
Go
http.StatusProxyAuthRequired
Symfony
Response::HTTP_PROXY_AUTHENTICATION_REQUIRED
Python3.5+
http.HTTPStatus.PROXY_AUTHENTICATION_REQUIRED
Java
java.net.HttpURLConnection.HTTP_PROXY_AUTH
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED
Angular
@angular/common/http/HttpStatusCode.ProxyAuthenticationRequired