Tous les produits
Search
Centre de documentation

Edge Security Acceleration:Paramètres de sécurité des API

Dernière mise à jour :Aug 26, 2026

Les paramètres de sécurité des API permettent de gérer l'identifiant de session, les paramètres de validation du schéma et la configuration des jetons pour la sécurité des API d'Edge Security Accelerator (ESA) depuis une interface centralisée. Les identifiants de session sont principalement utilisés par la fonctionnalité de gestion des API. La configuration des jetons intervient lors de la définition des règles API.

Ajouter un identifiant de session

Les identifiants de session permettent d'identifier les sessions individuelles d'une API. ESA collecte et analyse le trafic des API balisées, puis génère des suggestions de limitation de débit adaptées.

  1. Dans la console ESA, sélectionnez Websites, puis cliquez sur le site cible dans la colonne Websites.

  2. Dans le volet de navigation de gauche, choisissez Websites > API Security.

  3. Sur la page Security, cliquez sur l'onglet Settings, puis sur API Security dans la section Session ID pour démarrer la configuration.

    image

  4. Sélectionnez le type d'identifiant correspondant à vos besoins métier, puis saisissez le nom d'en-tête personnalisé associé. Les types d'identifiants disponibles sont les suivants :

    • Add

    • Cookie

    • JWT claims (doivent déjà exister ou être créés immédiatement)

      image

Configurer la validation du schéma

Importez un schéma d'API, tel qu'une spécification OpenAPI. ESA le met en correspondance automatiquement avec vos API gérées, valide les requêtes entrantes par rapport au schéma et applique l'action configurée aux requêtes non conformes. Dans les paramètres de validation du schéma, vous pouvez activer ou désactiver la fonctionnalité, configurer l'action par défaut et importer un fichier de schéma personnalisé.

  1. Dans la console ESA, sélectionnez Websites, puis cliquez sur le site cible dans la colonne Website.

  2. Dans le volet de navigation de gauche, choisissez Security > Websites.

  3. Sur la page Websites, cliquez sur l'onglet Settings, puis sur Configure dans la section API Security pour démarrer la configuration.

    image

  4. Renseignez les paramètres suivants selon vos besoins métier, puis cliquez sur API Security :

    • Status : activez ou désactivez la validation du schéma.

    • Default Action : sélectionnez l'action par défaut à appliquer aux requêtes non conformes au schéma. Les actions disponibles sont les suivantes :

      • Schema Validation Settings : bloque les requêtes non conformes et enregistre un journal de blocage. Pour plus de détails, consultez la rubrique Event analysis.

      • OK : autorise les requêtes non conformes et enregistre un journal. Pour plus de détails, consultez la rubrique Event analysis.

      • None : n'effectue aucune action.

    • Uploaded Schema : importez un fichier de schéma personnalisé. ESA analyse le fichier automatiquement et l'utilise comme règle de validation de conformité des API.

      image

Ajouter un jeton

Ajoutez les informations JSON Web Token (JWT) dans la section Block, puis référencez-les dans la fonctionnalité API token compliance validation afin d'authentifier les visiteurs.

  1. Dans la console ESA, sélectionnez Websites, puis cliquez sur le site cible dans la colonne Monitor.

  2. Dans le volet de navigation de gauche, choisissez Security > API Security.

  3. Sur la page Token Configuration, cliquez sur l'onglet Websites, puis sur Websites dans la section Website pour démarrer la configuration.

    image

  4. Spécifiez les paramètres de jeton suivants en fonction de vos besoins métier.

    • Website : saisissez un nom de jeton personnalisé, par exemple JWT-Demo.

    • Token Location : sélectionnez l'emplacement du jeton dans la requête. Vous pouvez choisir le champ Header ou Settings, puis saisir la clé correspondante.

      Pour prendre en charge les JWT situés à différents emplacements dans votre environnement métier, cliquez sur Add afin de créer une condition logique OR. Vous pouvez évaluer jusqu'à quatre emplacements de jeton simultanément.

    • Token Configuration : ajoutez la clé du jeton en la saisissant manuellement ou en important un fichier JSON. Pour connaître les exigences relatives aux clés, consultez la rubrique JWK fields.

      Si vous configurez plusieurs clés, ESA sélectionne une clé en fonction du champ kid pour la validation. La validation réussit si l'une des clés permet de valider le jeton correctement.

      image

Spécifications des fichiers de schéma

Type et taille

Les fichiers de validation de schéma doivent être au format .yml, .yaml ou .json. La taille maximale du fichier est de 58 Ko. Si votre fichier de schéma dépasse cette limite, utilisez le format .json et compressez le fichier localement avant de l'importer.

Contenu du schéma

Version

ESA ne prend en charge que la version 3.0.x de la spécification OpenAPI (OAS) pour la validation des schémas.

Champs

Champs obligatoires

  • openapi : version de l'API, par exemple 3.0.0.

  • info : métadonnées relatives à l'API, telles que "version": "1.0.0".

  • paths : doit contenir au moins un chemin d'API, par exemple /api.

  • servers : informations concernant l'hôte. Les sous-champs suivants sont pris en charge :

    • url : seules les URL absolues sont prises en charge, par exemple https://api.example.com.

    • variables : ESA ne prend pas en charge les variables de serveur. Les espaces réservés aux variables sont ignorés lors de l'analyse.

Champs facultatifs

  • schema : définition de la structure des données. Les types suivants sont pris en charge :

    • int32

    • uint32

    • int64

    • uint64

    • float

    • double

    • boolean

    • email

  • reference : utilise $ref pour référencer un objet prédéfini. Les références externes ou relatives ne sont pas prises en charge.

  • requestBody : définit le corps de la requête. Seules les données dont le content-type est application/json sont prises en charge.

Exemple

Voici un exemple de fichier de schéma au format .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"
                        }
                    }
                ]
            }
        }
    }
}

Spécifications des fichiers de schéma

Type et taille

Les fichiers de validation de schéma doivent être au format .yml, .yaml ou .json. La taille maximale du fichier est de 58 Ko. Si votre fichier de schéma dépasse cette limite, utilisez le format .json et compressez le fichier localement avant de l'importer.

Contenu du schéma

Version

ESA ne prend en charge que la version 3.0.x de la spécification OpenAPI (OAS) pour la validation des schémas.

Champs

Champs obligatoires

  • openapi : version de l'API, par exemple 3.0.0.

  • info : métadonnées relatives à l'API, telles que "version": "1.0.0".

  • paths : doit contenir au moins un chemin d'API, par exemple /api.

  • servers : informations concernant l'hôte. Les sous-champs suivants sont pris en charge :

    • url : seules les URL absolues sont prises en charge, par exemple https://api.example.com.

    • variables : ESA ne prend pas en charge les variables de serveur. Les espaces réservés aux variables sont ignorés lors de l'analyse.

Champs facultatifs

  • schema : définition de la structure des données. Les types suivants sont pris en charge :

    • int32

    • uint32

    • int64

    • uint64

    • float

    • double

    • boolean

    • email

  • reference : utilise $ref pour référencer un objet prédéfini. Les références externes ou relatives ne sont pas prises en charge.

  • requestBody : définit le corps de la requête. Seules les données dont le content-type est application/json sont prises en charge.

Exemple

Voici un exemple de fichier de schéma au format .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"
                        }
                    }
                ]
            }
        }
    }
}