# テストユーザーの設定

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://help.aikido.dev/_assets/05ffd2d488de/Screenshot-2025-12-11-at-11.33.44-1.png" 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://help.aikido.dev/_assets/228cadf62055/Screenshot-2025-12-11-at-11.35.23.png" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

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

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

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

<div data-with-frame="true"><figure><img src="https://help.aikido.dev/_assets/c66de5372ef4/image-35.png" alt=""><figcaption></figcaption></figure></div>
{% endstep %}
{% endstepper %}

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

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

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

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

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

### OAuth と JWT アプリ

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

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

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

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

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

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

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

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

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

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

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

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

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