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:
- Buat proxy API yang memerlukan kunci API.
- Buat produk API, developer, dan aplikasi developer.
- Panggil API Anda dengan kunci API.
Anda harus melindungi API Anda dari akses yang tidak sah. 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 kuncinya valid, permintaan akan diizinkan. Jika kunci tidak valid, permintaan akan menghasilkan kegagalan otorisasi.
Membuat proxy API
Ikuti langkah-langkah berikut untuk membuat proxy API menggunakan UI Apigee:
Di konsol Google Cloud , buka halaman Proxy development > API proxies.
- Pilih organisasi Anda dari pemilih project di panel Google Cloud. Nama organisasi sama dengan nama project Google Cloud Anda.
- Klik + Create.
- Di panel Create a proxy, di bagian Proxy template, pilih Reverse proxy (Most common). Reverse proxy merutekan traffic masuk ke layanan backend.
- Konfigurasi proxy sebagai berikut:
Nama Nilai Nama Proxy helloworld_apikeyJalur Dasar /helloapikeyJalur Dasar Project adalah bagian dari URL yang digunakan untuk membuat permintaan ke proxy API.
Deskripsi hello world protected by API keyTarget (API yang Ada) http://mocktarget.apigee.netIni menentukan URL target yang dipanggil Apigee pada permintaan ke proxy API. Target ini hanya menampilkan respons sederhana:
Hello, Guest!. - Klik Berikutnya.
- Deploy (opsional). Kosongkan kolom ini.
- Klik Create.
- Apigee akan membuat proxy baru dan menampilkan ringkasan detail proxy di panel Proxy summary.
Melihat kebijakan
Ikuti langkah-langkah berikut untuk melihat kebijakan:
- Di panel Proxy summary untuk proxy helloworld_apikey, klik tab Develop.
- Di menu Policies, klik Add policy.
- Di panel Create policy, di bagian Security, pilih Verify API Key.
- Di panel Verify API Key, isi kolom wajib diisi di bagian
Name dan Display name menggunakan nilai berikut:
- Name: Masukkan nama kebijakan. Contoh,
VerifyAPIKey. - Display name: Masukkan nama kebijakan untuk digunakan di UI. Contoh,
Verify API Key.
- Name: Masukkan nama kebijakan. Contoh,
- Klik Create.
- Klik untuk menambahkan kebijakan lain.
- Di panel Create policy, di bagian Mediation, pilih Assign Message.
- Di panel Assign Message, isi kolom wajib di bagian Name dan Display name menggunakan nilai berikut:
- Name: Masukkan nama kebijakan. Contoh,
AssignMessage. - Display name: Masukkan nama kebijakan untuk digunakan di UI. Contoh,
Assign Message.
- Name: Masukkan nama kebijakan. Contoh,
- Klik Create.
- Elemen
<APIKey>dalam kode XML di bawah menentukan lokasi kunci API dalam permintaan masuk. Secara default, kebijakan mengambil kunci dari parameter kueri bernamaapikeydalam permintaan HTTP.<APIKey ref="request.queryparam.apikey" />
Nama
apikeybersifat arbitrer dan dapat berupa properti apa pun yang berisi kunci API. - Perbarui konten kebijakan Assign Message menjadi sebagai berikut:
- Tambahkan kebijakan
VerifyApiKeydanRemove Query Param apikey.- Di menu Proxy endpoints, klik PreFlow.
- Di panel Request pada editor visual, klik Add policy step.
- Di panel Add policy step, pilih Verify API Key.
- Klik Tambahkan.
- Di panel Request pada editor visual, klik Add policy step.
- Di panel Add policy step, pilih Remove Query Param apikey.
- Klik Tambahkan.
- Klik Simpan.
- Men-deploy proxy ke lingkungan:
- Klik Deploy.
- Pilih Revisi dan Lingkungan.
- Klik Deploy.
- Uji perubahan Anda dengan memanggil API seperti yang dijelaskan dalam Coba panggil API.
<AssignMessage async="false" continueOnError="false" enabled="true" name="remove-query-param-apikey"> <DisplayName>Remove Query Param apikey</DisplayName> <Remove> <QueryParams> <QueryParam name="apikey"/> </QueryParams> </Remove> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
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 proxy API dilindungi oleh kebijakan.
-
Berhasil
Di browser web, buka alamat berikut. Ini adalah layanan target yang dikonfigurasi oleh proxy API untuk meneruskan permintaan, tetapi Anda akan mengaksesnya secara langsung untuk saat ini:
http://mocktarget.apigee.net
Anda akan mendapatkan respons berhasil ini:
Hello, Guest! -
Kegagalan
Sekarang coba panggil proxy API Anda:
curl -v -k https://YOUR_ENV_GROUP_HOSTNAME/helloapikey
dengan
YOUR ENV_GROUP_HOSTNAMEadalah nama host grup lingkungan. Lihat Menemukan nama host grup lingkungan.Tanpa kebijakan Verifikasi Kunci API, panggilan ini akan memberikan respons yang sama dengan panggilan sebelumnya. Namun dalam kasus 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, bahwa 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:
Di konsol Google Cloud , buka halaman Distribution > API products:
- 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 otomatis menggunakan nilai Name; Anda dapat mengedit atau menghapus isinya. Nama tampilan dapat menyertakan karakter khusus. Deskripsi Deskripsi produk API. Lingkungan Lingkungan yang akan diizinkan aksesnya oleh produk API. Misalnya, testatauprod.Akses Pilih Public. Menyetujui permintaan akses secara otomatis Aktifkan 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 Path, masukkan "/". Abaikan kolom lainnya.
- Klik Save untuk menyimpan operasi.
- Klik Save untuk menyimpan produk API.
Untuk mengetahui informasi selengkapnya tentang cara menambahkan produk API, lihat Membuat 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 mendapatkan kunci API unik. Hal ini memberi Anda, penyedia API, kontrol yang lebih terperinci atas akses ke API Anda dan pelaporan yang lebih terperinci tentang traffic API menurut aplikasi.
Membuat developer
Untuk membuat developer menggunakan UI Apigee:
-
Di konsol Google Cloud , buka halaman Distribution > Developers:
- Klik + Create.
- Masukkan informasi berikut di jendela Tambahkan Developer:
Kolom Nilai Nama Depan KeyserNama Belakang SozeEmail keyser@example.comUsername keyser - Klik Tambahkan.
Untuk mengetahui informasi selengkapnya tentang cara membuat developer, lihat Mendaftarkan developer aplikasi.
Mendaftarkan aplikasi
Untuk mendaftarkan aplikasi developer menggunakan UI Apigee:
-
Di konsol Google Cloud , buka halaman Distribution > Apps:
- Klik + Create.
- Masukkan informasi berikut di jendela Create App:
Kolom Nilai Nama Aplikasi Masukkan: keyser_appDisplay Name Masukkan: keyser_appDeveloper Pilih: Keyser Soze (keyser@example.com)URL Callback Biarkan kosong Catatan Biarkan kosong - Di bagian Kredensial, klik Tambahkan kredensial.
- Pilih Jangan pernah. Masa berlaku kredensial untuk aplikasi ini tidak akan pernah berakhir.
- Klik Tambahkan produk.
- Pilih produk yang baru saja Anda buat.
- Klik Tambahkan.
- Klik Create.
Untuk mengetahui informasi selengkapnya tentang mendaftarkan aplikasi, lihat Mendaftarkan aplikasi.
Mendapatkan kunci API
Untuk mendapatkan kunci API menggunakan UI Apigee:
Di konsol Google Cloud , buka halaman Distribution > Apps.
- Pilih aplikasi yang diperlukan dari daftar aplikasi.
- Di halaman Lihat aplikasi, di bagian Kredensial, klik di samping kolom Kunci. Perhatikan bahwa kunci dikaitkan dengan produk yang Anda buat.
- Klik Salin. Anda akan menggunakan kunci ini di langkah berikutnya.
Memanggil API dengan kunci
Setelah memiliki kunci API, Anda dapat menggunakannya untuk memanggil proxy API. Tempelkan kunci API seperti yang ditunjukkan, 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 teruskan di header HTTP.
Praktik terbaik: Meneruskan kunci di header HTTP
Pada langkah ini, Anda akan mengubah proxy untuk mencari kunci API di header yang disebut x-apikey.
- Di konsol Google Cloud , buka halaman Proxy development > API proxies.
- Pilih proxy yang diperlukan dari daftar proxy.
- Di halaman Proxy details, klik Develop.
- Ubah XML kebijakan untuk memberi tahu kebijakan agar mencari di header, bukan di queryparam:
- Klik Save untuk menyimpan perubahan.
- Klik Deploy.
- Pilih Revisi dan Lingkungan.
- Klik Deploy.
-
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: YOUR_API_KEY" http://YOUR_ENV_GROUP_HOSTNAME/helloapikey
<APIKey ref="request.header.x-apikey"/>
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 beberapa topik terkait produk dan kunci API:
- Mengelola produk API
- Kunci API
- Mendaftarkan developer aplikasi
- Mendaftarkan aplikasi dan mengelola kunci API
- Verifikasi kebijakan Kunci API
Perlindungan API sering kali melibatkan keamanan tambahan seperti OAuth, sebuah protokol terbuka yang menukar kredensial (seperti nama pengguna dan sandi) dengan token akses. Token akses adalah string panjang acak yang dapat diteruskan melalui pipeline pesan, termasuk dari aplikasi ke aplikasi, tanpa membahayakan kredensial asli.
Untuk ringkasan topik terkait keamanan, lihat Mengamankan proxy.