Una VPN può trasportare il traffico di un browser a un server proxy e comunque impedire al browser di utilizzare quel proxy, perché un percorso e una credenziale sono cose diverse. L’automazione senza testa rende il divario più difficile da vedere, poiché non c’è alcuna finestra e nessun messaggio da notare. Il guasto di solito appare come un blocco o un generico errore di navigazione, e il primo istinto è dare la colpa al tunnel. L'elenco di controllo seguente separa le quattro cose che devono essere vere affinché una richiesta headless tramite un proxy autenticato possa avere successo.

Due conversazioni, due credenziali

Si verificano due conversazioni e appartengono a parti diverse. Il browser si connette prima al listener proxy, che potrebbe richiedergli le credenziali; il proxy quindi effettua o consente la successiva connessione alla destinazione. Una VPN può svolgere la prima tappa senza essere l’endpoint che sfida il browser, e non ha nulla da dire sulla seconda.

HTTP 407 è il segnale che il client deve autenticarsi per la richiesta proxy, portata in Proxy-Authenticate con la risposta attesa in Proxy-Authorization. Questo non è il login del sito web di destinazione e mescolare i due è la fonte di confusione più comune qui.

Quindi i quattro controlli sono: quale proxy è stato effettivamente selezionato dal browser, chi risponde a 407, su quale rete si trova il processo del browser e come le credenziali vengono consegnate senza un essere umano. Ognuno può fallire in modo indipendente e ogni fallimento sembra simile dall'esterno. Lavorateli in ordine, perché un controllo successivo non può compensare uno precedente. Un proxy che non è mai stato selezionato non può essere autenticato e una credenziale che esiste solo sul tuo laptop non può raggiungere un contenitore.

Controlla 1: quale proxy è effettivamente selezionato

Inizia con la selezione, perché un browser che ignora le impostazioni del proxy non raggiunge mai la sfida. In Chrome il flag è --proxy-server=proxy.example:3128 , con --proxy-bypass-list per le esclusioni, e Selenium espone la stessa cosa attraverso le opzioni del browser. Un file PAC è un meccanismo diverso con le proprie modalità di errore.

Quindi conferma dall'interno dell'ambiente del browser in esecuzione anziché dalla shell. Un'analisi indipendente con lo stesso proxy è curl -x http://proxy.example:3128 -v https://example.com e il suo output dettagliato mostra se CONNECT è riuscito, cosa Proxy-Authenticate è tornato e se è stato restituito 407. Se curl ottiene un 407 e il browser si blocca, il problema è il percorso delle credenziali anziché la rete. Se curl ha esito positivo e il browser no, il browser non utilizza il proxy che ritieni sia.

Controlla 2: chi risponde al 407

Uno 407 ha un proprietario e nominarlo decide dove va la correzione. Se il problema proviene dal proxy aziendale, la correzione è una credenziale che il browser può presentare incustodito. Se proviene da un proxy upstream a cui inoltra il primo, la credenziale appartiene a quel secondo hop e il primo proxy potrebbe inoltrare la sfida senza modifiche. Leggi l'ambito di autenticazione e l'host nell'intestazione Proxy-Authenticate, perché nominano la casella che lo richiede.

Mantieni questa distinzione in qualunque cosa registri. Una verifica del proxy, una connessione successiva rifiutata, l'accesso a un sito Web e un timeout del trasporto VPN sono quattro diversi errori con quattro proprietari diversi e un messaggio di errore generico distrugge le informazioni di cui hai bisogno.

Controlla 3: il percorso delle credenziali

La credenziale stessa è il punto in cui si interrompe la maggior parte delle configurazioni automatiche. Selenium può impostare un host e una porta proxy, ma l'autenticazione proxy HTTP non è una parte portabile di tale configurazione e le credenziali nell'URL proxy non sono un meccanismo su cui puoi fare affidamento su browser e versioni di driver. Le opzioni supportate sono quelle effettive dello stack di documenti: un'estensione del browser che risponde alla sfida, un proxy di inoltro locale che aggiunge l'intestazione ed è raggiungibile solo dal lavoro o un proxy che autentica il carico di lavoro con altri mezzi. Scegline uno deliberatamente e confrontalo con l'esatta versione del browser, del driver e del Selenium che utilizzerai.

Conservare le credenziali fuori dai luoghi in cui potrebbero diffondersi. Le righe di comando sono visibili negli elenchi dei processi, gli screenshot finiscono nei report di test, le tracce del browser e le intestazioni di acquisizione dei file HAR e la configurazione del test confermata è per sempre. Utilizzare il meccanismo di consegna segreta del lavoro e le relative regole di redazione e definire l'ambito dell'account proxy in base alle destinazioni o al ruolo di cui ha bisogno.

Se l'organizzazione offre un percorso VPN diretto consentito invece di un proxy obbligatorio, confronta esplicitamente i due progetti. Non disattivare silenziosamente il proxy né imitare l'autenticazione di un altro client per aggirare la policy.

Controlla 4: il contesto di rete del processo del browser

Questo è il controllo che le persone saltano. Un browser avviato da un lavoratore, un contenitore o un nodo remoto di Selenium Grid utilizza la rete di quell'ambiente, quindi la connessione VPN del tuo laptop e le variabili proxy della shell descrivono un percorso che il browser potrebbe non toccare mai.

Registra cinque fatti per il processo non riuscito: l'host del browser, il proxy configurato, il percorso iniziale del risolutore, il percorso selezionato e il proprietario dell'autenticazione. Quindi effettua una richiesta autorizzata innocua da quell'esatto contesto, lasciando attiva la normale verifica TLS di destinazione e l'autorizzazione dell'applicazione. Un browser headless che si avvia correttamente non dimostra né l'ammissione del proxy né la copertura VPN, mentre uno screenshot di una pagina vuota non dimostra assolutamente nulla. La richiesta che restituisce 200 attraverso tutta la catena è l'unica prova che conta.

Il flusso di lavoro finito presenta tre proprietà che vale la pena verificare insieme. Esiste un percorso supportato dall'host del browser al proxy, una politica intermediaria esplicita che nomina il proxy e le destinazioni e un ciclo di vita delle credenziali che non dipende dalla risposta di un operatore a un prompt invisibile. Se uno qualsiasi dei tre dipende da una persona, il lavoro non è ancora incustodito, qualunque sia il codice di uscita. Annota i cinque fatti prima che la persona successiva erediti la pipeline.

Articoli correlati