All Products
Search
Document Center

Function Compute:Konfigurasikan autentikasi JWT untuk nama domain kustom

Last Updated:Apr 02, 2026

Autentikasi JWT memungkinkan Function Compute memverifikasi permintaan masuk di tingkat gerbang—sebelum mencapai fungsi Anda. Anda mengonfigurasi kumpulan Kunci Web JSON (JWKS) publik pada nama domain kustom, dan Function Compute menggunakannya untuk memvalidasi token dalam setiap permintaan serta meneruskan klaim yang telah diverifikasi langsung ke fungsi Anda. Dengan demikian, fungsi Anda hanya menangani logika bisnis tanpa perlu menyertakan kode autentikasi.

Untuk mengonfigurasi autentikasi JWT secara end-to-end, Anda perlu:

  1. Membuat pasangan kunci JWKS dan menjaga kerahasiaan kunci privat.

  2. Mengaktifkan autentikasi JWT pada nama domain kustom dan menempelkan kunci publik ke Konsol.

  3. Mengonfigurasi lokasi pembacaan token oleh Function Compute dalam setiap permintaan.

  4. (Opsional) Memetakan klaim JWT ke parameter fungsi.

  5. Membuat token uji dan memverifikasi konfigurasi dengan Postman.

Cara kerja

Autentikasi JWT untuk nama domain kustom mengikuti alur yang sama dengan autentikasi JWT untuk Pemicu HTTP. Proses ini menggunakan enkripsi asimetris: kunci privat menandatangani token, sedangkan kunci publik memverifikasinya.

image

Alurnya bekerja sebagai berikut:

  1. Klien mengirim permintaan autentikasi ke authorizer kustom, biasanya dengan username dan password.

  2. Authorizer memverifikasi kredensial, lalu menggunakan kunci privat untuk menghasilkan token JWT standar.

  3. Authorizer mengembalikan token ke klien. Klien menyimpannya di cache secara lokal.

  4. Klien mengirim permintaan bisnis yang menyertakan token ke Pemicu HTTP.

  5. Function Compute menggunakan kunci publik yang dikonfigurasi untuk memvalidasi token dalam permintaan tersebut.

  6. Jika validasi berhasil, Function Compute meneruskan permintaan ke fungsi Anda, termasuk klaim yang telah dipetakan.

  7. Fungsi memproses permintaan dan mengembalikan respons.

  8. Function Compute meneruskan respons ke klien.

Untuk informasi latar belakang tentang JWT dan autentikasi token, lihat Autentikasi token berbasis JWT dan Pengantar Token Web JSON.

Batasan

  • Function Compute mengautentikasi JWT menggunakan JWKS publik yang Anda konfigurasi untuk domain tersebut. Anda menghasilkan dan mendistribusikan JWT berdasarkan logika bisnis Anda sendiri.

  • Kunci Web JSON (JWK) tanpa ID kunci (kid) didukung. Paling banyak satu JWK dalam JWKS dapat memiliki kid yang tidak ditentukan atau kosong.

  • Beberapa JWK dapat dikonfigurasi untuk nama domain kustom. Function Compute mencocokkan kid pada token dengan JWK yang sesuai, lalu menggunakan kunci tersebut untuk verifikasi signature.

  • Token dapat dibaca dari parameter header, kueri, form, dan cookie.

  • Klaim dapat diteruskan sebagai parameter header, kueri, form, dan cookie.

Algoritma signature yang didukung:

Algoritma signaturealg nilai
RSASSA-PKCS1-v1_5RS256, RS384, atau RS512
RSASSA-PSSPS256, PS384, atau PS512
Elliptic Curve (ECDSA)ES256, ES384, atau ES512
HMACHS256, HS384, atau HS512
EdDSAEdDSA
Penting

HMAC menggunakan enkripsi simetris, yang kurang aman dibandingkan enkripsi asimetris. Gunakan algoritma asimetris bila memungkinkan. Saat menggunakan enkripsi asimetris, sertakan hanya informasi kunci publik dalam JWKS Anda. Gunakan HTTPS untuk melindungi token selama transmisi dan mencegah kebocoran token.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Konfigurasikan autentikasi JWT

Langkah 1: Buka pengaturan nama domain kustom

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih Advanced Features > Custom Domains.

  2. Di bilah navigasi atas, pilih wilayah tempat nama domain kustom Anda berada.

  3. Pada halaman Custom Domains, klik nama domain yang ingin Anda konfigurasi.

  4. Di pojok kanan atas, klik Modify.

Langkah 2: Aktifkan autentikasi JWT

Pada halaman Modify Custom Domain Name, atur Authentication Method menjadi JWT Authentication.

image.png

Langkah 3: Konfigurasikan JWKS

Autentikasi JWT memerlukan JWKS yang valid berisi kunci publik Anda. Anda dapat membuatnya menggunakan tool online seperti mkjwk.org. Jika Anda memiliki kunci privat dalam format PEM, gunakan tool seperti jwx untuk mengonversinya ke format JWKS.

Untuk membuat JWKS di mkjwk.org: atur Key Use, Algorithm, dan Show X.509, lalu klik Generate. Tool ini menghasilkan dua kunci:

  • ① Kunci privat — gunakan ini dalam kode Anda untuk menandatangani (menerbitkan) token JWT. Simpan kerahasiaannya.

  • ② Kunci publik — tempelkan ini ke dalam array keys di Konsol Function Compute.

imageimage

JWKS yang Anda tempelkan ke Konsol mengikuti struktur berikut:

