Pengaturan keamanan API memungkinkan pengelolaan terpusat untuk Session Identifiers, Schema Validation Settings, dan Token Configurations.
Tambahkan pengenal sesi
Pengenal sesi digunakan untuk mengidentifikasi sesi API individu. ESA mengumpulkan dan menganalisis lalu lintas untuk API yang ditandai serta menghasilkan saran pembatasan laju guna membantu Anda menyesuaikan layanan secara dinamis.
Di konsol ESA, pilih Websites. Di kolom Website, klik situs web target.
Di panel navigasi kiri, pilih .
Di halaman API Security, klik tab Settings. Di bagian Session Identifier, klik Add.

Pilih tipe pengenal: Header, Cookie, atau JWT claim (memerlukan klaim baru atau yang sudah ada), lalu masukkan nama yang sesuai.

Atur validasi skema
Setelah Anda mengunggah skema API, ESA secara otomatis mencocokkannya dengan API yang dikelola sesuai dengan skema tersebut. ESA memvalidasi permintaan masuk untuk kepatuhan dan memprosesnya sesuai dengan aksi yang dikonfigurasi.
Di konsol ESA, pilih Websites. Di kolom Website, klik situs target.
Di panel navigasi kiri, pilih .
Di halaman API Security, klik tab Settings. Di bagian Schema Validation Settings, klik Configure.

Konfigurasikan pengaturan sesuai kebutuhan, lalu klik OK.
Status: Aktifkan atau nonaktifkan fitur validasi skema.
Default Action: Pilih aksi default untuk permintaan yang tidak sesuai dengan skema. Aksi yang tersedia adalah:
Uploaded Schemas: File skema yang diunggah. ESA secara otomatis mengurai file-file ini dan menggunakannya sebagai aturan validasi kepatuhan API. Untuk informasi lebih lanjut, lihat Spesifikasi File Skema.

Tambahkan token
Tambahkan informasi JSON Web Token (JWT) di bagian Token Configuration. Informasi ini kemudian dapat dirujuk dalam Aturan API untuk verifikasi identitas pengunjung.
Di konsol ESA, pilih Websites. Di kolom Website, klik situs web target.
Di panel navigasi kiri, pilih .
Di halaman API Security, klik tab Settings. Di bagian Token Configuration, klik Add.

Konfigurasikan parameter token sesuai kebutuhan, lalu klik OK:
Name: Masukkan nama kustom untuk token, seperti
JWT-Demo.Token Location: Pilih lokasi token dalam permintaan. Pilih Header atau Cookie lalu masukkan kunci.
CatatanUntuk memeriksa token di lokasi berbeda, Anda dapat mengklik Or untuk membuat kondisi logika
OR. Anda dapat memeriksa hingga empat lokasi token secara bersamaan.Token Key: Masukkan kunci token secara manual atau unggah file JSON. Untuk informasi lebih lanjut tentang persyaratan kunci, lihat Detail Token.
CatatanJika Anda mengonfigurasi beberapa kunci, ESA menggunakan bidang
kiduntuk memilih kunci untuk validasi. Permintaan dianggap valid jika divalidasi oleh salah satu kunci.

Spesifikasi skema
Format file dan ukuran
Format: File skema harus dalam format
.yml,.yaml, atau.json.Ukuran: Ukuran file maksimum adalah 58 KB. Untuk skema yang lebih besar, gunakan format
.jsondan kompres sebelum mengunggah.
Isi skema
Versi
ESA validasi arsitektur keamanan API saat ini hanya mendukung OpenAPI Specification (OAS) v3.0.x.
Bidang
Bidang Wajib
openapi: String versi OAS (misalnya,3.0.0).info: Metadata tentang API, termasukversion(misalnya,1.0.0).paths: Informasi host tempat API disajikan.servers: Informasi host tempat API disajikan:url: Hanya URL absolut yang didukung, sepertihttps://api.example.com.variables: Variabel server tidak didukung dan akan diabaikan selama penguraian.
Bidang Opsional
schema: Definisi struktur data. Jenis berikut didukung:int32
uint32
int64
uint64
float
double
boolean
email
reference: Menggunakan$refuntuk menunjuk ke objek yang telah ditentukan. Referensi eksternal dan relatif tidak didukung.requestbody: Mendefinisikan badan permintaan. Hanya data dengancontent-typedariapplication/jsonyang didukung.
Contoh
Berikut adalah contoh file skema .json.{
"openapi": "3.0.0",
"info": {
"title": "contoh",
"description": "contoh",
"version": "1.0"
},
"servers": [
{
"url": "https://example1.aliyun.com",
"description": "url example1"
},
{
"url": "https://example2.aliyun.com",
"description": "url example2"
}
],
"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": "permintaan post api1",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ParamsObject"
}
}
}
}
},
"get" :{
"operationId": "get_api1",
"summary": "permintaan get api1",
"parameters": [
{
"name": "id",
"in": "query",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "name",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
}
]
}
}
}
}Detail token
Validasi token saat ini hanya tersedia untuk JWT.
Deskripsi bidang
Kunci publik harus dalam format JSON Web Key (JWK). Kunci publik JWK harus berisi bidang kid dan alg. Bidang-bidang tersebut dijelaskan sebagai berikut:
kty: Jenis kunci, sepertiECuntuk Kurva Elips.use: Penggunaan yang dimaksudkan untuk kunci publik, sepertisiguntuk tanda tangan digital.crv: Jenis kurva elips, sepertiP-256untuk kurva P-256 standar NIST.kid: Pengenal kunci kustom, sepertiesa. JWK harus menyertakan bidangkiduntuk memungkinkan pemilihan kunci. Klaim JWT dalam permintaan juga harus menyertakan bidangkid. Bidang ini digunakan untuk rotasi kunci token.x: Koordinat x dari kunci publik kurva elips.y: Koordinat y dari kunci publik kurva elips.alg: Pengenal algoritma. Saat ini hanyaES256yang didukung, yaitu algoritma tanda tangan ECDSA dengan SHA-256.
Contoh
{
"kty": "EC",
"use": "sig",
"crv": "P-256",
"kid": "esa",
"x": "QG3VFVwUX4IatQvBy7sqBvvmticCZ-eX5-nbtGKBOfI",
"y": "A3PXCshn7XcG7Ivvd2K_DerW4LHAlIVKdqhrUnczTD0",
"alg": "ES256"
}