Otorisasi Proxy Browser Tanpa Kepala Bukan Rute VPN
VPN merutekan browser ke proxy; itu tidak dapat menjawab 407 proxy. Periksa seleksi, tantangan, dan jalur jaringan pekerjaan yang sebenarnya secara terpisah.
VPN dapat membawa lalu lintas browser ke server proxy dan tetap membiarkan browser tidak dapat menggunakan proxy tersebut, karena rute dan kredensial adalah hal yang berbeda. Otomatisasi tanpa kepala membuat kesenjangan lebih sulit dilihat, karena tidak ada jendela dan tidak ada perintah untuk menyadarinya. Kegagalan biasanya muncul sebagai hang atau kesalahan navigasi umum, dan naluri pertama yang menyalahkan terowongan. Daftar periksa di bawah ini memisahkan empat hal yang harus benar sebelum permintaan tanpa kepala melalui proksi yang diautentikasi dapat berhasil.
Dua percakapan, dua kredensial
Dua percakapan terjadi, dan keduanya berasal dari pihak yang berbeda. Browser pertama-tama terhubung ke pendengar proksi, yang mungkin menantangnya untuk mendapatkan kredensial; proxy kemudian membuat atau mengizinkan koneksi selanjutnya ke tujuan. VPN dapat menjalankan tahap pertama tanpa menjadi titik akhir yang menantang browser, dan tidak ada hubungannya dengan tahap kedua.
HTTP 407 adalah sinyal bahwa klien harus mengautentikasi permintaan proxy, yang dilakukan di Proxy-Authenticate dengan jawaban yang diharapkan di Proxy-Authorization. Itu bukan login situs web tujuan, dan pencampuran keduanya adalah sumber kebingungan yang paling umum di sini.
Jadi empat pemeriksaannya adalah: proxy mana yang sebenarnya dipilih oleh browser, siapa yang menjawab 407, di jaringan mana proses browser berada, dan bagaimana kredensial dikirimkan tanpa manusia. Masing-masing bisa gagal secara mandiri, dan setiap kegagalan tampak serupa dari luar. Kerjakan secara berurutan, karena cek yang terlambat tidak dapat mengimbangi cek yang lebih awal. Proxy yang tidak pernah dipilih tidak dapat diautentikasi, dan kredensial yang hanya ada di laptop Anda tidak dapat mencapai container.
Periksa 1: proxy mana yang sebenarnya dipilih
Mulailah dengan seleksi, karena browser yang mengabaikan pengaturan proxy Anda tidak akan pernah mencapai tantangan sama sekali. Di Chrome, benderanya adalah --proxy-server=proxy.example:3128 , dengan --proxy-bypass-list untuk pengecualian, dan Selenium memaparkan hal yang sama melalui opsi browsernya. File PAC adalah mekanisme berbeda dengan mode kegagalannya sendiri.
Kemudian konfirmasikan dari dalam lingkungan browser yang sedang berjalan, bukan dari shell Anda. Penyelidikan independen dengan proksi yang sama adalah curl -x http://proxy.example:3128 -v https://example.com , dan keluaran verbosenya menunjukkan apakah CONNECT berhasil, Proxy-Authenticate apa yang dikembalikan, dan apakah 407 dikembalikan. Jika curl mendapatkan 407 dan browser hang, jalur kredensiallah yang menjadi masalah, bukan jaringan. Jika curl berhasil dan browser tidak, berarti browser tersebut tidak menggunakan proxy yang Anda kira.
Centang 2: siapa yang menjawab 407
407 memiliki pemilik, dan penamaannya menentukan ke mana perbaikan akan dilakukan. Jika tantangan berasal dari proxy perusahaan, perbaikannya adalah kredensial yang dapat diberikan oleh browser tanpa pengawasan. Jika berasal dari proksi upstream yang diteruskan oleh proksi pertama, kredensialnya termasuk dalam hop kedua dan proksi pertama mungkin meneruskan tantangan tanpa perubahan. Baca cakupan otentikasi dan host di header Proxy-Authenticate, karena keduanya memberi nama pada kotak yang menanyakan.
Pertahankan perbedaan itu dalam apa pun yang Anda catat. Tantangan proxy, koneksi penerusan yang ditolak, proses masuk ke situs web, dan batas waktu transportasi VPN habis adalah empat kegagalan berbeda dengan empat pemilik berbeda, dan satu pesan kesalahan umum menghancurkan informasi yang Anda perlukan.
Periksa 3: jalur kredensial
Kredensial itu sendiri adalah tempat sebagian besar pengaturan yang tidak dijaga rusak. Selenium dapat mengatur host dan port proksi, namun autentikasi proksi HTTP bukanlah bagian portabel dari konfigurasi tersebut, dan kredensial dalam URL proksi bukanlah mekanisme yang dapat Anda andalkan di seluruh browser dan versi driver. Opsi yang didukung adalah opsi tumpukan dokumen Anda yang sebenarnya: ekstensi browser yang menjawab tantangan, proksi penerusan lokal yang menambahkan header dan hanya dapat dijangkau dari pekerjaan, atau proksi yang mengautentikasi beban kerja dengan cara lain. Pilih salah satu dengan sengaja, dan periksa dengan versi browser, driver, dan Selenium yang akan Anda jalankan.
Jauhkan kredensial dari tempat yang membocorkannya. Baris perintah terlihat dalam daftar proses, tangkapan layar dimasukkan ke dalam laporan pengujian, jejak browser dan header pengambilan file HAR, dan konfigurasi pengujian yang dilakukan selamanya. Gunakan mekanisme pengiriman rahasia tugas dan aturan redaksinya, dan cakupan akun proksi ke tujuan atau peran yang diperlukan.
Jika organisasi menawarkan rute VPN langsung yang diizinkan dan bukan proksi wajib, bandingkan kedua desain secara eksplisit. Jangan menonaktifkan proxy secara diam-diam atau meniru autentikasi klien lain untuk mengakali kebijakan.
Periksa 4: konteks jaringan proses browser itu sendiri
Ini adalah pemeriksaan yang dilewati orang. Browser yang diluncurkan oleh pekerja, container, atau node Selenium Grid jarak jauh menggunakan jaringan lingkungan tersebut, sehingga koneksi VPN laptop Anda dan variabel proksi shell Anda menggambarkan jalur yang mungkin tidak pernah disentuh oleh browser.
Catat lima fakta untuk pekerjaan yang gagal: host browser, proksi yang dikonfigurasi, jalur penyelesai awal, rute yang dipilih, dan pemilik autentikasi. Kemudian buat satu permintaan resmi yang tidak berbahaya dari konteks yang sama, dengan verifikasi TLS tujuan normal dan otorisasi aplikasi tetap aktif. Peramban tanpa kepala yang dimulai dengan sukses tidak membuktikan penerimaan proxy atau cakupan VPN, dan tangkapan layar halaman kosong tidak membuktikan apa pun. Permintaan yang mengembalikan 200 melalui seluruh rantai adalah satu-satunya bukti yang diperhitungkan.
Alur kerja yang telah selesai memiliki tiga properti yang layak diperiksa sebagai satu set. Terdapat rute yang didukung dari host browser ke proksi, kebijakan perantara eksplisit yang memberi nama proksi dan tujuannya, serta siklus hidup kredensial yang tidak bergantung pada operator yang menjawab perintah tak terlihat. Jika salah satu dari ketiganya bergantung pada seseorang, pekerjaan tersebut belum ditangani, apa pun kode keluarnya. Tuliskan lima fakta tersebut sebelum orang berikutnya mewarisi saluran pipa tersebut.