{
    "keys": [
        {
            "alg": "RS256",
            "e": "AQAB",
            "kty": "RSA",
            "n": "u1LWgoomekdOMfB1lEe96OHehd4XRNCbZRm96RqwOYTTc28Sc_U5wKV2umDzolfoI682ct2BNnRRahYgZPhbOCzHYM6i8sRXjz9Ghx3QHw9zrYACtArwQxrTFiejbfzDPGdPrMQg7T8wjtLtkSyDmCzeXpbIdwmxuLyt_ahLfHelr94kEksMDa42V4Fi5bMW4cCLjlEKzBEHGmFdT8UbLPCvpgsM84JK63e5ifdeI9NdadbC8ZMiR--dFCujT7AgRRyMzxgdn2l-nZJ2ZaYzbLUtAW5_U2kfRVkDNa8d1g__2V5zjU6nfLJ1S2MoXMgRgDPeHpEehZVu2kNaSFvDUQ",
            "use": "sig"
        }
    ]
}

Langkah 4: Konfigurasikan lokasi token JWT

Pada bagian JWT Token Configuration, atur Read Position (Header, Cookie, Query Parameters, atau Form Parameters) dan nama parameter tempat Function Compute harus mencari token.

Jika Anda mengatur Read Position ke Header, tentukan nilai Remove Prefix. Function Compute akan menghapus awalan ini sebelum menguraikan token. Misalnya, jika Anda mengatur awalan ke Bearer, header permintaan Authorization: Bearer <token> menyebabkan Function Compute mengekstrak dan memvalidasi <token>.

image.png

Langkah 5: Konfigurasikan penerusan klaim (opsional)

Pada bagian JWT Claim Conversion, petakan klaim JWT ke parameter fungsi. Untuk setiap pemetaan, tentukan:

  • Mapping Parameter Position — lokasi penerusan klaim (Header, Cookie, Query Parameters, atau Form Parameters)

  • Nama klaim asli dalam token

  • Nama parameter yang diteruskan ke fungsi

image.png

Langkah 6: Simpan konfigurasi

Klik Save.

Verifikasi konfigurasi

Gunakan kunci privat yang dihasilkan pada bagian sebelumnya untuk membuat token JWT uji, lalu gunakan Postman untuk memastikan nama domain mengautentikasi permintaan dengan benar.

Buat token uji

  1. Instal modul PyJWT. Lihat PyJWT.

  2. Jalankan skrip Python berikut secara lokal untuk menghasilkan token. Ganti placeholder kunci privat dengan kunci privat X.509 PEM dari langkah pembuatan JWKS.

import jwt
import time

private_key = """
-----BEGIN PRIVATE KEY-----
<Your X.509 PEM private key>
-----END PRIVATE KEY-----
"""

headers = {
    "alg": "RS256",
    "typ": "JWT"
}

payload = {
    "sub": "1234567890",
    "name": "John Snow",
    "iat": int(time.time()),              # Waktu penerbitan token
    "exp": int(time.time()) + 60 * 60,   # Token kedaluwarsa dalam 1 jam
}

encoded = jwt.encode(payload=payload, key=private_key.encode(), headers=headers)
print("Generated token: %s" % encoded)

Uji dengan Postman

  1. Di Konsol Function Compute, buka Advanced Features > Custom Domains. Salin nama domain kustom Anda dan tempelkan ke kolom URL di Postman.

  2. Tambahkan header permintaan yang sesuai dengan pengaturan JWT Token Configuration Anda. Misalnya, jika nama parameternya adalah Authentication dan awalannya adalah Bearer:

    Penting

    Pastikan format JWT dalam header permintaan sesuai dengan pengaturan Remove Prefix yang dikonfigurasi. Jika terjadi ketidaksesuaian, error invalid or expired jwt akan dikembalikan.

    ParameterNilaiDeskripsi
    KeyAuthenticationNama parameter yang dikonfigurasi di JWT Token Configuration
    ValueBearer <your-jwt-token>Awalan yang dikonfigurasi, spasi, dan token yang dihasilkan pada langkah sebelumnya
  3. Klik Send dan periksa respons.

image.png

Jika penerusan klaim dikonfigurasi, respons akan mengonfirmasi bahwa klaim telah diteruskan ke fungsi. Misalnya, nametofunction adalah nama parameter yang diteruskan dari pemetaan klaim.

FAQ

Mengapa saya mendapatkan error "invalid or expired jwt"?

Function Compute menerima token tetapi menolaknya saat validasi. Penyebab yang mungkin adalah:

  • Signature atau format token Anda tidak valid.

  • Token Anda telah kedaluwarsa. Buat token baru.

  • ID kunci (kid) pada token tidak sesuai dengan JWKS yang dikonfigurasi untuk nama domain kustom Anda, atau JWK yang cocok tidak akurat.

Mengapa saya mendapatkan error "the jwt token is missing"?

Function Compute tidak dapat menemukan token dalam permintaan. Periksa apakah token ada dalam permintaan dan apakah Read Position serta nama parameter di JWT Token Configuration persis sesuai dengan lokasi pengiriman token Anda. Jika Read Position diatur ke Header, nilai header harus mencakup nilai Remove Prefix diikuti spasi sebelum token.

Apakah autentikasi JWT dikenai biaya tambahan?

Tidak. Autentikasi JWT tidak dikenai biaya tambahan. Function Compute menagih berdasarkan jumlah pemanggilan fungsi, terlepas dari apakah autentikasi JWT diaktifkan atau tidak.