コンテンツにスキップ

エージェントによる新規アカウント作成

Aikido の Pentest エージェントは、ユーザーが用意した自然言語の指示に基づき、アセスメント用の使い捨てテストユーザーを自ら作成できます。事前にアカウントを作成して認証情報を共有する代わりに、新規ユーザーをどのように生成すべきかを記述するだけで、スキャン開始前に残りの作業をエージェントが行います。

この機能は次のような場合に利用してください。

  • admineditorviewer のような複数ロールのカバレッジを、ロールごとに手動でアカウントを作成せずに実現したい場合。
  • アプリケーションに、エージェントが呼び出せるサインアップフォーム管理者/ユーザー作成 API がある場合。
  • アセスメントごとの使い捨てアカウントを好み、ステージング環境にテストデータを蓄積させたくない場合。
  1. プリフライトチェック中、エージェントはユーザー作成の指示を読み取り、1つ以上のアカウントを作成します。サインアップフォーム、curl 形式の API 呼び出し、または短いスクリプトの実行を利用できます。
  2. Aikido は、作成されたアカウントをこのジェネレーターに紐づいた実際のテストユーザーとして保存します。元の「Test user generator」エントリはアーカイブされ、スキャン自体には使用されなくなります。
  3. 2回目のプリフライトが実行され、(<generated_username><generated_password> のプレースホルダーを参照する)認証の指示を使って、作成された各ユーザーでサインインします。成功したセッションはメインの Pentest 用に取得されます。
  4. プリフライトが失敗した場合、作成されたユーザーは自動的にロールバックされ、ジェネレーターが復元されるため、指示を編集して再試行できます。

アセスメントウィザードで、Add Test UserCustomAgent Creates New Account をクリックします。

デフォルトでは、この認証情報セットは Test user generator という名前になっています。任意で名前を変更できます。このラベルはあくまで参照用です。

Custom > Agent Creates New Account を示す Add Test User メニュー

2. ユーザー作成方法を記述する

Section titled “2. ユーザー作成方法を記述する”

User creation instructions フィールドに、エージェントがどのようにアカウントを生成すべきかを自然言語で説明します。以下の点を明確に記述してください。

  • ユーザーをどこで作成するか(サインアップ URL、または管理者用エンドポイント)。
  • どのロールやバリエーションが必要か(例: viewer 1つ、editor 1つ、admin 1つ)。
  • メール、パスワード、組織、テナントなどの必須フィールド
  • エージェントが使用すべきトークンや管理者用認証情報

管理者 API を使う例:

Create new users through the API for the following roles:
- viewer
- editor
- admin
Use the following curl request:
curl -X POST https://staging.example.com/api/admin/users \
-H "x-api-key: test-admin-key" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"password","role":"editor"}'
Always create a unique email and a secure password.

サインアップフォームを使う例:

Create three new accounts via the signup form at https://staging.example.com/signup.
For each account:
1. Click "Sign up".
2. Enter a unique email and a strong password.
3. Submit the form and complete any onboarding screens.
Create one account per role (viewer, editor, admin) by selecting the matching plan during signup.
User creation と Authentication instructions を含む Authentication Set モーダル

Authentication instructions フィールドに、エージェントが作成したばかりのユーザーのログインフローを記述します。プレースホルダー <generated_username><generated_password> を使用してください。Aikido は各プロビジョニング済みユーザーをテストする際、これらを実際の認証情報に置き換えます。

例:

1. Navigate to https://staging.example.com/login
2. Enter username: <generated_username>
3. Enter password: <generated_password>
4. Click "Log In"
Success criteria: The login is successful and the dashboard is visible.

success criteria は曖昧にしないでください。ログイン後の画面に表示される文字列を条件にすると効果的です。

Save & Test をクリックします。プリフライトは2回に分けて実行されます。

  1. エージェントがアカウントをプロビジョニングします。
  2. エージェントが各新規アカウントでサインインし、セッションを取得します。

両方成功すると、アセスメント設定内でジェネレーターが実際のテストユーザーに置き換わります。これでスキャンを開始する準備が整いました。

  • 作成手順には専用の管理者トークンを使用してください。実際のユーザーに紐づくトークンを使い回さないようにしましょう。
  • Aikido が権限レベル間の Broken Access Control をテストできるよう、気になるすべてのロールを網羅してください。
  • メールの一意性を明確に指定してください。多くのアプリは重複したサインアップを黙って拒否します。アカウントごとに一意のメールを生成するようエージェントに指示してください。
  • ログイン指示には明確な成功条件を設定してください。「the page loads」のような曖昧な条件では、実際にはユーザーがオンボーディング画面で止まっている場合でも成功と判定されることがあります。
  • 自由に試行錯誤してください。 プリフライトが失敗した場合は、指示を編集して再度 Save & Test をクリックできます。以前作成されたユーザーは自動的にアーカイブされます。
  • ユーザー作成に失敗する場合: API またはサインアップ URL が Aikido の IP レンジから到達可能であること、また指示内の管理者トークンが有効であることを確認してください。curl リクエストやサインアップフォームを手動で実行し、手順が正しいか確認しましょう。
  • 2回目のプリフライトでログインに失敗する場合: 認証指示の成功条件を厳密にするか、新規作成アカウントに現れる追加の手順(メール確認、オンボーディングモーダル、MFA など)を含めてください。新規ユーザーがメール確認を必要とする場合は、この方法をメール確認フローと組み合わせてください。
  • 誤ったロールが割り当てられる場合: 作成指示の中で、各ユーザーに割り当てるべきロールを明確に指定してください。API がデフォルトロールを選択する場合は、リクエストボディでそれを上書きしてください。

Aikido ダッシュボードの右下にある**「Intercom chat」**を開いてください。作成指示やログイン指示をお使いのスタックに合わせて作成するお手伝いをします。