この認証方法は、認証を実行するためにログインURLとユーザー認証情報を必要とします。 デフォルトでは、ユーザー名フィールドとパスワードフィールドに適したフィールドを、同じページまたは複数のページ (例: ユーザー名入力後にパスワードフィールドが表示される場合) で自動的に検出しようとします。
計画では、この認証方法を最も一般的なログインフォーマットすべてに対応するよう継続的に強化する予定です。 対象アプリケーションのログインページで動作しない場合は、可能な限り多くの詳細を提供して、ZAPユーザーグループ経由でZAPチームに通知してください。
この方法は、Firefox限定でHTTP Basic認証もサポートします (Seleniumの制限による)。
| 名前 | タイプ | 説明 |
|---|---|---|
| 自動ステップ | AUTO_STEPS | 認証方法がデフォルトで実行するステップ、すなわち必要なフィールドの特定と入力 (すでに指定されていない場合) を実行することを示します。 これは、認証方法がフィールドを見つけ送信できるが、他の必要なステップが前または後に発生する場合に便利です。 |
| 要素クリック | CLICK | Web要素をクリックします。例: ログインフォームにアクセスしたり、ポップアップを閉じたりする場合。 |
| カスタムフィールドの入力 | CUSTOM_FIELD | 指定された値でカスタムフィールドを入力します。例: ログインフォームでレルムまたは組織部門を選択する場合。 |
| パスワードフィールドの入力 | PASSWORD | 適切なフィールドが自動的に特定されなかった場合に、パスワードフィールドに入力します。 |
| TOTPフィールドの入力 | TOTP_FIELD | TOTPフィールドに入力します。 |
| ユーザー名フィールドの入力 | USERNAME | 適切なフィールドが自動的に特定されなかった場合に、ユーザー名フィールドに入力します。 |
| Escapeキーの送信 | ESCAPE | Web要素にEscapeキーを送信します。例: ポップアップを閉じる場合。 |
| リターンキーの送信 | RETURN | Web要素にリターンキーを送信します。例: ログインフォームを送信する場合。 |
| タイムアウトまで待機 | WAIT | 指定されたタイムアウトまで待機します。 |
CUSTOM_FIELD、PASSWORD、および USERNAME ステップは、対応するフィールドの既存値をクリアするため、入力したい完全な値を指定する必要があります。
Authorizationヘッダー
AccessToken または token という要素を含むJSONデータ - 大文字小文字は無視されます
authentication:
method: "browser"
parameters:
loginPageUrl: # 文字列、ログインページのURL、必須
loginPageWait: # 整数、ログインフォーム送信後の待機時間(秒)、デフォルト: 5
stepDelay: # 整数、各ステップ間の待機時間(秒)、デフォルト: 0
browserId: # 文字列、使用するブラウザID、デフォルト: firefox-headless
diagnostics: # ブール値、認証中の診断データの記録を有効化、デフォルト: false。
steps: # カスタムステップのリスト。
- description: # 文字列、ステップの説明。
type: # ステップのタイプ、AUTO_STEPS, CLICK, CUSTOM_FIELD, ESCAPE, PASSWORD, RETURN, TOTP_FIELD, USERNAME, WAIT のいずれか
cssSelector: # 文字列、Web要素のCSSセレクタ
xpath: # 文字列、Web要素のXPath
value: # 文字列、Web要素に入力する値
timeout: # 整数、Web要素の待機ミリ秒数、デフォルト: 1000
診断情報の詳細については、認証レポートを参照してください。
TOTPデータはユーザー認証情報の下に定義されます:
credentials:
username: …
password: …
totp:
secret: # 文字列、シークレット
period: # 整数、期間 デフォルト: 30
digits: # 整数、桁数 デフォルト: 6
algorithm: # 文字列、アルゴリズム デフォルト: SHA1
この機能は、以下に詳述するSelenium統合を使用するため、手動で起動されたブラウザも、AJAXスパイダーがブラウザベース認証を使用した認証済みスキャンを実行している場合にログインされます。
この機能は、以下の静的メソッドで制御でき、AJAXスパイダーで使用され、スクリプトからも呼び出せます。
org.zaproxy.addon.authhelper.AuthUtils.enableBrowserAuthentication(Context context, String userName)このメソッドは、ブラウザが起動されるたびに、指定されたコンテキストとユーザーに対してブラウザ認証を有効にします。 コンテキストがブラウザベース認証用に設定されていないか、ユーザーが見つからない場合に例外が発生します。
org.zaproxy.addon.authhelper.AuthUtils.enableBrowserAuthentication()このメソッドは、ブラウザ起動時にブラウザ認証を有効化します。 ブラウザベース認証用に設定された有効なユーザーのコンテキストが選択されます。
org.zaproxy.addon.authhelper.AuthUtils.disableBrowserAuthentication()このメソッドは、ブラウザ起動時のブラウザ認証を無効化します。
コアの制限により: