---
title: Akamai Account Protector node
description: Use the Akamai Account Protector node to inject the Akamai risk score into an Advanced Identity Cloud authentication journey.
component: auth-node-ref
version: latest
page_id: auth-node-ref:cloud:akamai-account-protector
canonical_url: https://docs.pingidentity.com/auth-node-ref/latest/cloud/akamai-account-protector.html
llms_txt: https://docs.pingidentity.com/auth-node-ref/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: 2026-10-07T16:18:42Z
keywords: ["Nodes &amp; Trees", "Journeys", "Authentication", "Akamai"]
section_ids:
  example: Example
  availability: Availability
  inputs: Inputs
  dependencies: Dependencies
  configure_akamai_account_protector: Configure Akamai Account Protector
  enable_account_protector_on_the_akamai_edge: Enable Account Protector on the Akamai Edge
  add_the_username_parameter_to_akamai_account_protector: Add the username parameter to Akamai Account Protector
  configuration: Configuration
  outputs: Outputs
  callbacks: Callbacks
  outcomes: Outcomes
  errors: Errors
---

# Akamai Account Protector node

The Akamai Account Protector node injects the Akamai risk score into your authentication journey. When the Akamai Account Protector feature is enabled for your application, the Akamai Edge service provides the risk score in an HTTP request header. Learn more in the [Akamai Account Protector](https://techdocs.akamai.com/cloud-security/docs/account-protector) documentation.

## Example

The following example inner journey uses the Akamai Account Protector node to parse the user risk score from the `Akamai-User-Risk` header and branch the journey based on the risk:

![Journey using the Akamai Account Protector node](_images/akamai-account-protector-journey.png)

The inner journey in the example is contained in an outer journey that performs user authentication and collects the username. The Akamai Account Protector node parses the `Akamai-User-Risk` HTTP request header and extracts the user risk score. Based on the risk score, the journey progresses through the appropriate outcome.

## Availability

| Product                                        | Available? |
| ---------------------------------------------- | ---------- |
| PingOne Advanced Identity Cloud                | Yes        |
| PingAM (self-managed)                          | Yes (1)    |
| Ping Advanced Identity Software (self-managed) | Yes (1)    |

(1) For self-managed products, download the node from the [Ping Identity Marketplace](https://marketplace.pingone.com/item/akamai-account-protector).

## Inputs

This node retrieves user risk data from the `Akamai-User-Risk` HTTP request header. The header value contains semicolon-delimited key-value pairs, for example `score=50`.

## Dependencies

You must set up [Akamai Account Protector](https://www.akamai.com/resources/product-brief/account-protector) and enable it in your web application before using the Akamai Account Protector node.

### Configure Akamai Account Protector

Akamai Account Protector detects malicious activity and assigns risk scores to requests. To inject the `akamai-user-risk` header, follow these steps:

#### Enable Account Protector on the Akamai Edge

1. Sign in to the Akamai Control Center.

2. Go to Security Configuration and select your existing security policy or create a new one.

3. Enable Account Protector under the bot management settings.

4. Ensure that risk scoring is enabled and that Akamai adds the `akamai-user-risk` HTTP header.

#### Add the username parameter to Akamai Account Protector

1. In the Akamai Control Center, create an API definition pointing to your Advanced Identity Cloud hostname.

2. Add an API resource with the following details:

   * **Name:** Authenticate

   * **Path:** `/am/json/realms/root/realms/realm name/authenticate`

3. Select the `POST` method and set the request parameters.

   > **Collapse: Example request parameters for the Authenticate API resource**
   >
   > ![Example request parameters for the Authenticate API resource](_images/akamai-account-protector-set-parameters.png)

4. Similarly, set the response parameters.

   > **Collapse: Example JSON/XML schema for the request and response parameters**
   >
   > ```json
   > {
   >   "requestBody": {
   >     "content": {
   >       "application/json": {
   >         "schema": {
   >           "type": "object",
   >           "required": [
   >             "callbacks"
   >           ],
   >           "properties": {
   >             "callbacks": {
   >               "type": "array",
   >               "items": {
   >                 "type": "object",
   >                 "properties": {
   >                   "input": {
   >                     "type": "array",
   >                     "items": {
   >                       "type": "object",
   >                       "properties": {
   >                         "name": {
   >                           "type": "string"
   >                         }
   >                       }
   >                     }
   >                   }
   >                 }
   >               },
   >               "description": "callbacks"
   >             }
   >           }
   >         }
   >       },
   >       "application/xml": {
   >         "schema": {
   >           "type": "object",
   >           "required": [
   >             "callbacks"
   >           ],
   >           "properties": {
   >             "callbacks": {
   >               "type": "array",
   >               "items": {
   >                 "type": "object",
   >                 "properties": {
   >                   "input": {
   >                     "type": "array",
   >                     "items": {
   >                       "type": "object",
   >                       "properties": {
   >                         "name": {
   >                           "type": "array",
   >                           "items": {
   >                             "type": "string"
   >                           },
   >                           "maxItems": 1
   >                         }
   >                       }
   >                     }
   >                   }
   >                 }
   >               },
   >               "description": "callbacks"
   >             }
   >           },
   >           "xml": {
   >             "name": "root"
   >           }
   >         }
   >       }
   >     },
   >     "required": true
   >   }
   > }
   > ```

## Configuration

| Property                           | Usage                                                                                                                                                   |
| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| High Risk Threshold                | The maximum score for the Medium Risk outcome. Scores above this value receive the High Risk outcome.Default: `50`                                      |
| Medium Risk Threshold              | The maximum score for the Low Risk outcome. Scores above this value and up to the High Risk Threshold receive the Medium Risk outcome.Default: `25`     |
| Save Akamai Header to Shared State | If selected, the node writes the `Akamai-User-Risk` header key-value pairs to the shared state, in addition to the transient state.Default: Not enabled |

## Outputs

The node writes each key-value pair from the `Akamai-User-Risk` header, such as `score`, to the transient state. If you select Save Akamai Header to Shared State, the node also writes the pairs to the shared state.

## Callbacks

This node doesn't send any callbacks.

## Outcomes

The node has the following outcomes:

* `Low Risk`

  The overall score is less than or equal to the Medium Risk Threshold value.

* `Medium Risk`

  The overall score is greater than the Medium Risk Threshold and less than or equal to the High Risk Threshold value.

* `High Risk`

  The overall score is greater than the High Risk Threshold value.

* `No Score`

  The `Akamai-User-Risk` header is empty.

* `Error`

  The node couldn't parse the risk score; for example, the header doesn't contain a `score` key-value pair or the score isn't an integer.

## Errors

The node can log the following errors:

* `[AkamaiAccountProtector][Version: <version>][Marketplace]Exception occurred`

  An exception occurred while the node processed the `Akamai-User-Risk` header. The node stores the exception message and stack trace in the transient state.
