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の実際のメカニズムもっているパスワードベースのログインの場合は「Basic」または「Digest」、Kerberos ベースのログインの場合は「Negotiate」です。この--http-userオプションは、Web サイトでこれらのいずれかを使用している場合に機能します。

ただし、あなたのウェブサイトはフォーム/クッキーベースのログインページを使用している可能性が高く、HTTPクライアントにとっては通常のウェブページへの通常のリダイレクトとまったく区別がつきません。Wgetしないそれらのフォームを自動的に認識して入力できるようになります。

もしそうなら、あなたができた通常の Web ブラウザ経由でログインし、必要なセッション クッキーを wget の「cookie jar」ファイルにコピーします (または を使用して直接渡します--header)。すると、Web サイトはログインしていることを認識し始めます。

Chrome または Firefox で「開発者ツール」→「ネットワーク」を開くと、各ネットワーク リクエストに「cURL としてコピー」オプションがあり、完全なcurlコマンド ラインが表示されます。セッション クッキーを送信する特定のオプションを見つけて--header …、それを wget に渡します。

関連情報