> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Akamai を設定して Supplemental Signals を送信する

> Akamai をリバースプロキシとして設定し、Supplemental Signals を Auth0 テナントに送信します。

<Warning>
  Supplemental Signals は Enterprise のお客様のみ利用可能です。また、攻撃対策アドオンをリクエストする必要があります。詳細については、[Auth0 Sales](https://auth0.com/get-started?place=header\&type=button\&text=talk%20to%20sales) にお問い合わせください。
</Warning>

<Card title="開始する前に">
  Akamai を設定して Supplemental Signals を Auth0 テナントに送信するには、[Akamai をリバースプロキシとして設定](/docs/ja-jp/customize/custom-domains/self-managed-certificates)しておく必要があります。
</Card>

Akamai Bot Manager や Akamai Account Protector を使用している場合は、[Akamai でリバースプロキシを設定](/docs/ja-jp/customize/custom-domains/self-managed-certificates/configure-akamai-for-use-as-reverse-proxy)して、その結果を Auth0 に送信し、[その結果を Actions で使用する](/docs/ja-jp/secure/attack-protection/use-akamai-supplemental-signals-actions)ことができます。

<div id="supported-login-flows">
  ## サポート対象のログインフロー
</div>

Auth0 では現在、Supplemental Signals で以下のログインフローをサポートしています。

* Universal Login: 識別子 + パスワード
  * [Universal Login: 識別子を最初に入力](/docs/ja-jp/authenticate/login/auth0-universal-login/identifier-first)
  * [Universal Login: データベース接続でのサインアップ](/docs/ja-jp/authenticate/database-connections)
  * Universal Login: パスワードリセット (Auth0 Organizations を含む)
  * [リソース所有者パスワードグラント (ROPG)](/docs/ja-jp/get-started/authentication-and-authorization-flow/resource-owner-password-flow)

<div id="step-1-register-an-api-in-akamai">
  # ステップ1: Akamai で API を登録する
</div>

Akamai でログイン試行の成否を判別できるようにするには、まず Akamai で API を登録し、次にサポートする Auth0 の各ログインフローに対応するエンドポイントを定義する必要があります。

詳しくは、[Akamai TechDocs の Register an API](https://techdocs.akamai.com/api-definitions/docs/register-api) と [Akamai TechDocs の Add API resources](https://techdocs.akamai.com/api-definitions/docs/add-api-resources) をご覧ください。

<AccordionGroup>
  <Accordion title="新しい Universal Login の識別子 + パスワード">
    以下の値を使用して、AkamaiにAPIを登録します：

    | 項目         | 値      |
    | ---------- | ------ |
    | API ベースパス  | `/u`   |
    | API keyの場所 | `ヘッダー` |

    APIを作成したら、次のAuth0エンドポイントそれぞれにAPIリソースを追加する必要があります。

    * `/u/login/password`
    * `/u/signup`
    * `/u/signup/password`

    すべてのエンドポイントで手順は同じですが、設定値は若干異なります。

    ### APIリソースを追加する

    以下の値を使用して、Akamai APIのリソースを設定します：

    <Tabs>
      <Tab title="/u/login/password">
        | プロパティ           | 値                       |
        | --------------- | ----------------------- |
        | API で未定義のパラメーター | `Specific` (`リクエストボディ`) |
        | パス              | `/login/password`       |
        | メソッド            | `POST`                  |
      </Tab>

      <Tab title="/u/signup">
        | プロパティ           | 値                       |
        | --------------- | ----------------------- |
        | API で未定義のパラメーター | `Specific` (`リクエストボディ`) |
        | パス              | `/signup`               |
        | メソッド            | `POST`                  |
      </Tab>

      <Tab title="/u/signup/password">
        | プロパティ           | 値                       |
        | --------------- | ----------------------- |
        | API で未定義のパラメーター | `Specific` (`リクエストボディ`) |
        | パス              | `/signup/password`      |
        | メソッド            | `POST`                  |
      </Tab>
    </Tabs>

    ### メソッドにパラメーターを追加する

    APIリソースを作成したら、Akamaiがログインリクエストを正しく解析できるように、`Request body`パラメーターを定義する必要があります。

    `Request body`パラメーターには以下の値を使用します：

    <Tabs>
      <Tab title="/u/login/password">
        | プロパティ    | 値      |
        | -------- | ------ |
        | 形式       | `JSON` |
        | 必須       | `はい`   |
        | ボディ形式の定義 | `はい`   |
        | スキーマの詳細  | 以下を参照。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state"
                  ],
                  "properties": {
                    "state": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "username": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "password": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "action": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    }
                  }
                }
              }
            },
            "required": true
          }
        }
        ```
      </Tab>

      <Tab title="/u/signup">
        | プロパティ    | 値      |
        | -------- | ------ |
        | 形式       | `JSON` |
        | 必須       | `はい`   |
        | ボディ形式の定義 | `はい`   |
        | スキーマの詳細  | 以下を参照。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "required": [
                    "email",
                    "password"
                  ],
                  "properties": {
                    "email": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "password": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    }
                  }
                }
              }
            },
            "required": true
          }
        }
        ```
      </Tab>

      <Tab title="/u/signup/password">
        | プロパティ    | 値      |
        | -------- | ------ |
        | 形式       | `JSON` |
        | 必須       | `はい`   |
        | ボディ形式の定義 | `はい`   |
        | スキーマの詳細  | 以下を参照。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "required": [
                    "email"
                  ],
                  "properties": {
                    "email": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256,
                      "description": "email"
                    }
                  }
                }
              }
            },
            "required": true
          }
        }
        ```
      </Tab>
    </Tabs>
  </Accordion>

  <Accordion title="新しい Universal Login の識別子ファースト">
    以下の値を使用して、AkamaiにAPIを登録します：

    | 項目       | 値      |
    | -------- | ------ |
    | APIベースパス | `/u`   |
    | APIキーの場所 | `ヘッダー` |

    APIを作成したら、以下のAuth0エンドポイントそれぞれにAPIリソースを追加する必要があります。

    * `/u/login`
    * `/u/signup`
    * `/u/signup/password`

    すべてのエンドポイントで手順は同じですが、設定値は若干異なります。

    ### APIリソースを追加する

    以下の値を使用して、Akamai APIのリソースを設定します：

    <Tabs>
      <Tab title="/u/login">
        | 項目             | 値                           |
        | -------------- | --------------------------- |
        | API 未定義のパラメーター | `Specific` (`Request body`) |
        | パス             | `/login`                    |
        | メソッド           | `POST`                      |
      </Tab>

      <Tab title="/u/signup">
        | 項目             | 値                           |
        | -------------- | --------------------------- |
        | API 未定義のパラメーター | `Specific` (`Request body`) |
        | パス             | `/login/signup`             |
        | メソッド           | `POST`                      |
      </Tab>

      <Tab title="/u/signup/password">
        | 項目             | 値                           |
        | -------------- | --------------------------- |
        | API 未定義のパラメーター | `Specific` (`Request body`) |
        | パス             | `/signup/password`          |
        | メソッド           | `POST`                      |
      </Tab>
    </Tabs>

    ### メソッドにパラメーターを追加する

    APIリソースを作成したら、Akamaiがログインリクエストを正しく解析できるように、`Request body`パラメーターを定義する必要があります。

    以下の値を使用して、`Request body`パラメーターを定義します：

    <Tabs>
      <Tab title="/u/login">
        | プロパティ    | 値            |
        | -------- | ------------ |
        | 形式       | `JSON`       |
        | 必須       | `Yes`        |
        | ボディ形式の定義 | `Yes`        |
        | スキーマの詳細  | 以下を参照してください。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "required": [
                    "state"
                  ],
                  "properties": {
                    "state": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "username": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "password": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "action": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    }
                  }
                }
              }
            },
            "required": true
          }
        } 
        ```
      </Tab>

      <Tab title="/u/signup">
        | プロパティ    | 値            |
        | -------- | ------------ |
        | 形式       | `JSON`       |
        | 必須       | `Yes`        |
        | ボディ形式の定義 | `Yes`        |
        | スキーマの詳細  | 以下を参照してください。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "required": [
                    "email",
                    "password"
                  ],
                  "properties": {
                    "email": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "password": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    }
                  }
                }
              }
            },
            "required": true
          }
        } 
        ```
      </Tab>

      <Tab title="/u/signup/password">
        | プロパティ    | 値            |
        | -------- | ------------ |
        | 形式       | `JSON`       |
        | 必須       | `Yes`        |
        | ボディ形式の定義 | `Yes`        |
        | スキーマの詳細  | 以下を参照してください。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "required": [
                    "email"
                  ],
                  "properties": {
                    "email": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256,
                      "description": "email"
                    }
                  }
                }
              }
            },
            "required": true
          }
        }
        ```
      </Tab>
    </Tabs>
  </Accordion>

  <Accordion title="ROPG">
    以下の値を使用して、Akamai で API を登録します。

    | Property         | Value    |
    | ---------------- | -------- |
    | API base path    | なし。      |
    | API key location | `Header` |

    API を作成したら、次の Auth0 エンドポイントごとに API リソースを追加する必要があります。

    * `/oauth/token`

    手順はすべてのエンドポイントで同じですが、設定値が少し異なります。

    ### API リソースを追加

    以下の値を使用して、Akamai API のリソースを設定します。

    <Tabs>
      <Tab title="/oauth/token">
        | Property                 | Value                       |
        | ------------------------ | --------------------------- |
        | API undefined parameters | `Specific` (`Request body`) |
        | Path                     | `/oauth/token`              |
        | Methods                  | `POST`                      |
      </Tab>
    </Tabs>

    ### メソッドにパラメーターを追加

    API リソースを作成したら、Akamai がログインリクエストを正しく解析できるように、`Request body` パラメーターを定義する必要があります。

    以下の値を使用して、`Request body` パラメーターを定義します。

    <Tabs>
      <Tab title="/oauth/token">
        | Property           | Value        |
        | ------------------ | ------------ |
        | Format             | `JSON`       |
        | Required           | `Yes`        |
        | Define body format | `Yes`        |
        | Schema details     | 以下を参照してください。 |

        ```json theme={null}
        {
          "requestBody": {
            "content": {
              "application/x-www-form-urlencoded": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "username": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    },
                    "password": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 256
                    }
                  }
                }
              }
            },
            "required": true
          }
        } 
        ```
      </Tab>
    </Tabs>
  </Accordion>
