Аутентифікація проксі-сервера без головного браузера не є маршрутом VPN
VPN направляє браузер до проксі; він не може відповісти на 407 проксі. Перевірте вибір, виклик і реальний мережевий шлях завдання окремо.
VPN може передавати трафік браузера на проксі-сервер і залишати браузер нездатним використовувати цей проксі, оскільки маршрут і облікові дані — це різні речі. Завдяки безголовій автоматизації прогалину важче побачити, оскільки немає вікна та підказок, які можна помітити. Збій зазвичай проявляється як зависання або загальна помилка навігації, і першим інстинктом є звинуватити тунель. Контрольний список нижче розділяє чотири речі, які мають бути вірними, перш ніж безголовий запит через автентифікований проксі зможе успішно виконати.
Дві розмови, дві грамоти
Відбувається дві розмови, і вони належать до різних сторін. Браузер спочатку підключається до проксі-прослухувача, який може запитати його облікові дані; потім проксі створює або дозволяє подальше підключення до пункту призначення. VPN може виконувати першу частину, не будучи кінцевою точкою, яка кидає виклик браузеру, і їй нічого сказати про другу.
HTTP 407 це сигнал про те, що клієнт повинен пройти автентифікацію для запиту проксі-сервера, переданого в Proxy-Authenticate з очікуваною відповіддю в Proxy-Authorization. Це не логін веб-сайту призначення, і змішування двох є найпоширенішим джерелом плутанини.
Отже, чотири перевірки: який проксі-сервер фактично вибрав браузер, хто відповідає на 407, у якій мережі відбувається процес браузера та як облікові дані доставляються без участі людини. Кожна з них може зазнати невдачі незалежно, і кожна невдача зовні виглядає схожою. Працюйте по порядку, оскільки пізніша перевірка не може компенсувати попередню. Проксі-сервер, який ніколи не вибирався, не може бути автентифікований, а облікові дані, які існують лише на вашому ноутбуці, не можуть потрапити в контейнер.
Перевірте 1: який проксі насправді вибрано
Почніть із вибору, тому що браузер, який ігнорує ваші налаштування проксі, ніколи не впорається з завданням. У Chrome прапорець --proxy-server=proxy.example:3128 із --proxy-bypass-list для виключень, а Selenium показує те саме за допомогою параметрів браузера. Файл PAC — це інший механізм із власними режимами помилок.
Потім підтвердьте всередині запущеного браузера, а не з оболонки. Незалежне тестування з тим самим проксі — це curl -x http://proxy.example:3128 -v https://example.com, і його детальний висновок показує, чи вдалося CONNECT, що Proxy-Authenticate повернув і чи було повернуто 407. Якщо curl отримує 407 і браузер зависає, проблема полягає в шляху облікових даних, а не в мережі. Якщо curl завершується успішно, а браузер – ні, браузер не використовує той проксі-сервер, який ви вважаєте таким.
Перевірте 2: хто відповідає на 407
407 має власника, і його назва вирішує, куди піде виправлення. Якщо виклик надходить від корпоративного проксі-сервера, виправлення — це облікові дані, які браузер може надати без нагляду. Якщо він надходить від проксі-сервера, на який пересилає перший, облікові дані належать цьому другому переходу, а перший проксі може передавати виклик без змін. Прочитайте область автентифікації та хост у заголовку Proxy-Authenticate, оскільки вони називають поле, яке запитує.
Зберігайте цю відмінність у будь-якому журналі. Завдання проксі-сервера, відмова у подальшому підключенні, вхід на веб-сайті та тайм-аут транспортування VPN — це чотири різні збої з чотирма різними власниками, і одне загальне повідомлення про помилку знищує потрібну інформацію.
Перевірте 3: шлях облікових даних
Самі облікові дані є місцем, де більшість автоматичних налаштувань порушується. Selenium може встановити хост і порт проксі-сервера, але автентифікація проксі-сервера HTTP не є переносною частиною цієї конфігурації, а облікові дані в URL-адресі проксі-сервера не є механізмом, на який можна покладатися в усіх браузерах і версіях драйверів. Підтримувані параметри – це ті, які ви фактично стекуєте, документи: розширення браузера, яке відповідає на виклик, локальний проксі-сервер пересилання, який додає заголовок і доступний лише з завдання, або проксі-сервер, який автентифікує робоче навантаження іншими засобами. Свідомо оберіть один із них і порівняйте його з тими версіями браузера, драйвера та Selenium, які ви будете використовувати.
Тримайте облікові дані подалі від місць, де вони витікають. Командні рядки видно в списках процесів, знімки екрана з’являються у звітах про тестування, трасування браузера та заголовки захоплення файлів HAR, а зафіксована тестова конфігурація залишається назавжди. Використовуйте секретний механізм доставки завдання та його правила редагування, а також налаштуйте обліковий запис проксі-сервера відповідно до потрібних місць призначення або ролі.
Якщо організація пропонує дозволений прямий маршрут VPN замість обов’язкового проксі-сервера, чітко порівняйте два дизайни. Не вимикайте проксі та не імітуйте автентифікацію іншого клієнта, щоб обійти політику.
Перевірте 4: власний мережевий контекст браузера
Це перевірка, яку люди пропускають. Браузер, запущений воркером, контейнером або віддаленим вузлом Selenium Grid, використовує мережу цього середовища, тому VPN-з’єднання вашого ноутбука та проксі-змінні вашої оболонки описують шлях, якого браузер може ніколи не торкнутися.
Запишіть п’ять фактів для невдалого завдання: хост браузера, налаштований проксі-сервер, початковий шлях розпізнавача, вибраний маршрут і власника автентифікації. Потім зробіть один нешкідливий авторизований запит саме з цього контексту, увімкнувши звичайну перевірку TLS призначення та авторизацію програми. Безголовий браузер, який успішно запускається, не підтверджує ані доступу до проксі-сервера, ані покриття VPN, а скріншот порожньої сторінки взагалі нічого не доводить. Запит, який повертає 200 через увесь ланцюжок, є єдиним доказом, який має значення.
Готовий робочий процес має три властивості, які варто перевірити як набір. Існує підтримуваний маршрут від хоста веб-переглядача до проксі-сервера, явна проміжна політика, яка називає проксі-сервер і пункти призначення, а також життєвий цикл облікових даних, який не залежить від відповіді оператора на невидимий запит. Якщо будь-яке з трьох залежить від людини, робота ще не залишається без нагляду, незалежно від коду виходу. Запишіть п'ять фактів, перш ніж наступна особа успадкує конвеєр.