Todos los productos
Search
Centro de documentos

Edge Security Acceleration:Configuración de seguridad de API

Última actualización: Sep 06, 2026

La configuración de seguridad de API le permite gestionar Session ID, Schema Validation Settings y Token Configuration para la función API Security de Edge Security Accelerator (ESA) desde un solo lugar. Los identificadores de sesión se usan principalmente en la función de gestión de API. La configuración de token se utiliza cuando usted configura reglas de API.

Agregar un identificador de sesión

Los identificadores de sesión permiten identificar sesiones individuales de una API. ESA recopila y analiza el tráfico de las API etiquetadas, y genera sugerencias de limitación de velocidad para ellas.

  1. En la consola de ESA, seleccione Websites y, en la columna Websites, haga clic en el sitio de destino.

  2. En el panel de navegación izquierdo, elija Websites > API Security.

  3. En la página Security, haga clic en la pestaña Settings y luego haga clic en API Security dentro de la sección Session ID para iniciar la configuración.

    image

  4. Seleccione el tipo de identificador que coincida con sus requisitos de negocio e introduzca el nombre del encabezado personalizado correspondiente. A continuación se muestran los tipos de identificador disponibles:

    • Add

    • Cookie

    • JWT claims, que ya debe existir o bien crearse en este momento

      image

Configurar la validación de esquema

Cargue un esquema de API, como una especificación OpenAPI. ESA lo asocia automáticamente con sus API gestionadas, valida las solicitudes entrantes contra el esquema y aplica la acción configurada a las solicitudes que no cumplen con él. En la configuración de validación de esquema, puede habilitar o deshabilitar la función, configurar la acción predeterminada y cargar un archivo de esquema personalizado.

  1. En la consola de ESA, seleccione Websites y, en la columna Website, haga clic en el sitio de destino.

  2. En el panel de navegación izquierdo, elija Security > Websites.

  3. En la página Websites, haga clic en la pestaña Settings y luego haga clic en Configure dentro de la sección API Security para iniciar la configuración.

    image

  4. Complete la siguiente configuración según sus requisitos de negocio y luego haga clic en API Security:

    • Status: habilite o deshabilite la validación de esquema.

    • Default Action: seleccione la acción predeterminada que se aplicará a las solicitudes que no cumplan con el esquema. Están disponibles las siguientes acciones:

      • Schema Validation Settings: bloquea las solicitudes que no cumplen con el esquema y registra un registro de bloqueo. Para consultar los detalles, consulte Event analysis.

      • OK: permite las solicitudes que no cumplen con el esquema y genera un registro. Para consultar los detalles, consulte Event analysis.

      • None: no ejecuta ninguna acción.

    • Uploaded Schema: cargue un archivo de esquema personalizado. ESA analiza sintácticamente el archivo de forma automática y lo usa como regla de validación de cumplimiento de la API.

      image

Agregar un token

Agregue la información de JSON Web Token (JWT) en Block y luego refiriérala en API token compliance validation para autenticar a los visitantes.

  1. En la consola de ESA, seleccione Websites y, en la columna Monitor, haga clic en el sitio de destino.

  2. En el panel de navegación izquierdo, elija Security > API Security.

  3. En la página Token Configuration, haga clic en la pestaña Websites y luego haga clic en Websites dentro de la sección Website para iniciar la configuración.

    image

  4. Especifique los siguientes parámetros del token según sus requisitos de negocio.

    • Website: introduzca un nombre de token personalizado, por ejemplo, JWT-Demo.

    • Token Location: seleccione dónde se ubica el token en la solicitud. Puede seleccionar el campo Header o Settings y luego introducir la clave correspondiente.

      Si su negocio utiliza JWT ubicados en distintas partes de la solicitud, haga clic en Add para crear una condición lógica OR. Es posible evaluar hasta cuatro ubicaciones de token al mismo tiempo.

    • Token Configuration: agregue la clave del token de forma manual o mediante la carga de un archivo JSON. Para conocer los requisitos de la clave, consulte JWK fields.

      Si configura varias claves, ESA selecciona una clave con base en el campo kid para la validación. La validación se aprueba si alguna de las claves valida correctamente el token.

      image

Especificaciones del archivo de esquema

Tipo y tamaño

Los archivos de validación de esquema deben tener formato .yml, .yaml o .json. El tamaño máximo del archivo es de 58 KB. Si su archivo de esquema supera este límite, use el formato .json y comprima el archivo de manera local antes de cargarlo.

Contenido del esquema

Versión

