Diterbitkan: 11 Juni 2024
Kontributor: Gita Jackson, Michael Goodwin
Kunci API adalah pengenal unik yang digunakan untuk mengautentikasi perangkat lunak dan sistem yang mencoba mengakses perangkat lunak atau sistem lain melalui antarmuka pemrograman aplikasi, atau API.
API, atau antarmuka pemrograman aplikasi, adalah seperangkat aturan atau protokol yang memungkinkan aplikasi perangkat lunak untuk berkomunikasi satu sama lain untuk bertukar data, fitur, dan fungsionalitas. API menyediakan pemilik aplikasi dengan cara yang sederhana dan aman untuk membuat data dan fungsi aplikasi mereka tersedia bagi departemen di dalam organisasi mereka. Pemilik aplikasi juga dapat berbagi atau memasarkan data dan fungsi kepada mitra bisnis atau pihak ketiga. API memungkinkan untuk berbagi hanya informasi yang diperlukan, menjaga detail sistem internal lainnya tetap tersembunyi, yang membantu keamanan sistem.
Karena API dapat memberikan akses ke data sensitif, maka penting bagi API untuk memvalidasi bahwa aplikasi yang membuat permintaan memiliki wewenang untuk melakukannya. Menggunakan kunci API memungkinkan pengembang aplikasi untuk mengautentikasi aplikasi yang memanggil backend API demi memastikan bahwa mereka memiliki wewenang untuk melakukannya.
Meskipun kunci API dapat menjadi salah satu aspek untuk memastikan API perusahaan—dan data yang ditanganinya—aman, kunci API bukanlah solusi keamanan API yang pasti. Khususnya, kunci API tidak seaman token autentikasi atau protokol OAuth (otorisasi terbuka). Langkah-langkah ini lebih cocok untuk mengautentikasi pengguna manusia tertentu, memberikan organisasi kontrol yang lebih terperinci atas akses ke fungsi API tertentu dan dapat diatur untuk kedaluwarsa.
OAuth dapat digunakan dengan kunci API atau sendiri. Terkadang perusahaan mungkin menggunakan kunci API untuk beberapa pengguna tetapi menggunakan OAuth untuk pengguna lain. Ada metode lain untuk mengautentikasi panggilan ke API, seperti JSON Web Token (JWT), tetapi metode ini tidak terlalu umum digunakan.
Kunci API masih merupakan aspek yang berguna dari keamanan API, karena membantu organisasi memantau panggilan ke API dan mengelola konsumsi API, meningkatkan keamanan, dan memastikan bahwa program ini memiliki bandwidth yang memadai.
Baca smartpaper ini dan dapatkan wawasan tentang tantangan utama yang mendorong kebutuhan akan manajemen API, dan pahami kemampuan utama yang melekat pada solusi manajemen API yang efektif.
Berlangganan buletin IBM
Kunci API adalah rangkaian karakter alfanumerik unik yang dibuat secara acak yang digunakan API untuk mengautentikasi aplikasi yang melakukan panggilan ke API. Setiap kunci yang dikeluarkan penyedia API dikaitkan dengan klien API tertentu, seperti modul perangkat lunak. Kunci API memungkinkan server API untuk mengidentifikasi perangkat lunak dan aplikasi mana yang mengirim panggilan ke API. Kunci yang dihasilkan digunakan untuk setiap permintaan yang dibuat dari aplikasi atau proyek tersebut ke API terkait (hingga kunci diperbarui atau dihapus).
Prosesnya bekerja seperti ini:
Ketika sebuah aplikasi melakukan panggilan ke API untuk meminta fungsi atau data dari aplikasi lain, server API menggunakan kunci API untuk memvalidasi keaslian aplikasi. Untuk aplikasi web dan REST API, kunci dapat dikirim sebagai header, dalam string kueri, atau sebagai cookie. Jika kunci API cocok dengan kunci yang disetujui, server mengirimkan data yang diminta. Jika tidak, server menyangkal panggilan dan mengirim pesan penolakan.
Pengembang dapat menambahkan lebih banyak validasi dan batasan jika diperlukan.
Sebagai contoh, pengembang dapat mengonfigurasi hak akses untuk aplikasi atau proyek yang hanya mengizinkan akses ke jenis data atau fungsi tertentu. Pengembang juga dapat mengatur pembatasan aplikasi yang menentukan situs web, alamat IP, aplikasi (atau aplikasi seluler), dan kit pengembangan perangkat lunak (SDK) mana yang dapat menggunakan kunci API.
Meskipun kunci API adalah bagian dari keamanan API, kunci tersebut seharusnya bukan satu-satunya cara organisasi mengautentikasi dan memvalidasi panggilan yang dilakukan ke API. Faktanya, meskipun kunci API berguna, kunci ini bukan metode yang sangat aman untuk mengautentikasi panggilan. Kunci API dapat mengidentifikasi aplikasi atau proyek tertentu, tetapi tidak dapat memvalidasi pengguna individu yang menggunakan aplikasi yang melakukan panggilan. Hal ini menjadikan kunci API pilihan yang buruk untuk memberlakukan kontrol akses API. Kunci API hanya menawarkan identifikasi proyek dan otorisasi proyek, bukan identifikasi pengguna atau otorisasi pengguna.
Pikirkan kunci API seperti kata sandi: ini adalah satu lapisan keamanan, tetapi juga potensi titik kegagalan untuk pelanggaran keamanan. Seperti kata sandi, siapa pun yang memiliki akses ke kunci API dapat menggunakannya. Tidak ada cara untuk memverifikasi siapa yang menggunakan kunci; dan kunci jarang kedaluwarsa kecuali jika dibuat ulang secara khusus.
Kunci API yang digunakan dengan aplikasi web tidak dianggap aman melalui protokol transfer hypertext biasa (hypertext transfer protocol atau HTTP) karena kunci tersebut mengirimkan kredensial yang tidak terenkripsi. Agar dianggap aman, aplikasi web harus memiliki sertifikasi lapisan soket yang aman (secure sockets layer atau SSL), atau dikenal sebagai protokol transfer teks aman (hypertext transfer protocol secure atau HTTPS).
Metode validasi lain untuk panggilan API meliputi:
Dikenal pula sebagai token API, token autentikasi memberikan lapisan keamanan API tambahan karena dapat mengidentifikasi pengguna tertentu, bukan hanya aplikasi yang membuat permintaan. Token ini adalah potongan kode yang mengidentifikasi pengguna API yang datanya mereka minta. Karena berupa beberapa baris kode dan bukan serangkaian alfanumerik tunggal, token ini memberikan informasi lebih lanjut kepada API tentang orang atau proyek mana yang membuat permintaan. Token API juga dapat dibuat dengan cakupan terbatas, dengan hanya memberikan akses ke informasi tertentu untuk periode terbatas.
Protokol OAuth (otorisasi terbuka) adalah bagian dari metode standar industri untuk mengesahkan dan mengautentikasi panggilan ke API ketika digunakan dengan OpenID Connect (OIDC). Protokol OAuth adalah aspek yang memberikan akses kepada pengguna ke informasi yang diminta dan digunakan dalam proses autentikasi pengguna yang lebih luas.
OAuth menggunakan semacam token API yang disebut token akses. Token akses dikeluarkan untuk pengguna oleh API yang mereka minta aksesnya. Token-token ini, melalui serangkaian komunikasi antara API dan pengguna, memberikan akses ke informasi spesifik yang diminta pengguna tanpa perlu berbagi kredensial atau informasi aman lainnya dengan API.
OpenID Connect adalah protokol autentikasi yang dibangun di atas OAuth, yang memungkinkan OAuth untuk mengautentikasi pengguna dengan mengeluarkan token identitas serta token akses. Token identitas ini juga menyertakan informasi tentang akun tertentu yang membuat permintaan, bukan hanya proyek. OpenID Connect membuat sedikit penyesuaian pada alur otorisasi OAuth dengan memerlukan token akses dan token identitas sebelum memberikan akses ke API.
Kunci API dapat digunakan dengan bentuk autentikasi lain untuk panggilan API, atau dapat digunakan secara terpisah. Dalam perusahaan, API mungkin menggunakan berbagai jenis autentikasi dan otorisasi tergantung pada siapa yang meminta akses. Beberapa bagian dari organisasi, seperti pengembang, mungkin memerlukan akses tak terbatas ke API, sementara departemen lain memerlukan akses yang lebih terkontrol.
Ada dua jenis kunci API utama dan keduanya berperan dalam mengautentikasi panggilan API. Keduanya bahkan terkadang digunakan bersamaan.
Ini adalah kunci yang menyediakan akses ke data yang tidak sensitif, atau fungsi yang tidak memerlukan autentikasi pengguna. Kunci ini dapat dibagikan secara terbuka antara pengembang dan pemangku kepentingan lain yang bekerja dengan API.
Kunci privat digunakan untuk mengakses data sensitif dan mungkin juga memberikan akses tulis kepada pengguna kunci. Kunci API privat dapat digunakan dengan kunci publik untuk memberikan lapisan keamanan tambahan.
Kendati kunci API tidak boleh menjadi satu-satunya metode untuk mengautentikasi panggilan API, menggunakan kunci publik dan privat secara berpasangan dapat memberikan lapisan keamanan tambahan. Ketika dilakukan panggilan ke API, kunci privat dapat digunakan sebagai semacam tanda tangan digital untuk klien tertentu yang membutuhkan akses ke sejumlah fungsi spesifik API. Selanjutnya, kunci publik dapat memverifikasi tanda tangan dan mengonfirmasi kembali bahwa panggilan ke API itu sah.
Kunci API menyediakan fungsi yang berguna dalam organisasi di luar autentikasi sederhana. Karena membantu menentukan akses API, kunci-kunci ini juga dapat digunakan untuk menjaga aplikasi tetap aktif dan berjalan serta memberikan data yang berguna tentang bagaimana aplikasi tersebut digunakan.
Blokir lalu lintas anonim
Kunci API adalah aspek penting dari manajemen akses, yang memungkinkan organisasi untuk mengontrol pengguna mana yang dapat mengakses API mereka. Lalu lintas anonim ke API dapat menjadi indikator aktivitas berbahaya. Menggunakan kunci API memungkinkan organisasi untuk memblokir akses tidak sah ke API, seperti panggilan API anonim, yang dapat membatasi ruang lingkup potensi serangan siber. Membatasi layanan API dengan cara ini juga membantu mencegah API dibombardir dengan permintaan, sehingga meminimalkan kemungkinan waktu henti untuk aplikasi-aplikasi penting.
Mengontrol jumlah panggilan yang dilakukan ke API
Kunci API dapat digunakan untuk membatasi lalu lintas API, tindakan yang dikenal sebagai pembatasan kecepatan. Pembatasan kecepatan memungkinkan organisasi untuk mengontrol berapa banyak permintaan yang dibuat ke API oleh klien selama periode tertentu. Akses API ditolak setelah lalu lintas mencapai ambang batas yang ditentukan.
Dengan hanya mengizinkan lalu lintas aplikasi dalam parameter yang ditentukan, organisasi dapat mengoptimalkan penggunaan sumber daya dan bandwidth API. Pengaturan ini dapat ditentukan dalam dokumentasi API organisasi.
Pantau tren penggunaan API
Karena kunci API merupakan pengenal unik, organisasi dapat menggunakan kunci API untuk melacak lalu lintas dan panggilan yang dilakukan ke API. Dengan menggunakan kunci API, organisasi dapat melacak setiap panggilan yang dilakukan ke API kembali ke aplikasi tertentu. Mereka juga dapat menentukan jumlah panggilan yang dilakukan, jenis panggilan, rentang alamat IP pengguna, dan bahkan jika mereka menggunakan iOS atau Android.
Menganalisis pola penggunaan membantu organisasi lebih memahami bagian mana dari perusahaan yang paling sering mengakses titik akhir tertentu. Memantau lalu lintas dan memfilter log juga berguna untuk keamanan API. Dalam kasus serangan siber, memeriksa aktivitas pada server API terhadap kunci API tertentu dapat memberikan insight yang lebih besar kepada organisasi tentang serangan tersebut dan kunci mana yang mungkin telah disusupi.
Kunci API dapat membantu melindungi API, data, dan jaringan, tetapi hanya jika digunakan dengan cara yang aman. Banyak organisasi menggunakan metode ini untuk memastikan bahwa kunci API mereka aman dan mencegah API menjadi vektor serangan siber.
Menggabungkan beberapa metode autentikasi
kunci API tidak cukup aman untuk menjadi satu-satunya cara panggilan API diautentikasi. Kunci API tidak dapat memvalidasi pengguna individu dan dapat dengan mudah dibobol. Kunci API dapat menambahkan penghalang keamanan tambahan pada ekosistem API organisasi ketika digunakan dengan metode autentikasi lain seperti OAuth, JSON Web Tokens (JWT), atau token autentikasi.
Tidak jarang organisasi menggunakan lebih dari satu metode autentikasi. Misalnya, pengembang dapat menggunakan kunci API secara internal untuk menyediakan akses tak terbatas ke API selama pengembangan, tetapi kemudian menggunakan OAuth untuk klien luar karena OAuth menyediakan token yang kedaluwarsa dan dapat diatur untuk hanya mengizinkan akses ke data tertentu.
Penyimpanan kunci yang aman
Sering kali kunci dibuat dalam bentuk teks biasa. Layaknya kata sandi, keamanan kunci tersebut bergantung pada bagaimana dan di mana kunci tersebut disimpan. Profesional keamanan menyarankan agar kunci-kunci ini disimpan sebagai nilai hash dalam database sehingga tidak rentan terhadap pencurian.
Menyematkan kunci API dalam kode sumber atau repositori juga membuatnya rentan terhadap pelaku kejahatan—ketika aplikasi dipublikasikan, kunci tersebut juga dapat terekspos ke publik. Jika memungkinkan, gunakan brankas data yang aman dan terenkripsi untuk menyimpan kunci API yang dihasilkan.
Memutar atau mengganti kunci
Kunci API tidak akan kedaluwarsa kecuali pengembang menetapkan tanggal kedaluwarsa, atau jika pembuat kunci mencabut akses atau membuat ulang kunci. Jika pengguna yang tidak sah mendapatkan kunci API, mereka dapat mengakses data sensitif tanpa diketahui siapa pun dalam organisasi. Selain itu, mereka menggunakan kunci yang benar untuk mendapatkan data yang mereka minta.
Merotasi dan membuat kunci API baru setiap 90 hingga 180 hari dapat membantu menjaga keamanan API. Sebaiknya Anda juga menghapus kunci API yang tidak lagi digunakan. Untuk lapisan perlindungan ekstra, organisasi dapat membatasi cakupan akses untuk kunci API yang dibagikan kepada klien dengan memberlakukan hak akses. Hak-hak ini memberi pengguna akses ke titik akhir yang mereka butuhkan dan bukan yang lainnya. Beberapa organisasi mengotomatiskan pembuatan kunci baru demi memastikan bahwa kunci tersebut dirotasi secara berkala.
IBM Cloud Pak for Integration adalah platform integrasi hybrid yang menerapkan fungsionalitas otomatisasi AI loop tertutup untuk mendukung berbagai gaya integrasi. Platform ini menyediakan seperangkat alat integrasi yang komprehensif dalam satu pengalaman terpadu untuk menghubungkan aplikasi dan data di seluruh lingkungan cloud atau on premises.
IBM App Connect merupakan solusi integrasi terdepan di industri yang menghubungkan semua aplikasi dan data Anda di mana pun lokasinya.
IBM Event Automation merupakan solusi yang sepenuhnya dapat disusun yang memberi kemampuan bisnis untuk mempercepat upaya yang digerakkan oleh peristiwa, terlepas dari posisi bisnis ini berada dalam perjalanannya. Event streams, manajemen titik akhir peristiwa, dan kemampuan pemrosesan peristiwa membantu meletakkan dasar arsitektur berbasis peristiwa untuk membuka nilai peristiwa.
Antarmuka pemrograman aplikasi (API) adalah seperangkat aturan atau protokol yang memungkinkan aplikasi perangkat lunak untuk berkomunikasi satu sama lain dan bertukar data, fitur, dan fungsionalitas.
Akses tinjauan teknis IBM API Connect, fase siklus hidup API, dan komponen produk utamanya.
Pelajari cara membagikan API Anda dengan pengembang aplikasi di Portal Pengembang.
Ketahui alasan Gartner menobatkan IBM sebagai Pemimpin di Gartner Magic Quadrant 2023 untuk API Management untuk kedelapan kalinya secara berturut-turut.
Laporan Critical Capabilities for API Management merupakan laporan pendukung untuk Gartner Magic Quadrant dan memberikan insight yang lebih dalam tentang penawaran penyedia layanan. Dalam laporan ini, IBM menempati peringkat pertama dalam 4 dari 5 contoh penggunaan.
Keamanan siber merujuk pada teknologi, langkah, atau praktik apa pun yang dilakukan untuk mencegah serangan siber terhadap sistem, aplikasi, perangkat komputasi, data sensitif, dan aset keuangan individu dan organisasi, atau untuk mengurangi dampaknya.