Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Configurações de segurança da API

Última atualização: Aug 26, 2026

As configurações de segurança da API permitem gerenciar o Session ID, as Schema Validation Settings e a Token Configuration do Edge Security Accelerator (ESA) API Security em um único local. Os identificadores de sessão são usados principalmente pelo recurso de gerenciamento de API. A configuração de token é utilizada ao definir regras de API.

Adicionar um identificador de sessão

Os identificadores de sessão distinguem sessões individuais de uma API. O ESA coleta e analisa o tráfego das APIs marcadas e gera sugestões de limitação de taxa para elas.

  1. No console do ESA, selecione Websites e, na coluna Websites, clique em no site desejado.

  2. No painel de navegação à esquerda, escolha Websites > API Security.

  3. Na página Security, clique em na aba Settings e, em seguida, clique em API Security na seção Session ID para iniciar a configuração.

    image

  4. Selecione o tipo de identificador adequado às suas necessidades de negócio e insira o nome do cabeçalho personalizado correspondente. Estão disponíveis os seguintes tipos de identificador:

    • Add

    • Cookie

    • JWT claims: devem existir previamente ou ser criados agora.

      image

Configure validação de schema

Faça upload de um schema de API, como uma especificação OpenAPI. O ESA associa automaticamente o schema às suas APIs gerenciadas, valida as requisições recebidas com base nele e aplica a ação configurada às requisições não conformes. Nas configurações de validação de schema, você pode ativar ou desativar o recurso, definir a ação padrão e enviar um arquivo de schema personalizado.

  1. No console do ESA, selecione Websites e, na coluna Website, clique em no site desejado.

  2. No painel de navegação à esquerda, escolha Security > Websites.

  3. Na página Websites, clique em na aba Settings e, em seguida, clique em Configure na seção API Security para iniciar a configuração.

    image

  4. Preencha as configurações abaixo conforme suas necessidades de negócio e clique em API Security:

    • Status: Ative ou desative a validação de schema.

    • Default Action: Selecione a ação padrão a ser aplicada às requisições que não estiverem em conformidade com o schema. Estão disponíveis as seguintes ações:

      • Schema Validation Settings: Bloqueia requisições não conformes e registra um log de bloqueio. Para visualizar os detalhes, consulte Event analysis.

      • OK: Permite requisições não conformes e registra um log. Para visualizar os detalhes, consulte Event analysis.

      • None: Não executa nenhuma ação.

    • Uploaded Schema: Envie um arquivo de schema personalizado. O ESA analisa o arquivo automaticamente e o utiliza como regra de validação de conformidade da API.

      image

Adicionar um token

Adicione informações de JSON Web Token (JWT) na Block e faça referência a elas em API token compliance validation para autenticar visitantes.

  1. No console do ESA, selecione Websites e, na coluna Monitor, clique em no site desejado.

  2. No painel de navegação à esquerda, escolha Security > API Security.

  3. Na página Token Configuration, clique em na aba Websites e, em seguida, clique em Websites na seção Website para iniciar a configuração.

    image

  4. Especifique os seguintes parâmetros de token conforme suas necessidades de negócio.

    • Website: Insira um nome personalizado para o token, como JWT-Demo.

    • Token Location: Selecione onde o token está localizado na requisição. É possível selecionar o campo Header ou Settings e inserir a chave correspondente.

      Para acomodar JWTs residentes em locais diferentes no seu negócio, clique em Add para criar uma condição lógica OR. Você pode avaliar até quatro locais de token simultaneamente.

    • Token Configuration: Adicione a chave do token inserindo-a manualmente ou enviando um arquivo JSON. Para requisitos de chave, consulte JWK fields.

      Se você configurar várias chaves, o ESA selecionará uma chave com base no campo kid para validação. A validação será aprovada se qualquer uma das chaves validar o token com sucesso.

      image

Especificações do arquivo de schema

Tipo e tamanho

Os arquivos de validação de schema devem estar no formato .yml, .yaml ou .json. O tamanho máximo do arquivo é 58 KB. Caso seu arquivo de schema exceda esse limite, utilize o formato .json e compacte-o localmente antes de fazer o upload.

Conteúdo do schema

Versão

A validação de schema do ESA suporta apenas OpenAPI Specification (OAS) v3.0.x.

Campos

Campos obrigatórios

  • openapi: A versão da API, como 3.0.0.

  • info: Metadados sobre a API, como "version": "1.0.0".

  • paths: Deve conter pelo menos um caminho de API, como /api.

  • servers: Informações sobre o host. Há suporte para os seguintes subcampos:

    • url: Apenas URLs absolutas são suportadas, como https://api.example.com.

    • variables: O ESA não suporta variáveis de servidor. Espaços reservados para variáveis são ignorados durante a análise.

Campos opcionais

  • schema: A definição da estrutura de dados. Há suporte para os seguintes tipos:

    • int32

    • uint32

    • int64

    • uint64

    • float

    • double

    • boolean

    • email

  • reference: Usa $ref para referenciar um objeto predefinido. Referências externas ou relativas não são suportadas.

  • requestBody: Define o corpo da requisição. Apenas dados com content-type igual a application/json são suportados.

Exemplo

Abaixo está um exemplo de um arquivo de schema .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"
                        }
                    }
                ]
            }
        }
    }
}

Especificações do arquivo de schema

Tipo e tamanho

Os arquivos de validação de schema devem estar no formato .yml, .yaml ou .json. O tamanho máximo do arquivo é 58 KB. Caso seu arquivo de schema exceda esse limite, utilize o formato .json e compacte-o localmente antes de fazer o upload.

Conteúdo do schema

Versão

A validação de schema do ESA suporta apenas OpenAPI Specification (OAS) v3.0.x.

Campos

Campos obrigatórios

  • openapi: A versão da API, como 3.0.0.

  • info: Metadados sobre a API, como "version": "1.0.0".

  • paths: Deve conter pelo menos um caminho de API, como /api.

  • servers: Informações sobre o host. Há suporte para os seguintes subcampos:

    • url: Apenas URLs absolutas são suportadas, como https://api.example.com.

    • variables: O ESA não suporta variáveis de servidor. Espaços reservados para variáveis são ignorados durante a análise.

Campos opcionais

  • schema: A definição da estrutura de dados. Há suporte para os seguintes tipos:

    • int32

    • uint32

    • int64

    • uint64

    • float

    • double

    • boolean

    • email

  • reference: Usa $ref para referenciar um objeto predefinido. Referências externas ou relativas não são suportadas.

  • requestBody: Define o corpo da requisição. Apenas dados com content-type igual a application/json são suportados.

Exemplo

Abaixo está um exemplo de um arquivo de schema .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"
                        }
                    }
                ]
            }
        }
    }
}