Apa persamaan antara YouTube, Google Maps, X, Spotify, dan OpenWeatherMap? Anda bisa menyematkan kontennya di luar habitat aslinya. Hal ini dimungkinkan berkat antarmuka pemrograman aplikasi (application programming interface/API).
API pada dasarnya merupakan sarana komunikasi antara dua jenis perangkat lunak, misalnya situs web dengan daftar putar Spotify yang ingin disematkan. API menyediakan akses publik yang luas ke berbagai alat digital. Namun, layaknya sebuah gedung dengan akses terbatas, Anda harus membatasi siapa yang diizinkan untuk mencegah penyalahgunaan. Di sinilah kunci API (API key) berperan.
Apa itu kunci API?
Kunci API adalah pengenal unik yang dapat mengautentikasi permintaan yang dibuat ke sebuah antarmuka pemrograman aplikasi (API). Teknologi API memungkinkan versi dari sebuah produk perangkat lunak muncul di situs web pihak ketiga.
Jika pernah menekan tombol putar pada playlist Spotify di sebuah blog atau berinteraksi dengan widget Google Maps di situs web sebuah hotel, berarti Anda telah menggunakan API. Dan situs web yang dikunjungi tersebut menggunakan kunci API untuk mengakses API beserta datanya.
Kunci API dapat mengamankan antarmuka dengan memastikan hanya pengguna tertentu atau aplikasi yang berwenang saja yang dapat mengakses dan berinteraksi dengan API. Kunci API tertentu, atau API privat, mengontrol akses ke layanan atau data, yang pada dasarnya merupakan bentuk autentikasi pengguna untuk memvalidasi bahwa seseorang atau suatu entitas memiliki izin untuk mengakses informasi tersebut.
Kunci API publik vs. privat
Kunci API dapat mengidentifikasi proyek, memberikan otorisasi proyek, dan mengelola penggunaan aplikasi. Kunci ini juga memungkinkan penyedia API menetapkan batasan tentang siapa yang dapat mengakses informasi ini dan berapa kali, sehingga dapat mencegah penyalahgunaan, seperti spam atau kebocoran data. Ada dua jenis utama kunci yang mengontrol panggilan API (API call): kunci publik dan kunci privat. Berikut perbandingannya dari segi keamanan dan kerahasiaan:
Keamanan
Penggunaan aplikasi publik jarang membutuhkan pertukaran data yang sangat rahasia, sehingga kunci API publik tidak menawarkan tingkat perlindungan yang paling kuat.
Kunci API privat lebih aman dan Anda biasanya dapat menggunakannya untuk mengakses data sensitif atau melakukan operasi penting di dalam sebuah API. Sering kali kunci ini merupakan bagian dari aplikasi berpemilik atau alat pencatatan internal yang membutuhkan kunci API untuk tujuan keamanan. Kunci API privat mungkin juga memerlukan token rahasia atau mekanisme keamanan lainnya untuk meningkatkan pelacakan penggunaan aplikasi dan mencegah akses yang tidak sah. Kunci ini juga memungkinkan penyaringan log (melihat subset data berdasarkan berbagai kriteria) untuk melacak perilaku aplikasi yang berwenang dan mendeteksi potensi penyalahgunaan.
Kerahasiaan
Siapa saja dapat mengakses kunci API publik. Anda mungkin melihat karakter yang dibuat secara acak di header permintaan atau string kueri URL selama panggilan API. Jika mencermati URL panjang untuk sebuah video YouTube yang disematkan, mungkin akan terlihat kunci API unik di bagian akhir.
Tidak boleh membagikan kunci API privat, yang disimpan secara aman oleh aplikasi, kepada siapa pun.
Cara kerja kunci API
Kunci API memainkan peran penting dalam memastikan keamanan antarmuka pemrograman aplikasi. Kunci ini menawarkan kontrol akses sehingga hanya pengguna dan aplikasi yang disetujui yang dapat mengakses data sensitif di dalam sebuah API. Berikut ringkasan cara kunci API mengidentifikasi pengguna dan memberikan akses:
Pembuatan
Penyedia API membuat serangkaian karakter untuk setiap pengguna atau aplikasi yang perlu mengakses API. Kunci API unik ini berfungsi sebagai kredensial yang membuktikan bahwa permintaan berasal dari sumber yang berwenang.
Autentikasi
Ketika seorang pengguna membuat permintaan API, permintaan tersebut menyertakan kunci API. Server API memverifikasi kunci API terhadap basis data kunci yang berwenang. Jika kunci valid, server memberikan akses API. Untuk kunci yang tidak valid atau tidak ada, penyedia API menolak akses.
Akses aplikasi
Dengan permintaan API yang disetujui, server API akan mengizinkan akses ke sumber dayanya. Tingkat akses dan penggunaan API bergantung pada izin yang dimiliki kunci tersebut. Misalnya, jika kunci API mengidentifikasi pemohon sebagai akun pengembang, server mungkin memberikan akses penuh. Jika kunci mengidentifikasi lalu lintas dari aplikasi pihak ketiga, hal ini mungkin memicu akses yang jauh lebih terbatas ke layanan API.
Pembatasan laju
Untuk mencegah penyalahgunaan dan memastikan penggunaan yang adil, penyedia API sering kali menerapkan pembatasan laju (rate limiting), yaitu batas berapa kali sebuah aplikasi dapat membuat permintaan dalam periode tertentu, sehingga konsumsi API tetap berada pada tingkat yang wajar. Pembatasan laju memastikan bahwa banyak orang dan aplikasi yang berbeda memiliki akses ke API.
Keamanan
Meskipun kunci API berfungsi sebagai bentuk autentikasi dasar, Anda juga dapat menggabungkannya dengan mekanisme keamanan lain, seperti IP whitelisting, enkripsi, atau token OAuth, untuk mengidentifikasi lalu lintas aplikasi dan meningkatkan keamanan. Dalam semua kasus, Anda harus memperlakukan kunci API sebagai informasi sensitif dan menjaga kerahasiaannya. Anda tidak boleh membagikannya secara publik atau menuliskannya langsung ke dalam kode aplikasi (hardcode).
Penggunaan umum kunci API
- Mengontrol akses
- Otorisasi pengguna
- Mengidentifikasi pola penggunaan
- Memblokir lalu lintas yang tidak sah
- Mengotomatiskan integrasi dan tugas aplikasi
Administrator sistem menggunakan kunci API untuk mengontrol akses ke API, memastikan keamanan, dan memfasilitasi integrasi API. Kunci ini menawarkan lapisan keamanan penting terhadap pencuri data dan aplikasi pihak ketiga yang mungkin sebaliknya membebani API secara berlebihan. Berikut beberapa cara paling umum kunci API digunakan:
Mengontrol akses
Kunci API mengontrol akses ke data atau layanan sebuah API, sehingga memastikan hanya aplikasi yang berwenang yang dapat membuat panggilan API. Ketika produsen API memberikan kunci kepada aplikasi yang memintanya, mereka mengizinkan aplikasi tersebut untuk berinteraksi dengan layanan mereka, seperti mengambil data atau melakukan tindakan tertentu.
Kunci API privat sangat penting untuk mengamankan data sensitif, sedangkan kunci API publik cocok untuk operasi yang tidak terlalu sensitif. Kunci API proyek pada platform seperti Google Cloud Platform Console memungkinkan pengembang mengontrol akses berdasarkan proyek tertentu.
Otorisasi pengguna
Kunci API juga dapat dipasangkan dengan token autentikasi untuk otorisasi yang aman. Hal ini memastikan bahwa hanya pengguna yang terautentikasi dan berwenang yang dapat berinteraksi dengan API. Penggunaan kunci (baik memerlukan token autentikasi yang aman maupun tidak) akan memblokir lalu lintas anonim dan melindungi dari aktivitas yang berpotensi berbahaya.
Mengidentifikasi pola penggunaan
Kunci API membantu penyedia API mengidentifikasi pola penggunaan dengan melacak pengguna atau aplikasi mana yang berada di balik sebuah panggilan API. Pelacakan ini memungkinkan penyedia memantau penggunaan aplikasi, menetapkan batasan laju, dan mengoptimalkan layanan secara keseluruhan. Misalnya, kunci API YouTube mengidentifikasi seberapa sering aplikasi tertentu mengakses video atau data, dan kunci API Google Maps dapat melacak permintaan data lokasi.
Memblokir lalu lintas yang tidak sah
Kunci API dapat memblokir lalu lintas anonim dengan hanya memproses permintaan yang disertai kunci API yang valid. Kunci API privat memastikan hanya lalu lintas yang sah saja yang dapat memperoleh akses, sekaligus memblokir permintaan untuk mencegah aktivitas yang berpotensi berbahaya.
Mengotomatiskan integrasi dan tugas aplikasi
Anda dapat menggunakan kunci API untuk mengotomatiskan tugas untuk perangkat lunak atau sistem yang perlu berintegrasi dengan layanan pihak ketiga. Misalnya, pengembang menerapkan kunci API untuk mengotomatiskan pengambilan data dari sumber eksternal, seperti menggunakan kunci API YouTube untuk menarik data video ke dalam sebuah aplikasi. Pengelolaan kunci API membantu menjaga integrasi ini tetap aman dan andal.
Praktik terbaik dalam menggunakan kunci API
Penggunaan kunci API yang aman dan efisien akan mencegah akses tidak sah dari pengguna yang berniat jahat dan akan memungkinkan Anda mempertahankan kendali atas panggilan API serta otorisasi proyek. Berikut beberapa praktik terbaik yang dapat Anda terapkan saat menggunakan kunci API:
1. Simpan kunci API Anda dengan aman. Jangan pernah menyimpan kunci API dalam bentuk teks biasa di dalam aplikasi Anda; sebagai gantinya, gunakan metode aman seperti variabel lingkungan atau file konfigurasi terenkripsi untuk melindunginya.
2. Batasi akses jika memungkinkan. Berikan kunci API hanya dengan izin yang diperlukan untuk menjalankan fungsi yang dimaksudkan karena memberikan akses yang terlalu luas dapat menimbulkan konsekuensi yang tidak diinginkan.
3. Rotasikan kunci API Anda secara berkala. Sebagaimana pengguna internet sebaiknya mengganti kata sandinya, administrator sistem juga sebaiknya membuat ulang kunci API secara berkala untuk mengurangi risiko akses tidak sah.
4. Pantau penggunaan kunci. Lacak pola penggunaan kunci API untuk mendeteksi potensi pelanggaran keamanan atau akses tidak sah.
5. Terapkan pembatasan laju. Batasi jumlah permintaan yang dapat dibuat pengguna dengan sebuah kunci API dalam periode tertentu untuk mencegah penyalahgunaan dan memastikan penggunaan yang adil, sehingga perangkat lunak Anda tidak macet akibat banjir permintaan.
6. Gunakan alat pengelolaan kunci API. Pertimbangkan untuk menggunakan alat pengelolaan kunci API khusus guna menyederhanakan proses pembuatan, penyimpanan, penggantian, dan pencabutan kunci.
FAQ tentang kunci API
Bagaimana cara menyimpan kunci API?
Simpan kunci API dengan aman. Simpanlah menggunakan variabel lingkungan, file konfigurasi terenkripsi, atau alat pengelolaan kunci API khusus. Jangan pernah menuliskan kunci API langsung ke dalam kode sumber (hardcode).
Apa fungsi kunci API?
Kunci API mengautentikasi dan mengotorisasi aplikasi untuk mengakses dan berinteraksi dengan data atau layanan sebuah API. Kunci ini memastikan hanya pengguna yang disetujui (baik individu maupun aplikasi) yang dapat membuat permintaan API.
Siapa yang membutuhkan kunci API?
Jika perlu mengakses data atau fungsi dari sebuah antarmuka pemrograman aplikasi (API) berbasis web, maka diperlukan kunci API untuk memberi akses tersebut.

