Web Crawlerは、GETリクエストとPOSTリクエストの両方でフォームベース認証をサポートしています。http.auth.form.credentials.fileプロパティに、Webクライアントによって使用されるフォーム資格証明が格納されたファイル名を設定します。
WebサーバーでHTMLフォームを使用してWebサイトへのアクセスを制限している場合は、認証の資格証明を指定することによって、パスワードで保護されているページにWeb Crawlerがアクセスできるようになります。
資格証明ファイル内で指定するフィールドは、ユーザーが操作する場合にWebブラウザで入力を求められたときに入力するフィールド、および正常なログインのために必要な非表示フィールドまたは静的フィールドに対応しています。これは、サーバー管理者と協力する必要があることを意味します。サーバー管理者は、Webサイトのセキュリティ要件を提供する必要があります。そうしたセキュリティ要件には、Web CrawlerのIDを認証するため、およびクローラーが制限付きのページをクロールするのに必要な権限を持っていることを証明するために使用されるすべての情報が含まれます。
Web Crawlerの内部では、認証プラグインがWebクロールにおけるフォームベース・ログインを実行する方法を提供します。このプラグインには、次の2つの主要な認証モードが実装されています。
- クロール前認証モードでは、クロールが開始される前に認証が実行されます。クロール前認証が指定されており、リクエストがタイムアウトした場合は、オーセンティケータによってクロール内認証が試みられ、認証が再試行されます。
- クロール内認証モードでは、クロールの進行に応じて認証が実行されます。すべてのページがフェッチされ、処理された後に、サイト固有のオーセンティケータがページのコンテンツをチェックし、再フェッチが必要かどうかを確認します(クローラがログアウトしているかどうかなど)。また、必要に応じてサイトにログインする場合があります。
クロール前、クロール内のいずれの認証が実行されるかは、資格証明ファイル内の
preCrawlAuthの設定によって決定されます。いずれのモードを使用すべきか不明な場合は、認証プロセスでタイムアウトが発生しないと考えられるならば、最初はクロール前モードを使用することをお薦めします。タイムアウトが発生することが想定される場合は、クロール内モードのほうが有利です。