認証レポート - JSON

これは、指定されたサイトに対する認証処理がどのように機能したかを詳述する専用レポートです。

レポートの対象とするサイトを指定する必要があります。指定しない場合、データは生成されません。

このレポートは、認証メソッドを正しく設定し、有効な認証情報を用いて、少なくとも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が検出した値で更新されます。

統計

これらは、ZAPによって記録されたすべての統計情報です。
それらの意味の詳細については、https://www.zaproxy.org/docs/internal-statistics/を参照してください。

診断

ブラウザベースおよびクライアントスクリプト認証メソッドでは、診断データを記録することができ、認証レポートに含めることで認証問題の診断に役立てることができます。

診断データは、認証テスターダイアログでも記録できます。

レポートには、記録された各認証試行に対して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",
			…
		}
	]

診断用HTTPメッセージ

このセクションが有効化されている場合、ステップにはオプションでそのステップ中に送信されたHTTPメッセージを含めることができます。 各メッセージには、リクエスト/レスポンスのヘッダーとボディが含まれます。
	"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"
		}
	]

診断用スクリーンショット

このセクションが有効化されている場合、ステップにはオプションでBase64エンコードされた画像データを含むページのスクリーンショットを含めることができます。
	"screenshot": "…"

診断用セッションストレージ

このセクションが有効化されている場合、ステップにはオプションでブラウザのセッションストレージを含めることができます。
	"sessionStorage": [
		{
			"created": "0000-00-00T00:00:00.000000Z",
			"key": "key",
			"value": "value"
		}
	]

診断用Web要素

このセクションが有効化されている場合、ステップにはオプションでページ内に存在するすべての入力要素を含めることができます。
	"webElements": [
		{
			"selector": {"type": "XPATH", "value": "\/html\/body\/div\/input[4]"},
			"formIndex": 0,
			"attributeType": "text",
			"attributeId": "id",
			"attributeName": "name",
			"attributeValue": "",
			"text": "",
			"displayed": true,
			"enabled": true
		}
	]

診断用ZAPログファイル

このセクションが有効化されている場合、ログファイルの内容を含むトップレベルプロパティがレポートに追加されます。
	"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"
	]
}