レポートの対象とするサイトを指定する必要があります。指定しない場合、データは生成されません。
このレポートは、認証メソッドを正しく設定し、有効な認証情報を用いて、少なくとも1つの認証が必要なURLへのアクセスを試みた後に実行するように設計されています。
セッション処理と検証は「自動検出」のままにしておくことができます。このレポートは、その効果がどの程度だったかを詳述します。
| セクション | ID |
|---|---|
| 概要 | summary |
| 自動化フレームワーク環境 | afenv |
| 統計 | statistics |
| ドメイン | domains |
| 診断 | diagnostics |
| 診断用自動化フレームワークプラン | diagnosticsafplan |
| 診断用HTTPメッセージ | diagnosticsmessages |
| 診断用ローカルストレージ | diagnosticslocalstorage |
| 診断用スクリーンショット | diagnosticsscreenshots |
| 診断用セッションストレージ | diagnosticssessionstorage |
| 診断用Web要素 | diagnosticswebelements |
| 診断用ZAPログファイル | diagnosticslogfile |
| キー | 結果 | 説明 |
|---|---|---|
| auth.summary.auth | false | 認証に失敗しました |
| auth.summary.auth | true | 認証に成功したようです |
| auth.summary.password | false | パスワードフィールドが特定されませんでした |
| auth.summary.password | true | パスワードフィールドが特定されました |
| auth.summary.session | false | セッションハンドリングが特定されませんでした |
| auth.summary.session | true | セッションハンドリングが特定されました |
| auth.summary.username | false | ユーザー名フィールドが特定されませんでした |
| auth.summary.username | true | ユーザー名フィールドが特定されました |
| auth.summary.verif | false | 検証URLが特定されませんでした |
| auth.summary.verif | true | 検証URLが特定されました |
| キー | 説明 |
|---|---|
| auth.failure.overall | すべての認証要素をパスしましたが、最終的に認証は失敗と判定されました。 |
| auth.failure.pass_count | ブラウザログインに成功しませんでした。 |
| auth.failure.session_mgmt | セッション管理の特定に失敗しました。 |
| auth.failure.logged_in | ログイン状態を示す情報が見つかりませんでした。 |
| auth.failure.login_failures | 1回以上のログイン失敗がありました。 |
| auth.failure.no_successful_logins | ブラウザログインに成功しませんでした。 |
| auth.failure.verif_ident | 検証URLの特定に失敗しました。 |
| auth.failure.af_plan_errors | 自動化フレームワークのプランにエラーがありました。 |
セッション管理または検証を「自動検出」に設定し、ZAPがそれらを正常に検出した場合、環境はZAPが検出した値で更新されます。
診断データは、認証テスターダイアログでも記録できます。
レポートには、記録された各認証試行に対して1つずつ、診断オブジェクトの配列が含まれます。 診断オブジェクトには、使用された認証メソッド、コンテキストとユーザーの名前、クライアントスクリプト認証の場合はスクリプト、自動化フレームワークプラン、および認証中に実行された各ステップが含まれます。
"diagnostics": [
{
"created": "0000-00-00T00:00:00.000000Z",
"authenticationMethod": "Browser-based Authentication",
"context": "Context Name",
"user": "User Name",
"script": "Script used by Client Script Authentication",
"steps": [
{ … }
]
}
]
各ステップには、少なくともURLと説明が含まれ、オプションで操作対象の入力要素 (例: 入力されるユーザー名フィールド) を含めることができます。
{
"created": "0000-00-00T00:00:00.000000Z",
"url": "http://example.com/login/",
"description": "Auto Fill Username",
"webElement": {
"selector": {"type": "CSS", "value": "body > div > span > input"},
"formIndex": 1,
"attributeType": "text",
"attributeId": "email",
"attributeName": "email",
"attributeValue": "",
"text": "",
"displayed": true,
"enabled": true
}
…
}
レポートで有効化された追加の診断セクションに応じて、各ステップにはさらに多くのデータを含めることができます。
selector は、CSSまたはXPATHのタイプで、value には対応するセレクタが含まれます。
"diagnostics": [
{
…
"afPlan": "Content Automation Framework Plan",
…
}
]
"messages": [
{
"created": "0000-00-00T00:00:00.000000Z",
"requestHeader": "GET http://example.com/login HTTP/1.1",
"requestBody": "",
"responseHeader": "HTTP/1.1 200 OK",
"responseBody": ""
}
]
"localStorage": [
{
"created": "0000-00-00T00:00:00.000000Z",
"key": "key",
"value": "value"
}
]
"screenshot": "…"
"sessionStorage": [
{
"created": "0000-00-00T00:00:00.000000Z",
"key": "key",
"value": "value"
}
]
"webElements": [
{
"selector": {"type": "XPATH", "value": "\/html\/body\/div\/input[4]"},
"formIndex": 0,
"attributeType": "text",
"attributeId": "id",
"attributeName": "name",
"attributeValue": "",
"text": "",
"displayed": true,
"enabled": true
}
]
"logFile": "Log file content..."
{
"@programName": "ZAP",
"@version": "Dev Build",
"@generated": "Mon, 10 Feb 2025 17:27:23",
"site": "http:\/\/localhost:9091"
,"summaryItems": [
{
"description": "Authentication appeared to work",
"passed": true,
"key": "auth.summary.auth"
},
{
"description": "Username field identified",
"passed": true,
"key": "auth.summary.username"
},
{
"description": "Password field identified",
"passed": true,
"key": "auth.summary.password"
},
{
"description": "Session Handling identified",
"passed": true,
"key": "auth.summary.session"
},
{
"description": "Verification URL identified",
"passed": true,
"key": "auth.summary.verif"
}
]
,"failureReasons": [
{
"key": "auth.failure.no_successful_logins",
"description": "No successful logins."
}
]
,"afEnv": "env:\n contexts:\n - name: simple-json-bearer-cookie\n urls:\n - http:\/\/localhost:9091\/auth\/simple-json-bearer-cookie\n includePaths:\n - http:\/\/localhost:9091\/auth\/simple-json-bearer-cookie.*\n authentication:\n method: browser\n parameters:\n loginPageUrl: http:\/\/localhost:9091\/auth\/simple-json-bearer-cookie\/\n loginPageWait: 5\n browserId: firefox-headless\n steps: []\n verification:\n method: poll\n loggedInRegex: \\Q 200 OK\\E\n loggedOutRegex: \\Q 403 Forbidden\\E\n pollFrequency: 0\n pollUnits: seconds\n pollUrl: http:\/\/localhost:9091\/auth\/simple-json-bearer-cookie\/user\n pollPostData: \"\"\n sessionManagement:\n method: headers\n parameters:\n Authorization: \"Bearer {%json:accesstoken%}\"\n Cookie: \"token={%json:accesstoken%}\"\n technology: {}\n structure: {}\n users:\n - name: test\n credentials:\n password: password123\n username: test@test.com\n parameters: {}\n"
,"statistics": [
{
"key": "stats.auth.browser.foundfields",
"scope": "site",
"site:" "https://www.example.org",
"value": 1
},
{
"key": "stats.auth.browser.passed",
"scope": "site",
"site:" "https://www.example.org",
"value": 1
},
{
"key": "stats.auth.configure.session.header",
"scope": "global",
"value": 1
},
{
"key": "stats.auth.configure.verification",
"scope": "global",
"value": 1
},
{
"key": "stats.auth.detect.auth.json",
"scope": "global",
"value": 5
},
{
"key": "stats.auth.detect.session.accesstoken",
"scope": "global",
"value": 5
},
{
"key": "stats.auth.detect.session.authorization",
"scope": "global",
"value": 1
},
{
"key": "stats.auth.detect.session.token",
"scope": "global",
"value": 7
},
{
"key": "stats.auth.session.set.header",
"scope": "global",
"value": 20
},
{
"key": "stats.auth.sessiontoken.accesstoken",
"scope": "site",
"site:" "https://www.example.org",
"value": 9
},
{
"key": "stats.auth.sessiontoken.token",
"scope": "site",
"site:" "https://www.example.org",
"value": 6
},
{
"key": "stats.auth.sessiontokens.max",
"scope": "global",
"value": 2
},
{
"key": "stats.auth.state.loggedin",
"scope": "site",
"site:" "https://www.example.org",
"value": 2
},
{
"key": "stats.auth.success",
"scope": "site",
"site:" "https://www.example.org",
"value": 1
}
]
,"domains": [
"https://www.example.org",
"https://api.example.org"
]
}