As configurações de segurança da API permitem o gerenciamento centralizado de Session Identifiers, Schema Validation Settings e Token Configurations.
Adicionar um identificador de sessão
Os identificadores de sessão servem para identificar sessões individuais de API. O ESA coleta e analisa o tráfego das APIs marcadas e gera sugestões de limitação de taxa para ajudar você a ajustar seus serviços dinamicamente.
No console do ESA, escolha Websites. Na coluna Websites, clique em Websites no site desejado.
No painel de navegação à esquerda, escolha .
Na página API Security, clique em Settings. Na seção Session Identifier, clique em Add.

Selecione um tipo de identificador: Header, Cookie ou JWT claims (requer uma claim existente ou nova) e insira o nome correspondente.

Definir validação de esquema
Após o upload de um esquema de API, o ESA o associa automaticamente às APIs gerenciadas que estejam em conformidade com esse esquema. O ESA valida as requisições recebidas quanto à conformidade e as processa de acordo com as ações configuradas.
No console do ESA, escolha Websites. Na coluna Website, clique em Websites no site desejado.
No painel de navegação à esquerda, escolha .
Na página Security, clique em API Security. Na seção Schema Validation Settings, clique em Configure.

-
Configure as definições conforme necessário e clique em OK.
Status: Ative ou desative o recurso de validação de esquema.
-
Default Action: Selecione a ação padrão para requisições que não estiverem em conformidade com o esquema. As ações disponíveis são:
Block: Bloqueia requisições não conformes e registra um log de bloqueio. Para mais informações, consulte Análise de eventos.
Monotor: Permite requisições não conformes e registra um log. Para mais informações, consulte Análise de eventos.
None: Não executa nenhuma ação e não registra log.
Uploaded Schemas: Os arquivos de esquema enviados. O ESA analisa esses arquivos automaticamente e os utiliza como regras de validação de conformidade de API. Para mais informações, consulte Especificações de arquivo de esquema.

Adicionar um token
Adicione informações de JSON Web Token (JWT) na seção Token Configuration. Essas informações podem ser referenciadas nas Regras de API para verificação de identidade do visitante.
Especificações de arquivo de esquema
Tipo e tamanho
Os arquivos de validação de esquema devem estar no formato .yml, .yaml ou .json. O tamanho máximo do arquivo é de 58 KB. Caso seu arquivo de esquema exceda esse limite, utilize o formato .json e compacte o arquivo localmente antes de fazer o upload.
Conteúdo do esquema
Versão
A validação de esquema do ESA suporta apenas a OpenAPI Specification (OAS) v3.0.x.
Campos
Campos obrigatórios
openapi: A versão da API, como3.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. Os seguintes subcampos são suportados:url: Apenas URLs absolutas são suportadas, comohttps://api.example.com.variables: O ESA não suporta variáveis de servidor. Os placeholders de variáveis são ignorados durante a análise.
Campos opcionais
-
schema: A definição da estrutura de dados. Os seguintes tipos são suportados:int32
uint32
int64
uint64
float
double
boolean
email
reference: Utiliza$refpara referenciar um objeto predefinido. Referências externas ou relativas não são suportadas.requestBody: Define o corpo da requisição. Apenas dados comcontent-typeigual aapplication/jsonsão suportados.
Exemplo
A seguir, um exemplo de arquivo 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"
}
}
]
}
}
}
}
