# REST/GraphQL向けの認証付きAPIスキャン

このガイドでは、Aikidoで認証付きドメインスキャンを設定する手順を説明し、徹底的かつ安全な評価を実現します。

> APIスキャンはProおよびAdvancedプランでのみ利用可能です

## ユースケース <a href="#use-cases" id="use-cases"></a>

* ウェブサイトの保護された領域に対する包括的なセキュリティ評価を実現します。
* APIの認証が必要なセクションにある脆弱性を特定します。

## ドメインでの認証の設定 <a href="#setting-up-authentication-on-a-domain" id="setting-up-authentication-on-a-domain"></a>

**ステップ1:** [**Domains Overview**](https://app.aikido.dev/settings/domains)に移動し、任意のREST/GraphQL APIドメインの三点リーダーをクリックしてアクションメニューを開きます。**Authenticate Domain**を選択します。

![ドメインのスキャン、設定、認証、削除のオプションがあるドメインのアクションメニュー。](https://help.aikido.dev/_assets/0dd05df5c754/ucarecdn-73e3a4bd-4171-4010-a569-83aadd2f0994.png)

**ステップ2:** 認証に使用する方法を選択します。

![複数のログイン方法のオプションと認証情報の入力フィールドがある認証設定画面。](https://help.aikido.dev/_assets/6706e8702907/authenticated-api-scanning-for-rest-graphql_65ff7557-66be-45.png)

> すべての種類のスキャン認証情報は、PKCS1暗号化を使用して安全に保存されます

## 認証オプション <a href="#authentication-options" id="authentication-options"></a>


**フォームによるログイン**

ドメイン認証用のURLとメールアドレス/パスワードを入力します。**Test**をクリックすると、Aikidoがその認証情報でドメインにアクセスできるかどうかを確認します。

二要素認証が有効な場合は、ワンタイムパスワードの情報も入力できます。[OTP URLとその仕組みの詳細については、ドキュメントを参照してください](https://help.aikido.dev/docs/docs-ja/dast-surface-monitoring/miscellaneous/using-2fa-in-front-end-and-api-scans)。

{% hint style="success" %}
* Microsoft / Google SSOは現在サポートされて**いません**。回避策として、手動で認証し、カスタムヘッダーのCookieヘッダーを使用して有効なセッションを渡すことができます。
* お使いのケースがサポートされていませんか？チャットでお知らせいただければ、検討いたします！
{% endhint %}

![フォームベースのログイン認証情報を設定するドメイン認証設定画面。](https://help.aikido.dev/_assets/416a2c252d8f/Screenshot-2026-01-09-at-14.16.32.png)

Aikidoは以下のルールに従ってフォームの送信を試みます：

1. GoogleやFacebookなどの一般的なOAuthオプションを除外したうえで、`type=submit`を持つ表示されているボタンまたは入力フィールドを探します
2. ラベルまたはテキストに基づいてボタンを探します。login、log in、submit、sign inなどと同一または類似のテキストを探します。これは複数の言語で行われます。
3. HTML IDのセットに基づいてボタンを探します（例：`id=form-submit`）
4. ページ上で最初に表示されているボタンを探します


**カスタムヘッダー**

エンドポイントが、作成後に変更されるべきでない固定のキー、Cookie、またはトークンを受け付ける場合は、このオプションを使用してカスタムヘッダーとして追加できます。

ユースケース:

*   Cookie: `Cookie` ヘッダーを設定します。

    ```
    Cookie: sessionId=38afes7a8
    ```



*   JWT Bearer トークン: `Authorization` ヘッダーを設定します。

    ```
    Authorization: Bearer <token>
    ```


**OAuth Client Credentials**

このオプションは、MFAを回避したい場合に使用できます。Aikidoは、Client CredentialsフローのOAuth仕様に従って、指定されたログインURLにリクエストを送信します。具体的には、設定されたログインURLに対してPOSTリクエストを送信し、`grant_type`を`client_credentials`に設定するとともに、client\_idとclient\_secretをそれぞれユーザー名とパスワードとして含むBasic認証ヘッダーを付与します。


**OAuth Password Grant**

API が OAuth Password Grant フローを使用してユーザーの認証情報（ユーザー名とパスワード）を直接必要とする場合は、このオプションを選択してください。Aikido は、`grant_type` を `password` に設定し、指定されたユーザー名とパスワードを含めた POST リクエストをログイン URL に送信します。API によっては、Client ID と Secret も必要になる場合があります。


**Basic Auth**

API が標準の Basic 認証を使用している場合は、このオプションを選択してください。ユーザー名とパスワードを入力すると、Aikido が API へのすべてのリクエストに必要な `Authorization: Basic ...` ヘッダーを自動的に付与します。


**AI Agent によるログイン(ベータ版)**

AI Agent は LLM を使用して実際のブラウザセッションを操作します。人間と同じように、指定された指示に従って認証プロセスを完了します。これは次のような場合に適しています:

* フォームベースのログイン
* 静的 OTP またはワンタイムコード
* 複数ステップの認証フロー
* カスタムまたは非標準のログイン画面

<figure><img src="https://help.aikido.dev/_assets/bcd516605cc9/Screenshot-2026-02-12-at-11.38.08.png" alt="" width="563"><figcaption></figcaption></figure>

認証情報や必要な操作を含め、明確なステップごとの指示を記述してください。エージェントは、詳細な設定を必要とせずに、リダイレクト、動的ページ、中間ステップを処理できます。ほとんどの場合、短くシンプルな指示で十分です。
