All Products
Search
Document Center

Edge Security Acceleration:Pengaturan Keamanan API

Last Updated:Oct 31, 2025

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.

  1. Di konsol ESA, pilih Websites. Di kolom Website, klik situs web target.

  2. Di panel navigasi kiri, pilih Security > API Security.

  3. Di halaman API Security, klik tab Settings. Di bagian Session Identifier, klik Add.image

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

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.

  1. Di konsol ESA, pilih Websites. Di kolom Website, klik situs target.

  2. Di panel navigasi kiri, pilih Security > API Security.

  3. Di halaman API Security, klik tab Settings. Di bagian Schema Validation Settings, klik Configure.image

  4. 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:

      • Block: Memblokir permintaan yang tidak sesuai dan mencatat log blokir. Untuk informasi lebih lanjut, lihat Peristiwa.

      • Monotor: Mengizinkan permintaan yang tidak sesuai dan mencatat log. Untuk informasi lebih lanjut, lihat Peristiwa.

      • None: Tidak mengambil tindakan dan tidak mencatat log.

    • 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.

    image

Tambahkan token

Tambahkan informasi JSON Web Token (JWT) di bagian Token Configuration. Informasi ini kemudian dapat dirujuk dalam Aturan API untuk verifikasi identitas pengunjung.

  1. Di konsol ESA, pilih Websites. Di kolom Website, klik situs web target.

  2. Di panel navigasi kiri, pilih Security > API Security.

  3. Di halaman API Security, klik tab Settings. Di bagian Token Configuration, klik Add.image

  4. 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.

      Catatan

      Untuk 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.

      Catatan

      Jika Anda mengonfigurasi beberapa kunci, ESA menggunakan bidang kid untuk memilih kunci untuk validasi. Permintaan dianggap valid jika divalidasi oleh salah satu kunci.

    image

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 .json dan 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, termasuk version (misalnya, 1.0.0).

  • paths: Informasi host tempat API disajikan.

  • servers: Informasi host tempat API disajikan:

    • url: Hanya URL absolut yang didukung, seperti https://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 $ref untuk menunjuk ke objek yang telah ditentukan. Referensi eksternal dan relatif tidak didukung.

  • requestbody: Mendefinisikan badan permintaan. Hanya data dengan content-type dari application/json yang 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, seperti EC untuk Kurva Elips.

  • use: Penggunaan yang dimaksudkan untuk kunci publik, seperti sig untuk tanda tangan digital.

  • crv: Jenis kurva elips, seperti P-256 untuk kurva P-256 standar NIST.

  • kid: Pengenal kunci kustom, seperti esa. JWK harus menyertakan bidang kid untuk memungkinkan pemilihan kunci. Klaim JWT dalam permintaan juga harus menyertakan bidang kid. 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 hanya ES256 yang 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"
}