如何使用 wget 進行 LDAP 身份驗證?

如何使用 wget 進行 LDAP 身份驗證?

我正在嘗試爬行我擁有的舊 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

我的問題是我可以使用 wget 進行 LDAP 身份驗證嗎?

因為我確信這些評論會出現:

  1. 我已經使用 rb-tools 製作了一個 JSON 存檔,但強烈更喜歡靜態 Web 副本。
  2. 我可以選擇允許匿名只讀訪問,因為我是伺服器的管理員,但我想盡可能避免這種情況。

答案1

LDAP 不是驗證機制– 這只是一個帳戶貯存後端;它本質上與在 MySQL 等中儲存帳戶相同。因此,對於 HTTP 用戶端而言,不存在「LDAP 身份驗證」這樣的東西。

HTTP 的實際機制對於基於密碼的登入是“基本”或“摘要”,對於基於 Kerberos 的登入是“協商”;--http-user如果您的網站使用其中之一,則該選項將起作用。

但是,您的網站很可能使用基於表單/cookie 的登入頁面,對於 HTTP 用戶端來說,該登入頁面與常規網頁的常規重定向完全沒有區別。獲取將不會能夠自動辨識並填寫這些表格。

如果是這樣的話,你怎麼辦可以要做的就是透過常規 Web 瀏覽器登錄,然後將必要的會話 cookie 複製到 wget 的「cookie jar」檔案(或可能直接使用傳遞它們--header)。然後網站就會辨識出您已登入。

如果您在 Chrome 或 Firefox 中開啟“開發人員工具”→“網路”,每個網路請求都會有一個“複製為 cURL”選項,該選項為您提供完整的curl命令列。尋找--header …發送會話 cookie 的特定選項,並將其提供給 wget。

相關內容