Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Yang akan Anda pelajari
Melalui tutorial ini, Anda akan mempelajari cara:
- Membuat proxy API yang memerlukan kunci API.
- Tambahkan produk API.
- Tambahkan developer dan daftarkan aplikasi.
- Panggil API Anda dengan kunci API.
Penting untuk melindungi API Anda dari akses yang tidak sah. Salah satu cara untuk melakukannya adalah dengan kunci API (juga disebut kunci publik, kunci konsumen, atau kunci aplikasi).
Saat membuat permintaan ke API, aplikasi harus menyediakan kunci yang valid. Saat runtime, kebijakan Verify API Key akan memastikan 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.
Dalam tutorial ini, Anda akan membuat proxy API yang memerlukan kunci API valid untuk mengaksesnya.
Yang akan Anda butuhkan
- Akun Apigee Edge. Jika belum memilikinya, Anda dapat mendaftar dengan petunjuk di Membuat akun Apigee Edge.
- Browser web untuk melakukan panggilan API.
- (Untuk bagian kredit tambahan, tidak diperlukan) cURL yang diinstal di komputer Anda untuk melakukan panggilan API dari command line.
Membuat proxy API
- Buka https://apigee.com/edge dan login.
Beralihlah ke organisasi yang Anda inginkan dengan mengklik nama pengguna di bagian atas menu navigasi samping untuk menampilkan menu profil pengguna, lalu pilih organisasi dari daftar.
-
Klik Proxy API di halaman landing untuk menampilkan daftar proxy API.
- Klik + Proxy.
- Di halaman Create Proxy, pilih Reverse proxy (paling umum).
- Pada halaman Detail Proxy, konfigurasi proxy sebagai berikut:
Di kolom ini lakukan ini Nama Proxy Masukkan: helloworld_apikey
Jalur Dasar Project Ubah menjadi:
/helloapikey
Jalur Dasar Project adalah bagian dari URL yang digunakan untuk membuat permintaan ke proxy API.
Catatan: Untuk mengetahui rekomendasi Apigee terkait pembuatan versi API, lihat Pembuatan Versi di e-book Desain API Web: Link yang Tidak Ada.
API yang sudah ada Masukkan:
http://mocktarget.apigee.net
Parameter ini menentukan URL target yang dipanggil Apigee Edge pada permintaan ke proxy API.
Deskripsi Masukkan: hello world protected by API key
- Klik Next.
- Di halaman Common Policies, untuk Keamanan: Otorisasi, pilih Kunci API, lalu klik Next. Tindakan ini akan menambahkan dua kebijakan ke proxy API Anda.
- Di halaman Virtual Hosts, pilih default dan
secure, lalu klik Next. Dengan memilih default, Anda dapat memanggil API dengan
http://
. Dengan memilih secure, Anda dapat memanggil API denganhttps://
. - Di halaman Summary, pastikan lingkungan deployment test dipilih, lalu klik Create and deploy.
- Anda akan melihat konfirmasi bahwa proxy API baru dan produk API berhasil dibuat, dan proxy API telah di-deploy ke lingkungan pengujian.
- Klik Edit proxy untuk menampilkan halaman Overview untuk proxy API.
Lihat 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 TetapkanMessage yang menghapus kunci API setelah dicentang, sehingga tidak diteruskan dan diekspos secara tidak perlu.
-
Klik ikon kebijakan Verify API Key di tampilan alur, dan lihat konfigurasi XML kebijakan pada tampilan kode bawah. Elemen
<APIKey>
memberi tahu kebijakan tempat kunci API harus mencari kunci API saat panggilan dilakukan. Secara default, kueri 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 secara langsung ke layanan target, lalu melakukan panggilan yang gagal ke proxy API untuk melihat bagaimana proxy tersebut dilindungi oleh kebijakan.
-
Berhasil
Di browser web, buka alamat berikut. Ini adalah layanan target yang dikonfigurasi oleh proxy API untuk meneruskan permintaan, tetapi untuk saat ini Anda akan langsung mendapatkannya:
http://mocktarget.apigee.net
Anda akan mendapatkan respons yang berhasil ini:
Hello, Guest!
-
Kegagalan
Sekarang coba panggil proxy API Anda:
http://ORG_NAME-test.apigee.net/helloapikey
mengganti
ORG_NAME
dengan nama organisasi Edge Anda.Tanpa kebijakan Verify API Key, panggilan ini akan memberikan respons yang sama seperti 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, Anda tidak meneruskan kunci API yang valid (sebagai parameter kueri).
Pada langkah berikutnya, Anda akan menambahkan produk API.
Menambahkan produk API
Untuk menambahkan produk API menggunakan UI Apigee:
- Pilih Publish > API Products.
- Klik +Produk API.
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. Contoh:helloworld_apikey-Product
.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. Misalnya, helloworld_apikey-Product
.Deskripsi Deskripsi produk API. Misalnya, Test product for tutorial
.Environment Lingkungan yang akan diizinkan oleh produk API. Misalnya test
atauprod
.Akses Pilih Publik. Menyetujui permintaan akses secara otomatis Aktifkan persetujuan otomatis permintaan kunci untuk produk API ini dari aplikasi apa pun. Kuota Abaikan tutorial ini. Cakupan OAuth yang Diizinkan Abaikan tutorial ini. - Di bagian resource API, pilih proxy API yang baru saja
Anda buat. Misalnya,
helloworld_apikey
. - Klik Tambahkan.
- Di bagian Jalur, tambahkan jalur "/".
- Klik Tambahkan.
- Klik Simpan.
Pada langkah berikutnya, Anda akan mendapatkan kunci API yang diperlukan.
Tambahkan 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 yang unik. Hal ini memberi Anda, sebagai 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.
- Klik + Developer.
Masukkan kode berikut pada jendela Developer Baru:
Di kolom ini enter Nama Depan Keyser
Nama Belakang Soze
Username keyser
Email keyser@example.com
- Klik Create.
Daftarkan aplikasi
Untuk mendaftarkan aplikasi developer:
- Pilih Publikasikan > Aplikasi.
- Klik + Aplikasi.
Masukkan kode berikut di jendela New App:
pDi kolom ini lakukan ini Name dan Display Name Masukkan: keyser_app
Perusahaan / Developer Pilih: Developer
Developer Pilih: Keyser Soze (keyser@example.com)
URL Panggilan Balik dan Catatan Biarkan kosong - Di bagian Credentials, pilih Jangan pernah dari menu Expiry. Masa berlaku kredensial untuk aplikasi ini tidak akan pernah berakhir.
- Di bagian Produk, klik Tambahkan produk.
- Pilih helloworld_apikey-Product.
- Klik Tambahkan.
- Klik Create di atas dan di sebelah kanan bagian App Details untuk menyimpan pekerjaan Anda.
Mendapatkan kunci API
Untuk mendapatkan kunci API:
- Di halaman Apps (Publish > Apps), klik keyser_app.
Pada halaman keyser_app, klik Show di samping Key pada bagian Credentials. Di bagian Product, perhatikan bahwa kunci tersebut berkaitan dengan helloworld_apikey
.- Pilih dan salin Kunci. Anda akan menggunakannya di langkah berikutnya.
Memanggil API dengan kunci
Setelah memiliki kunci API, Anda bisa menggunakannya untuk memanggil proxy API. Masukkan kode berikut di browser web Anda. Ganti nama organisasi Edge Anda dengan ORG_NAME, dan kunci API untuk API_KEY di bawah. Pastikan tidak ada spasi tambahan di parameter kueri.
http://ORG_NAME-test.apigee.net/helloapikey?apikey=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.
Perlu diperhatikan bahwa secara umum, meneruskan kunci API sebagai parameter kueri bukanlah praktik yang baik. Sebaiknya Anda meneruskannya di header HTTP.
Praktik terbaik: Meneruskan kunci di header HTTP
Pada langkah ini, Anda akan memodifikasi proxy untuk mencari kunci API dalam header yang bernama x-apikey
.
- Edit proxy API. Pilih Develop > API Proxies > helloworld_apikey, lalu buka tampilan Develop.
-
Pilih kebijakan Verify API Key, lalu ubah XML kebijakan untuk memberi tahu kebijakan agar terlihat di
header
, bukan diqueryparam
:<APIKey ref="request.header.x-apikey"/>
- Simpan proxy API untuk men-deploy perubahan.
-
Lakukan panggilan API berikut menggunakan cURL untuk meneruskan kunci API sebagai header bernama
x-apikey
. Jangan lupa untuk mengganti nama organisasi Anda.curl -v -H "x-apikey: API_KEY" http://ORG_NAME-test.apigee.net/helloapikey
Perhatikan bahwa untuk sepenuhnya menyelesaikan perubahan, Anda juga harus mengonfigurasi kebijakan BiddingMessage untuk menghapus header, bukan parameter kueri. Contoh:
<Remove> <Headers> <Header name="x-apikey"/> </Headers> </Remove>
Topik terkait
Berikut beberapa topik yang terkait langsung dengan tutorial ini:
- Mengelola produk API
- Kunci API
- Mendaftarkan developer aplikasi
- Mendaftarkan aplikasi dan mengelola kunci API
- Kebijakan VerifyAPIKey
- Kebijakan Tetapkan Pesan
Lebih dalam lagi, melindungi API dengan kunci API hanyalah sebagian dari prosesnya. Sering kali, perlindungan API memerlukan keamanan tambahan seperti OAuth.
OAuth adalah protokol terbuka yang, secara singkat, bertukar kredensial (seperti nama pengguna dan sandi) dengan token akses. Token akses adalah string acak panjang yang dapat diteruskan melalui pipeline pesan, bahkan dari aplikasi ke aplikasi, tanpa mengorbankan kredensial asli. Token akses sering kali memiliki masa aktif yang singkat, sehingga token baru selalu dibuat.