как выполнить аутентификацию ldap с помощью wget?

как выполнить аутентификацию ldap с помощью wget?

Я пытаюсь просканировать старый сервер Reviewboard, которым я владею, чтобы создать статическую копию и заархивировать ее. Я делаю это с помощью wget, следуя рекомендациям нескольких людей, используя рекомендуемый способ сканирования и загрузки сервера, например, такой:

wget --recursive --no-clobber --page-requisites --html-extension --convert-links --domains $DOMAIN --http-user $USERNAME  --ask-password $THE_SERVER

Однако сервер требует аутентифицированный вход LDAP, поэтому все, что я получаю, это страница входа и некоторые связанные файлы. Та же проблема возникает, если я просто делаю это --userвместо --http-user.

Мой вопрос: можно ли выполнить аутентификацию LDAP с помощью wget, и если да, то как?

Так как я уверен, что появятся следующие комментарии:

  1. Я уже создал JSON-архив с помощью rb-tools, но мне бы очень хотелось иметь статическую веб-копию.
  2. У меня есть возможность разрешить анонимный доступ только для чтения, поскольку я являюсь администратором сервера, но я хотел бы избежать этого, если это возможно.

решение1

LDAP не является аутентификациеймеханизм– это всего лишь счетхранилищебэкэнд; по сути, это то же самое, что и хранение учетных записей в MySQL или подобном. Таким образом, не существует такого понятия, как "LDAP-аутентификация", если речь идет о HTTP-клиентах.

Фактические механизмы HTTPимеет«Basic» или «Digest» для входа на основе пароля или «Negotiate» для входа на основе Kerberos; этот --http-userвариант будет работать, если ваш веб-сайт использует один из них.

Однако ваш сайт, скорее всего, использует страницу входа на основе форм/cookie-файлов, которая для HTTP-клиентов совершенно неотличима от обычного перенаправления на обычную веб-страницу. Wgetне будетиметь возможность автоматически распознавать и заполнять эти формы.

Если это так, то что вымогсделать, это войти через ваш обычный веб-браузер, затем скопировать необходимые сеансовые куки в файл "cookie jar" wget (или, возможно, передать их напрямую с помощью --header). Тогда веб-сайт распознает вас как вошедших в систему.

Если вы откроете "Инструменты разработчика" → "Сеть" в Chrome или Firefox, каждый сетевой запрос будет иметь опцию "Копировать как cURL", которая дает вам полную curlкомандную строку. Найдите конкретную --header …опцию, которая отправляет ваш сеансовый cookie, и передайте ее wget.

Связанный контент