日本語

エージェントが新しいアカウントを作成する

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

次のような場合にこの機能をご利用ください:

  • ロールごとに手動でアカウントを作成することなく、複数ロールのカバレッジ(例:admin、editor、viewer)を実現したい場合。
  • アプリケーションに、エージェントが呼び出せるサインアップフォームまたは管理者/ユーザー作成APIがある場合。
  • ステージング環境にテストデータが蓄積しないよう、アセスメントごとの使い捨てアカウントを使用したい場合。

この方法は、既知のサインアップフローまたは管理者APIがある環境で最も効果を発揮します。アプリにプログラムでユーザーを作成する手段がない場合は、標準の認証方法のいずれかを使用し、アカウントを手動で作成してください。

仕組み

  1. プリフライトチェック中に、エージェントはユーザー作成指示を読み取り、1つ以上のアカウントを作成します。サインアップフォーム、curl形式のAPI呼び出し、または短いスクリプトの実行を利用できます。
  2. Aikidoは作成されたアカウントを実際のテストユーザーとして保存し、このジェネレーターに紐付けます。元の「Test user generator」エントリはアーカイブされ、スキャン自体には使用されません。
  3. 2回目のプリフライトが実行され、認証指示(<generated_username>および<generated_password>プレースホルダーを参照)を使用して、プロビジョニングされた各ユーザーでサインインします。成功したセッションはメインのペネトレーションテスト用に取得されます。
  4. プリフライトが失敗した場合、プロビジョニングされたユーザーは自動的にロールバックされ、ジェネレーターが復元されるため、指示を編集して再試行できます。

セットアップガイド

  1. テストユーザーを追加する

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

    デフォルトでは、認証情報セットの名前はTest user generatorです。必要に応じて名前を変更してください。このラベルは参照用です。

    Custom > Agent Creates New Account が表示された Add Test User メニュー
  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":"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.
    User creation と Authentication の指示が表示された Authentication Set モーダル
  3. ログイン方法を記述する

    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.

    成功基準は曖昧さのないものにしてください。ログイン後のページに表示される文字列を使うと効果的です。

  4. 保存してテストする

    Save & Testをクリックします。プリフライトは2段階で実行されます:

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

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

ヒントとベストプラクティス

  • 作成ステップには専用の管理者トークンを使用してください。実際のユーザーに紐付いたトークンを再利用しないでください。
  • 権限レベル間のBroken Access ControlをAikidoがテストできるよう、必要なすべてのロールをカバーしてください。
  • メールアドレスの一意性を明示してください: 多くのアプリは重複したサインアップを通知なく拒否します。アカウントごとに一意のメールアドレスを生成するようエージェントに指示してください。
  • ログイン指示には明確な成功基準を設定してください。「ページが読み込まれる」のような曖昧な基準では、ユーザーが実際にはオンボーディング画面で止まっていても成功と判定される場合があります。
  • 自由に繰り返し調整してください。 プリフライトが失敗した場合は、指示を編集して再度Save & Testをクリックできます。以前にプロビジョニングされたユーザーは自動的にアーカイブされます。

トラブルシューティング

  • ユーザー作成に失敗した場合: APIまたはサインアップURLがAikidoのIP範囲からアクセス可能であること、および指示内の管理者トークンが有効であることを確認してください。curlリクエストやサインアップフォームを手動で実行し、手順が正しいことを確認してください。
  • 2回目のプリフライトでログインに失敗した場合: 認証指示の成功基準をより厳密にするか、新規作成されたアカウントで表示される追加ステップ(メール認証、オンボーディングモーダル、MFA)を含めてください。新しいユーザーがメール認証を必要とする場合は、この方法をメール認証フローと組み合わせてください。
  • 誤ったロールが割り当てられた場合: 各ユーザーにどのロールを付与するかを作成指示で明示してください。APIがデフォルトのロールを選択する場合は、リクエストボディで上書きしてください。

お困りですか?

Aikidoダッシュボードの右下にあるIntercomチャットを開いてください。お使いの環境に合った作成指示とログイン指示の作成を、当社のチームがお手伝いします。