Mengamankan API dengan menggunakan langganan
Saat Anda memublikasikan API melalui API Management, mudah dan umum untuk mengamankan akses ke API tersebut dengan menggunakan kunci langganan. Pengembang yang perlu menggunakan API yang diterbitkan harus menyertakan kunci langganan yang valid dalam permintaan HTTP ketika mereka melakukan panggilan ke API tersebut. Gateway API Management menolak panggilan tanpa kunci langganan dan panggilan tidak diteruskan ke layanan back-end.
Untuk mendapatkan kunci langganan untuk mengakses API, diperlukan langganan. Langganan pada dasarnya adalah kontainer yang dinamai untuk sepasang kunci langganan. Pengembang yang perlu menggunakan API yang dipublikasikan bisa mendapatkan langganan. Mereka pun tidak membutuhkan persetujuan dari penerbit API. Penerbit API juga dapat membuat langganan secara langsung untuk konsumen API.
Catatan
API Management juga mendukung mekanisme lain untuk mengamankan akses ke API, termasuk: OAuth2.0, sertifikat Klien, dan daftar IP yang diizinkan.
Langganan dan Kunci
Kunci langganan adalah kunci autogenerasi unik yang dapat diteruskan di header permintaan klien atau sebagai parameter string kueri. Kuncinya terkait langsung dengan langganan, yang dapat dicakup ke area yang berbeda. Langganan memberi Anda kontrol mendetail atas izin dan kebijakan.
Tiga ruang lingkup langganan utama adalah:
Cakupan | Detail |
---|---|
Semua API | Berlaku untuk setiap API yang dapat diakses dari gateway |
API Tunggal | Cakupan ini berlaku untuk satu API yang diimpor dan semua titik akhirnya |
Produk | Produk adalah kumpulan satu atau beberapa API yang Anda konfigurasi di API Management. Anda dapat menetapkan API ke lebih dari satu produk. Produk dapat memiliki aturan akses yang berbeda, kuota penggunaan, dan ketentuan penggunaan. |
Aplikasi yang menyebut API yang dilindungi harus menyertakan kunci dalam setiap permintaan.
Anda dapat meregenerasi kunci langganan ini kapan saja, misalnya, jika Anda menduga bahwa kunci telah dibagikan dengan pengguna yang tidak sah.
Setiap langganan memiliki dua kunci, yaitu kunci utama dan sekunder. Memiliki dua kunci akan memudahkan ketika Anda perlu meregenerasi kunci. Misalnya, jika Anda ingin mengubah kunci utama dan menghindari waktu henti, gunakan kunci sekunder pada aplikasi Anda.
Untuk produk di mana langganan diaktifkan, klien harus menyediakan kunci saat melakukan panggilan ke API dalam produk tersebut. Pengembang dapat memperoleh kunci dengan mengirimkan permintaan langganan. Jika Anda menyetujui permintaan tersebut, Anda harus mengirimi mereka kunci langganan dengan aman, misalnya, dalam pesan terenkripsi. Langkah ini merupakan bagian inti dari alur kerja API Management.
Panggil API dengan kunci langganan
Aplikasi harus menyertakan kunci yang valid dalam semua permintaan HTTP, saat aplikasi melakukan panggilan ke titik akhir API yang dilindungi oleh langganan. Kunci dapat dilewatkan di header permintaan, atau sebagai string kueri di URL.
Nama header default adalah Ocp-Apim-Subscription-Key, dan string kueri default adalah subscription-key.
Untuk menguji panggilan API, Anda dapat menggunakan portal pengembang, atau alat baris perintah seperti curl. Berikut ini contoh permintaan menggunakan GET
portal pengembang, yang memperlihatkan header kunci langganan:
Berikut adalah cara Anda dapat melewatkan kunci di header permintaan menggunakan curl:
curl --header "Ocp-Apim-Subscription-Key: <key string>" https://<apim gateway>.azure-api.net/api/path
Berikut adalah contoh perintah curl yang melewatkan kunci dalam URL sebagai string kueri:
curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>
Jika kunci tidak diteruskan di header, atau sebagai string kueri di URL, Anda mendapatkan respons 401 Akses Ditolak dari gateway API.