Definisi API Keys
API Keys (Application Programming Interface Keys) adalah kode unik berupa deretan karakter alfanumerik yang berfungsi sebagai identitas autentikasi saat sebuah aplikasi atau pengguna mengakses layanan API dari penyedia pihak ketiga. Secara teknis, API Key bertindak sebagai 'kartu akses' yang memberi tahu server penyedia layanan siapa yang melakukan permintaan (request) dan apakah mereka memiliki izin untuk mengakses data atau fungsi tertentu.
Fungsi Utama API Keys
API Keys digunakan untuk mengelola lalu lintas data dan keamanan sistem. Berikut adalah fungsi utamanya:
- Autentikasi: Memastikan bahwa permintaan datang dari sumber yang sah.
- Otorisasi: Menentukan batasan akses, seperti data apa saja yang boleh diambil atau fungsi apa yang boleh dijalankan.
- Monitoring & Rate Limiting: Memungkinkan penyedia layanan melacak penggunaan API per pengguna dan menerapkan batasan jumlah permintaan (rate limit) untuk mencegah penyalahgunaan atau beban server berlebih.
- Penagihan (Billing): Dalam layanan berbayar, API Key digunakan untuk menghitung penggunaan sumber daya yang akan ditagihkan kepada pengguna.
| Fitur | Deskripsi |
|---|---|
| Format | String alfanumerik (contoh: AIzaSyD-example12345) |
| Fungsi Utama | Autentikasi & Identifikasi |
| Keamanan | Tidak boleh dibagikan (seperti password) |
| Scope | Dapat dibatasi (read-only, write-only, dll) |
Cara Kerja API Keys
Saat aplikasi Anda ingin berkomunikasi dengan server API, aplikasi tersebut akan menyertakan API Key dalam setiap permintaan (request). Biasanya, kunci ini dikirimkan melalui:
- Query Parameters: Disisipkan langsung di URL (contoh:
https://api.service.com/data?key=YOUR_API_KEY). - HTTP Headers: Disisipkan dalam header permintaan (contoh:
Authorization: Bearer YOUR_API_KEY).
Server penyedia akan memvalidasi kunci tersebut. Jika kunci valid dan memiliki izin yang cukup, server akan memberikan respons data. Jika kunci tidak valid, kedaluwarsa, atau tidak memiliki izin, server akan menolak permintaan dengan kode status HTTP 401 (Unauthorized) atau 403 (Forbidden).
Praktik Keamanan API Keys
API Key yang bocor dapat disalahgunakan oleh pihak tidak bertanggung jawab untuk mengakses data sensitif atau menghabiskan kuota penggunaan Anda. Berikut adalah langkah pengamanan wajib:
- Jangan Pernah Hardcode: Jangan menulis API Key langsung di dalam kode sumber (source code) yang akan diunggah ke repositori publik seperti GitHub. Gunakan Environment Variables (.env).
- Gunakan API Restrictions: Jika penyedia layanan menyediakan fitur ini, batasi API Key hanya untuk IP tertentu atau domain tertentu (HTTP Referrer).
- Rotasi Kunci: Lakukan penggantian API Key secara berkala untuk meminimalisir risiko jika kunci lama pernah terekspos.
- Prinsip Least Privilege: Berikan izin akses seminimal mungkin yang dibutuhkan oleh aplikasi Anda.
Perbedaan API Key vs OAuth
Sering terjadi kebingungan antara API Key dan OAuth. Berikut adalah tabel perbandingannya:
| Aspek | API Key | OAuth (Token) |
|---|---|---|
| Tujuan | Identifikasi aplikasi | Delegasi akses pengguna |
| Kompleksitas | Sederhana | Lebih kompleks |
| Keamanan | Lebih rendah (statis) | Lebih tinggi (dinamis/token) |
| Penggunaan | Akses publik/data umum | Akses data pribadi pengguna |