> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing.md).

# テストユーザーの設定

IDOR、権限昇格、ロジックバグを含む最重要の脆弱性は、ログイン画面の向こう側にあります。それらを見つけるには、Aikido の Pentest エージェントがアクセスできる必要があります。

複雑な Selenium スクリプトやプロキシ記録を必要とする従来のツールとは異なり、Aikido は LLM 駆動のアプローチを採用しています。人間の QA テスターに説明するのと同じように、自然言語でログイン方法をエージェントに伝えるだけです。

認証セットの設定方法は次のとおりです。

{% stepper %}
{% step %}
**テストユーザーを作成**

1. クリックします **テストユーザーを追加**.
2. **名前：** このセットには説明的な名前を付けてください（例： `管理者ユーザー`, `読み取り専用ユーザー`, `テナントA - マネージャー`).

{% hint style="info" %}
異なる権限レベル間での Broken Access Control (BAC) をテストするために、複数のペルソナを設定することを推奨します。
{% endhint %}

<div data-with-frame="true"><figure><img src="https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-f0ee322740e78e49d819875ed8b33866aa5e4f91%2FScreenshot%202025-12-11%20at%2011.33.44.png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**ログイン手順を入力**

これは最も重要なステップです。 **認証手順** フィールドに、ログインフローの手順を一つずつ文章で記述してください。

AI エージェントはこれを解析して、あなた固有の UI の癖に対応します。具体的に記述してください。

**記入例：**

> 次へ移動します: `staging.app.com/login`
>
> 「ユーザー名でログイン」をクリック
>
> ユーザー名を入力： `pentest_admin`
>
> パスワードを入力： `super_secure_password_123`
>
> 「サインイン」ボタンをクリック

{% hint style="info" %}
AI エージェントは標準的な CAPTCHA を自動的に解決できるようになっています。スキャンのためにこれらを無効にする必要も、個別の手順を指定する必要もありません。
{% endhint %}

<div data-with-frame="true"><figure><img src="https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-76c62aabac0d0923508b78c66f8fb76dc519a8ca%2FScreenshot%202025-12-11%20at%2011.35.23.png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
**設定をテスト**

最後に、エージェントがあなたの指示を解釈できることを確認してください：

1. クリックします **保存してテスト**.
2. エージェントはブラウザセッションを起動し、資格情報と受信トレイの指示を使ってログインを試みます。
3. 成功すると、エージェントが認証され、ログイン後の状態に到達したことを示す確認メッセージが表示されます。

<div data-with-frame="true"><figure><img src="https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-2b9a6988d46151bbebf991eebabb38eddfb9df2b%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

### 高度なログインフロー

アプリケーションが単純なユーザー名とパスワード以上を必要とする場合は、専用ツールをご利用ください：

* [**メール確認とマジックリンク：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/handling-email-verification-and-magic-links.md) メール内のリンクをクリックしたり、コードを受信したりする必要がある場合。
* [**二要素認証（TOTP）：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/handling-two-factor-authentication-totp.md) 認証アプリから6桁のコードを生成する必要がある場合。
* [**SMS認証：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/handling-sms-verification.md) SMS ベースの確認コードを処理する必要がある場合。
* [**エージェントが新しいアカウントを作成：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/agent-creates-new-account.md) 自然言語の指示から使い捨てのテストユーザーをエージェントに生成させます。これは複数ロールを網羅する際に便利です。
* [**MCP で認証：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/mcp-authentication.md) エンドポイントURLとBearerトークンを使用して、リモートMCPサーバーに接続します。
* [**資格情報の共有を無効にする:**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/disable-credential-sharing.md) アプリが同時に有効なセッションを1つしか許可しない場合は、各エージェントにそれぞれ専用のテストユーザーを割り当てます。

ベンダー固有の認証フロー：

* [**Google 認証：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/google-auth.md) Google Workspace のログインフローのネイティブサポートはベータ版で利用できます。
* [**Microsoft 認証：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/microsoft-auth.md) 二段階認証付きの Microsoft アカウントをサポートします。
* [**Auth0 の設定：**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/oauth0-configuration.md) 複数エージェント間でのセッション共有をサポートするために必要な OAuth プロバイダー設定。

### OAuth と JWT アプリ

Aikido Pentest は、多数のエージェントを並列に実行し、テストユーザーごとに 1 つの認証済みセッションを共有します。セッションを評価全体を通して維持するため、同じリフレッシュトークンが各エージェントで再利用されます。

これを安定して動作させるには、ID プロバイダー（Auth0、Cognito、Azure AD / Entra ID、Keycloak、カスタム OIDC など）を次のように設定する必要があります：

* **リフレッシュトークンを再利用可能にする。** 単回使用のリフレッシュトークンと、交換時に前のトークンを無効化するリフレッシュトークンローテーションを無効にします。
* **リフレッシュトークンの有効期限が、評価期間を超えていること。** 一般的なペンテストは数時間かかることがあるため、有効期限はそれに合わせて設定してください（例：7200 秒超）。
* **短命のアクセストークン（JWT）でも問題ありません。** ただし、上記の条件下でリフレッシュが機能することが前提です。

{% hint style="warning" %}
**よくある失敗パターン：** 単回使用またはローテーションするリフレッシュトークンでは、最初のエージェントのリフレッシュがそのトークンを消費します。ほかのエージェントは保存済みセッションを、すでに無効になったトークンで再読み込みし、 **403** リフレッシュ時に失敗し、アクセストークンが期限切れになるとそこで行き詰まります。

症状としては、事前チェックは成功するものの、評価の途中でエージェント全体にわたって大量の認証失敗が発生します。
{% endhint %}

Auth0 については、次の手順どおりに設定してください： [**Auth0の設定**](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/oauth0-configuration.md)。同じチェックリストは他の OIDC プロバイダーにも適用できます。

IDプロバイダーを変更できない場合は、 [認証情報の共有を無効にする](/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing/disable-credential-sharing.md) 代わりにこれを有効にします。そうすると、各エージェントはそれぞれ専用のテストユーザーを使用するため、更新トークンは共有されません。

### ベストプラクティス

* **本番用の認証情報は使用しないでください：** ペンテストは必ずステージングまたは QA 環境で実施してください。スキャナーはデータを破損させる可能性のある侵襲的なテストを実行します。
* **専用のテストアカウントを作成してください：** 個人の開発者アカウントは使用しないでください。スキャナー専用のアカウントを作成してください（例： `aikido-scanner@yourdomain.com`).
* **すべてのテナントを網羅する：** アプリがマルチテナントの場合は、異なるテナントのユーザー用の認証情報を追加してください（例： `ユーザー - テナントA`, `ユーザー - テナントB`）。これにより、AI がテナント間のデータ漏えいをテストできます。

### トラブルシューティング

認証は次のタイミングで検証されます： **事前チェック** 起動直後です。エージェントの画面をリアルタイムで確認し、成功するかどうかを見られます。

エージェントがログインに失敗した場合：

* **失敗箇所を確認してください：** エラーログ内のエージェントのスクリーンショットを確認し、どこで止まったのかを正確に把握してください。
* **基本確認の手順：** シークレットウィンドウで、提供した手順を手動で一通り実行してください。手順を飛ばしていたり、ボタンが分かりにくかったりすると、エージェントがうまく進めないことがあります。
* **アクセシビリティを確認：** URL はパブリックインターネットから到達可能ですか？（IP ホワイトリストを確認してください）。
* **アカウントの状態：** テストユーザーがロックアウトされていないことを確認してください。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.aikido.dev/docs/docs-ja/pentesuto/configure-a-pentest/setting-up-authenticated-testing.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
