エージェントが新しいアカウントを作成する
AikidoのPentestエージェントは、お客様が提供する自然言語の指示に基づき、アセスメント用の使い捨てテストユーザーを自ら作成できます。事前にアカウントを作成して認証情報を共有する代わりに、新しいユーザーの生成方法を記述するだけで、スキャン開始前にエージェントが残りの作業を行います。
次のような場合にこの機能をご利用ください:
- ロールごとに手動でアカウントを作成することなく、複数ロールのカバレッジ(例:
admin、editor、viewer)を実現したい場合。 - アプリケーションに、エージェントが呼び出せるサインアップフォームまたは管理者/ユーザー作成APIがある場合。
- ステージング環境にテストデータが蓄積しないよう、アセスメントごとの使い捨てアカウントを使用したい場合。
この方法は、既知のサインアップフローまたは管理者APIがある環境で最も効果を発揮します。アプリにプログラムでユーザーを作成する手段がない場合は、標準の認証方法のいずれかを使用し、アカウントを手動で作成してください。
仕組み
- プリフライトチェック中に、エージェントはユーザー作成指示を読み取り、1つ以上のアカウントを作成します。サインアップフォーム、
curl形式のAPI呼び出し、または短いスクリプトの実行を利用できます。 - Aikidoは作成されたアカウントを実際のテストユーザーとして保存し、このジェネレーターに紐付けます。元の「Test user generator」エントリはアーカイブされ、スキャン自体には使用されません。
- 2回目のプリフライトが実行され、認証指示(
<generated_username>および<generated_password>プレースホルダーを参照)を使用して、プロビジョニングされた各ユーザーでサインインします。成功したセッションはメインのペネトレーションテスト用に取得されます。 - プリフライトが失敗した場合、プロビジョニングされたユーザーは自動的にロールバックされ、ジェネレーターが復元されるため、指示を編集して再試行できます。
セットアップガイド
テストユーザーを追加する
アセスメントウィザードで、Add Test User → Custom → Agent Creates New Accountをクリックします。
デフォルトでは、認証情報セットの名前は
Test user generatorです。必要に応じて名前を変更してください。このラベルは参照用です。
ユーザーの作成方法を記述する
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":"jane@example.com","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.
ログイン方法を記述する
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.成功基準は曖昧さのないものにしてください。ログイン後のページに表示される文字列を使うと効果的です。
保存してテストする
Save & Testをクリックします。プリフライトは2段階で実行されます:
- エージェントがアカウントをプロビジョニングします。
- エージェントが新しい各アカウントでサインインし、セッションを取得します。
両方が成功すると、アセスメント設定内のジェネレーターが実際のテストユーザーに置き換えられます。これでスキャンを開始する準備が整いました。
ヒントとベストプラクティス
- 作成ステップには専用の管理者トークンを使用してください。実際のユーザーに紐付いたトークンを再利用しないでください。
- 権限レベル間のBroken Access ControlをAikidoがテストできるよう、必要なすべてのロールをカバーしてください。
- メールアドレスの一意性を明示してください: 多くのアプリは重複したサインアップを通知なく拒否します。アカウントごとに一意のメールアドレスを生成するようエージェントに指示してください。
- ログイン指示には明確な成功基準を設定してください。「ページが読み込まれる」のような曖昧な基準では、ユーザーが実際にはオンボーディング画面で止まっていても成功と判定される場合があります。
- 自由に繰り返し調整してください。 プリフライトが失敗した場合は、指示を編集して再度Save & Testをクリックできます。以前にプロビジョニングされたユーザーは自動的にアーカイブされます。
トラブルシューティング
- ユーザー作成に失敗した場合: APIまたはサインアップURLがAikidoのIP範囲からアクセス可能であること、および指示内の管理者トークンが有効であることを確認してください。
curlリクエストやサインアップフォームを手動で実行し、手順が正しいことを確認してください。 - 2回目のプリフライトでログインに失敗した場合: 認証指示の成功基準をより厳密にするか、新規作成されたアカウントで表示される追加ステップ(メール認証、オンボーディングモーダル、MFA)を含めてください。新しいユーザーがメール認証を必要とする場合は、この方法をメール認証フローと組み合わせてください。
- 誤ったロールが割り当てられた場合: 各ユーザーにどのロールを付与するかを作成指示で明示してください。APIがデフォルトのロールを選択する場合は、リクエストボディで上書きしてください。
お困りですか?
Aikidoダッシュボードの右下にあるIntercomチャットを開いてください。お使いの環境に合った作成指示とログイン指示の作成を、当社のチームがお手伝いします。