La validación de esquemas de ESA solo admite OpenAPI Specification (OAS) v3.0.x.

Campos

Campos obligatorios

  • openapi: la versión de la API, por ejemplo, 3.0.0.

  • info: metadatos sobre la API, por ejemplo, "version": "1.0.0".

  • paths: debe contener como mínimo una ruta de API, por ejemplo, /api.

  • servers: información sobre el host. Se admiten los siguientes subcampos:

    • url: solo se admiten URL absolutas, por ejemplo, https://api.example.com.

    • variables: ESA no admite variables de servidor. Los marcadores de posición de variables se ignoran durante el análisis sintáctico.

Campos opcionales

  • schema: la definición de la estructura de datos. Se admiten los siguientes tipos:

    • int32

    • uint32

    • int64

    • uint64

    • float

    • double

    • boolean

    • email

  • reference: usa $ref para hacer referencia a un objeto predefinido. No se admiten referencias externas ni relativas.

  • requestBody: define el cuerpo de la solicitud. Solo se admiten datos con un content-type igual a application/json.

Ejemplo

A continuación se muestra un ejemplo de un archivo de esquema .json.
{
    "openapi": "3.0.0",
    "info": {
        "title": "example",
        "description": "example",
        "version": "1.0"
    },
    "servers": [
    {
      "url": "https://example1.aliyun.com",
      "description": "example1 url"
    },
    {
      "url": "https://example2.aliyun.com",
      "description": "example2 url"
    }
    ],
    "components": {
        "schemas": {
            "ParamsObject": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "value"
                ]
            }
        }
    },
    "paths": {
        "/example/{param1}": {
            "get": {
                "operationId": "getexampleById",
                "parameters": [
                    {
                        "name": "param1",
                        "in": "path",
                        "required": true,
                        "description": "id",
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    }
                ]
            }
        },
        "/api1": {
            "post": {
                "operationId": "post_api1",
                "summary": "post api1 request",
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ParamsObject"
                            }
                        }
                    }
                }
            },
            "get" :{
                "operationId": "get_api1",
                "summary": "get api1 request",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        }
    }
}

Especificaciones del archivo de esquema

Tipo y tamaño

Los archivos de validación de esquema deben tener formato .yml, .yaml o .json. El tamaño máximo del archivo es de 58 KB. Si su archivo de esquema supera este límite, use el formato .json y comprima el archivo de manera local antes de cargarlo.

Contenido del esquema

Versión

La validación de esquemas de ESA solo admite OpenAPI Specification (OAS) v3.0.x.

Campos

Campos obligatorios

  • openapi: la versión de la API, por ejemplo, 3.0.0.

  • info: metadatos sobre la API, por ejemplo, "version": "1.0.0".

  • paths: debe contener como mínimo una ruta de API, por ejemplo, /api.

  • servers: información sobre el host. Se admiten los siguientes subcampos:

    • url: solo se admiten URL absolutas, por ejemplo, https://api.example.com.

    • variables: ESA no admite variables de servidor. Los marcadores de posición de variables se ignoran durante el análisis sintáctico.

Campos opcionales

  • schema: la definición de la estructura de datos. Se admiten los siguientes tipos:

    • int32

    • uint32

    • int64

    • uint64

    • float

    • double

    • boolean

    • email

  • reference: usa $ref para hacer referencia a un objeto predefinido. No se admiten referencias externas ni relativas.

  • requestBody: define el cuerpo de la solicitud. Solo se admiten datos con un content-type igual a application/json.

Ejemplo

A continuación se muestra un ejemplo de un archivo de esquema .json.
{
    "openapi": "3.0.0",
    "info": {
        "title": "example",
        "description": "example",
        "version": "1.0"
    },
    "servers": [
    {
      "url": "https://example1.aliyun.com",
      "description": "example1 url"
    },
    {
      "url": "https://example2.aliyun.com",
      "description": "example2 url"
    }
    ],
    "components": {
        "schemas": {
            "ParamsObject": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "value"
                ]
            }
        }
    },
    "paths": {
        "/example/{param1}": {
            "get": {
                "operationId": "getexampleById",
                "parameters": [
                    {
                        "name": "param1",
                        "in": "path",
                        "required": true,
                        "description": "id",
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    }
                ]
            }
        },
        "/api1": {
            "post": {
                "operationId": "post_api1",
                "summary": "post api1 request",
                "parameters": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ParamsObject"
                            }
                        }
                    }
                }
            },
            "get" :{
                "operationId": "get_api1",
                "summary": "get api1 request",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer",
                            "format": "int32"
                        }
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        }
    }
}