Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi Apigee Edge.
Video: Tonton video singkat ini untuk mengetahui pengantar tentang cara mengamankan API Anda.
Yang akan Anda pelajari
Tutorial ini menjelaskan cara:
- Membuat proxy API yang memerlukan kunci API.
- Membuat produk API, developer, dan aplikasi developer.
- Panggil API Anda dengan kunci API.
Anda harus melindungi API dari akses tanpa izin. Salah satu cara untuk melakukannya adalah dengan kunci API.
Saat aplikasi membuat permintaan ke proxy API yang dikonfigurasi untuk memverifikasi kunci API, aplikasi harus memberikan kunci yang valid. Saat runtime, kebijakan Verify API Key memeriksa apakah kunci API yang diberikan:
- Valid
- Belum dicabut
- Mencocokkan kunci API untuk produk API yang mengekspos resource yang diminta
Jika kunci valid, permintaan akan diizinkan. Jika kunci tidak valid, permintaan akan menyebabkan kegagalan otorisasi.
Membuat proxy API
- Buka UI Apigee dan login.
- Pilih organisasi Anda menggunakan menu drop-down di pojok kiri atas UI.
-
Klik Develop > API Proxies untuk menampilkan daftar proxy API.
- Klik Buat Baru.
- Di wizard Build a Proxy, pilih Reverse proxy (most common).
- Konfigurasikan proxy sebagai berikut:
Di kolom ini lakukan hal ini Nama Proxy Masukkan: helloworld_apikey
Jalur Dasar Project Ubah menjadi:
/helloapikey
Project Base Path adalah bagian dari URL yang digunakan untuk membuat permintaan ke proxy API.
Deskripsi Masukkan: hello world protected by API key
Target (API yang Ada) Masukkan:
http://mocktarget.apigee.net
Ini menentukan URL target yang dipanggil Apigee pada permintaan ke proxy API. Target ini hanya menampilkan respons sederhana:
Hello, Guest!
. - Klik Berikutnya.
- Di halaman Kebijakan umum, pilih Kunci API. Opsi ini otomatis menambahkan dua kebijakan ke proxy API Anda dan membuat produk API yang diperlukan untuk membuat kunci API.
- Klik Berikutnya.
- Di halaman Ringkasan, pastikan lingkungan deployment dipilih, lalu klik Buat dan deploy.
- Klik Edit proxy untuk menampilkan halaman Ringkasan untuk proxy API.
Melihat kebijakan
- Di editor proxy API, klik tab Develop. Anda akan melihat bahwa dua kebijakan telah ditambahkan ke alur permintaan proxy API:
- Verify API Key – Memeriksa panggilan API untuk memastikan kunci API yang valid ada (dikirim sebagai parameter kueri).
- Remove Query Param apikey – Kebijakan Tetapkan Pesan yang menghapus kunci API setelah diperiksa, sehingga tidak diteruskan dan terekspos secara tidak perlu.
-
Klik ikon kebijakan Verifikasi Kunci API di tampilan alur, dan lihat konfigurasi XML kebijakan di tampilan kode yang lebih rendah. Elemen
<APIKey>
memberi tahu kebijakan tempat kunci API harus dicari saat panggilan dilakukan. Secara default, kunci tersebut akan mencari kunci sebagai parameter kueri yang disebutapikey
dalam permintaan HTTP:<APIKey ref="request.queryparam.apikey" />
Nama
apikey
bersifat arbitrer dan dapat berupa properti apa pun yang berisi kunci API.
Mencoba memanggil API
Pada langkah ini, Anda akan melakukan panggilan API yang berhasil langsung ke layanan target, lalu Anda akan melakukan panggilan yang gagal ke proxy API untuk melihat cara API tersebut dilindungi oleh kebijakan.
-
Berhasil
Di browser web, buka alamat berikut. Ini adalah layanan target yang dikonfigurasi proxy API untuk meneruskan permintaan, tetapi untuk saat ini Anda akan langsung mengaksesnya:
http://mocktarget.apigee.net
Anda akan mendapatkan respons yang berhasil ini:
Hello, Guest!
-
Kegagalan
Sekarang, coba panggil proxy API Anda:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
dengan
YOUR ENV_GROUP_HOSTNAME
adalah nama host grup lingkungan. Lihat Menemukan nama host grup lingkungan.Tanpa kebijakan Verifikasi Kunci API, panggilan ini akan memberi Anda respons yang sama dengan panggilan sebelumnya. Namun, dalam hal ini, Anda akan mendapatkan respons error berikut:
{"fault":{"faultstring":"Failed to resolve API Key variable request.queryparam.apikey","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
yang berarti, dengan benar, Anda tidak meneruskan kunci API yang valid (sebagai parameter kueri).
Pada langkah berikutnya, Anda akan mendapatkan kunci API yang diperlukan.
Menambahkan produk API
Untuk menambahkan produk API menggunakan UI Apigee:
- Pilih Publikasikan > Produk API.
- Klik +Create.
- Masukkan Detail Produk untuk produk API Anda.
Kolom Deskripsi Nama Nama internal produk API. Jangan tentukan karakter khusus dalam nama.
Catatan: Anda tidak dapat mengedit nama setelah produk API dibuat.Nama tampilan Nama tampilan untuk produk API. Nama tampilan digunakan di UI dan Anda dapat mengeditnya kapan saja. Jika tidak ditentukan, nilai Name akan digunakan. Kolom ini diisi secara otomatis menggunakan nilai Nama; Anda dapat mengedit atau menghapus kontennya. Nama tampilan dapat menyertakan karakter khusus. Deskripsi Deskripsi produk API. Lingkungan Lingkungan yang akan mengizinkan akses produk API. Misalnya test
atauprod
.Akses Pilih Public. Menyetujui permintaan akses secara otomatis Mengaktifkan persetujuan otomatis permintaan kunci untuk produk API ini dari aplikasi mana pun. Kuota Abaikan untuk tutorial ini. Cakupan OAuth yang Diizinkan Abaikan untuk tutorial ini. - Di bagian Operations, klik ADD AN OPERATION.
- Di kolom API Proxy, pilih proxy API yang baru saja Anda buat.
- Di kolom Jalur, masukkan "/". Abaikan kolom lainnya.
- Klik Simpan untuk menyimpan Operasi.
- Klik Simpan untuk menyimpan produk API.
Menambahkan developer dan aplikasi ke organisasi Anda
Selanjutnya, kita akan menyimulasikan alur kerja developer yang mendaftar untuk menggunakan API Anda. Developer akan memiliki satu atau beberapa aplikasi yang memanggil API Anda, dan setiap aplikasi akan mendapatkan kunci API unik. Hal ini memberi Anda, penyedia API, kontrol yang lebih terperinci atas akses ke API dan pelaporan yang lebih terperinci tentang traffic API menurut aplikasi.
Membuat developer
Untuk membuat developer:
- Pilih Publikasikan > Developer di menu.
Catatan: Jika Anda masih berada di layar Develop, klik "<" di samping DEVELOP untuk menampilkan menu, lalu pilih Publish > Developers - Klik + Developer.
- Masukkan hal berikut di jendela New Developer:
Di kolom ini enter Nama Depan Keyser
Nama Belakang Soze
Username keyser
Email keyser@example.com
- Klik Create.
Mendaftarkan aplikasi
Untuk mendaftarkan aplikasi developer:
- Pilih Publikasikan > Aplikasi.
- Klik + Aplikasi.
- Masukkan hal berikut di jendela New Developer App:
Di kolom ini lakukan hal ini Nama dan Nama Tampilan Masukkan: keyser_app
Developer Pilih: Keyser Soze (keyser@example.com)
URL Callback dan Catatan Biarkan kosong - Di bagian Kredensial, pilih Never. Masa berlaku kredensial untuk aplikasi ini tidak akan habis.
- Klik Tambahkan produk.
- Pilih produk yang baru saja Anda buat.
- Klik Create.
Mendapatkan kunci API
Untuk mendapatkan kunci API:
- Di halaman Aplikasi (Publikasikan > Aplikasi), klik keyser_app.
- Di halaman keyser_app, klik Tampilkan di samping Kunci di bagian
Kredensial. Perhatikan bahwa kunci tersebut dikaitkan dengan produk yang Anda buat.
- Pilih dan salin kunci. Anda akan menggunakannya di langkah berikutnya.
Memanggil API dengan kunci
Setelah memiliki kunci API, Anda dapat menggunakannya untuk memanggil proxy API. Tempelkan kunci API seperti yang ditampilkan, sebagai parameter kueri. Pastikan tidak ada spasi tambahan dalam parameter kueri.
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey?apikey=your_api_key
Sekarang, saat memanggil proxy API, Anda akan mendapatkan respons ini: Hello,
Guest!
Selamat! Anda telah membuat proxy API dan melindunginya dengan mewajibkan kunci API yang valid disertakan dalam panggilan.
Perhatikan bahwa secara umum, meneruskan kunci API sebagai parameter kueri bukanlah praktik yang baik. Sebaiknya Anda meneruskannya dalam header HTTP.
Praktik terbaik: Meneruskan kunci di header HTTP
Pada langkah ini, Anda akan memodifikasi proxy untuk mencari kunci API di header yang disebut x-apikey
.
- Edit proxy API. Pilih Develop > API Proxies > helloworld_apikey, lalu buka tampilan Develop.
-
Pilih kebijakan Verify API Key, dan ubah XML kebijakan untuk memberi tahu kebijakan agar mencari di
header
, bukan diqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Simpan proxy API dan gunakan Deploy untuk men-deploynya.
-
Lakukan panggilan API berikut menggunakan cURL untuk meneruskan kunci API sebagai header yang disebut
x-apikey
. Jangan lupa untuk mengganti nama organisasi Anda.curl -v -H "x-apikey: {api_key_goes_here}" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey
Perhatikan bahwa untuk menyelesaikan perubahan sepenuhnya, Anda juga perlu mengonfigurasi kebijakan Tetapkan Pesan untuk menghapus header, bukan parameter kueri. Contoh:
<Remove> <Headers> <Header name="x-apikey"/> </Headers> </Remove>
Topik terkait
Berikut adalah beberapa topik yang terkait dengan produk dan kunci API:
- Mengelola produk API
- Kunci API
- Mendaftarkan developer aplikasi
- Mendaftarkan aplikasi dan mengelola kunci API
- Memverifikasi kebijakan Kunci API
Perlindungan API sering kali melibatkan keamanan tambahan seperti OAuth, protokol terbuka yang menukar kredensial (seperti nama pengguna dan sandi) dengan token akses. Token akses adalah string acak yang panjang dan dapat diteruskan melalui pipeline pesan, termasuk dari aplikasi ke aplikasi, tanpa membahayakan kredensial asli.
Untuk ringkasan topik terkait keamanan, lihat Mengamankan proxy.