</AccordionGroup>

<div id="step-2-forward-bot-results-from-akamai-to-auth0">
  # ステップ 2: Akamai から Auth0 にボットの結果を転送する
</div>

Akamai から Auth0 にボットの結果を転送するよう設定するには、[Akamai TechDocs の「Forward Bot Results to Origin」](https://techdocs.akamai.com/content-protector/docs/forward-bot-results-to-origin)を参照してください。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  `akamai-user-risk` ヘッダーは、すべてのログイン request に含まれるとは限りません。Akamai は、ユーザーリスクスコアを生成した場合にのみこのヘッダーを送信します。
</Callout>

<div id="step-3-enable-processing-of-akamai-headers-in-auth0">
  # ステップ 3: Auth0 で Akamai ヘッダーの処理を有効にする
</div>

Auth0 Dashboard または Auth0 Management API を使用して、Akamai から送信される Supplemental Signals を Auth0 で受け入れるよう設定できます。

<Tabs>
  <Tab title="Auth0 Dashboard">
    Auth0 Dashboard で Supplemental Signals を有効にするには:

    1. **[Auth0 Dashboard > Security > 攻撃対策](https://manage.auth0.com/dashboard/#/security/attack-protection)** に移動します。
    2. **Supplemental Signals** を選択します。
    3. **Enable Akamai headers** のトグルを有効にします。

    <Callout icon="file-lines" color="#0EA5E9" iconType="regular">
      Auth0 Dashboard に Supplemental Signals のオプションが表示されない場合は、攻撃対策アドオンをリクエストする必要があります。詳しくは、[Auth0 Sales](https://auth0.com/get-started?place=header\&type=button\&text=talk%20to%20sales) にお問い合わせください。
    </Callout>
  </Tab>

  <Tab title="Management API">
    Management API で Supplemental Signals を有効にするには:

    1. `update:attack_protection` scope を指定して、[Management API access token を取得します](/docs/ja-jp/secure/tokens/access-tokens/management-api-access-tokens/get-management-api-access-tokens-for-production)。
    2. 次の body を指定して、Management API の [tenant の Supplemental Signals 設定を更新する](/docs/ja-jp/api/management/v2/supplemental-signals/patch-supplemental-signals) エンドポイントを呼び出します。

    ```json theme={null}
    {
      "akamai_enabled": true
    }
    ```
  </Tab>
</Tabs>

<div id="step-4-test-and-verify-configuration">
  # ステップ4: 設定をテストして検証する
</div>

設定したログインフローごとに各エンドポイントを呼び出して、設定をテストします。

すべてが正しく設定されていれば、次のようになります。

* 関連イベントのテナントログに、`akamai-user-risk` と `akamai-bot` ヘッダーが記録されます。
* post-login Action の `event` オブジェクトで、次のプロパティを使用できます。
  * `authentication.riskAssessment.supplemental.akamai.akamaiBot`
  * `authentication.riskAssessment.supplemental.akamai.akamaiUserRisk`
