Membuat langganan di API Management Azure

Selesai

Saat menerbitkan API dengan API Management, Anda menentukan siapa yang dapat mengakses API melalui gateway.

Untuk aplikasi meteorologi, Anda ingin memastikan bahwa hanya pelanggan yang telah berlangganan layanan Anda yang dapat mengakses API dan menggunakan data prakiraan Anda. Anda menyelesaikan kontrol akses ini dengan mengeluarkan kunci langganan.

Penting

Langganan dalam konteks ini tidak terkait dengan langganan Azure yang digunakan untuk mengelola akun Azure Anda.

Di sini, Anda akan mempelajari cara menggunakan kunci langganan untuk mengamankan API Anda.

Langganan dan kunci

Anda dapat memilih untuk membuat API Anda dan informasi yang tersedia secara bebas. Tetapi biasanya, Anda ingin membatasi akses ke pengguna yang telah membayar atau organisasi tempat Anda memiliki hubungan kerja. Salah satu cara untuk mengontrol akses ke API Anda adalah dengan menggunakan langganan. Langganan digunakan untuk mengesegmentasi akses pengguna ke API.

Kunci langganan membentuk otorisasi untuk mengaktifkan akses ke langganan ini. Setiap kali klien mengajukan permintaan ke API yang dilindungi, kunci langganan yang valid harus disertakan dalam permintaan HTTP atau panggilan akan ditolak.

Kunci langganan adalah kunci autogenerasi unik yang dapat diteruskan sebagai bagian dari panggilan API. 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 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. Jadi, jika Anda ingin mitra dan pemasok Anda memiliki hak akses yang berbeda ke API WeatherData Anda, tetapkan API ke produk, lalu gunakan portal Azure untuk mengaitkan API dengan produk.

Aplikasi yang menyebut API yang dilindungi harus menyertakan kunci langganan dalam setiap permintaan.

Anda dapat meregenerasi kunci langganan ini kapan saja, misalnya, jika Anda menduga bahwa kunci telah dibagikan dengan pengguna yang tidak sah, Anda dapat membuat yang baru.

Subscription keys.

Setiap langganan memiliki dua kunci - kunci primer 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 yang langganannya 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 yang melakukan panggilan ke titik akhir API yang dilindungi oleh langganan. Kunci dapat dilewatkan di header permintaan, atau sebagai parameter string kueri di URL.

Nama header kunci langganan default adalah Ocp-Apim-Subscription-Key, dan string kueri default adalah subscription-key.

Untuk menguji panggilan API, Anda dapat menggunakan konsol pengujian di portal Azure, atau portal pengembang, atau alat baris perintah, seperti curl. Berikut ini contoh permintaan menggunakan GET portal pengembang, yang memperlihatkan header kunci langganan:

Screenshot that shows how to call your API from developer portal.

Berikut adalah contoh bagaimana Anda akan meneruskan 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 bagaimana Anda akan menggunakan perintah curl untuk meneruskan kunci sebagai string kueri di URL:

curl https://<apim gateway>.azure-api.net/api/path?subscription-key=<key string>

Jika kunci yang diperlukan tidak diteruskan di header, atau sebagai string kueri di URL, Anda akan mendapatkan respons 401 Access Denied dari gateway API.