Alasan dan waktu menggunakan kunci API

Halaman ini memberikan informasi latar belakang tentang kunci API dan autentikasi: cara masing-masing digunakan, perbedaan di antara keduanya, dan skenario saat Anda harus mempertimbangkan penggunaan kunci API.

Kunci API adalah untuk project, autentikasi adalah untuk pengguna

Cloud Endpoints menangani kunci API dan skema autentikasi, seperti Firebase atau Auth0. Perbedaan utama antara keduanya adalah:

  • Kunci API mengidentifikasi project pemanggil — aplikasi atau situs — yang melakukan panggilan ke API.

  • Token autentikasi mengidentifikasi pengguna — orang — yang menggunakan aplikasi atau situs.

    Ringkasan kunci API

Kunci API memberikan otorisasi project

Untuk memutuskan skema mana yang paling sesuai, Anda harus memahami apa yang dapat diberikan oleh kunci API dan autentikasi.

Kunci API memberikan

  • Identifikasi project — Identifikasi aplikasi atau project yang melakukan panggilan ke API ini

  • Otorisasi project — Periksa apakah aplikasi yang melakukan panggilan telah diberi akses untuk memanggil API dan telah mengaktifkan API di projectnya

Kunci API tidak seaman token autentikasi (lihat Keamanan kunci API), tetapi kunci API mengidentifikasi aplikasi atau project yang memanggil API. Kunci API dibuat di project yang melakukan panggilan, dan Anda dapat membatasi penggunaannya ke lingkungan seperti rentang alamat IP, atau aplikasi Android atau iOS.

Dengan mengidentifikasi project yang melakukan panggilan, Anda dapat menggunakan kunci API untuk mengaitkan informasi penggunaan dengan project tersebut. Kunci API memungkinkan Cloud Endpoints Frameworks menolak panggilan dari project yang belum diberi akses atau diaktifkan di API.

Autentikasi pengguna

Sebaliknya, skema autentikasi biasanya memiliki dua tujuan:

  • Autentikasi pengguna — Verifikasi secara aman bahwa pengguna yang memanggil adalah orang yang diklaimnya.

  • Otorisasi pengguna — Periksa apakah pengguna seharusnya memiliki akses untuk membuat permintaan ini.

Skema autentikasi menyediakan cara yang aman untuk mengidentifikasi pengguna yang melakukan panggilan. Endpoints juga memeriksa token autentikasi untuk memverifikasi bahwa token tersebut memiliki izin untuk memanggil API. Berdasarkan autentikasi tersebut, server API memutuskan untuk mengizinkan permintaan.

Jika Anda memerlukan kemampuan untuk mengidentifikasi pengguna yang melakukan panggilan, lihat Mengautentikasi pengguna.

Meskipun mengidentifikasi project pemanggil, kunci API tidak mengidentifikasi pengguna pemanggil. Misalnya, jika Anda telah membuat aplikasi yang memanggil API, kunci API dapat mengidentifikasi aplikasi yang melakukan panggilan, tetapi tidak mengidentifikasi identitas orang yang menggunakan aplikasi tersebut.

Jika Anda memerlukan cara yang lebih aman untuk membatasi project atau layanan mana yang dapat memanggil API Anda, lihat Autentikasi antar-layanan.

Keamanan kunci API

Kunci API umumnya tidak dianggap aman; kunci API biasanya dapat diakses oleh klien, sehingga memudahkan seseorang mencuri kunci API. Setelah dicuri, kunci tidak memiliki masa berlaku, sehingga dapat digunakan tanpa batas waktu, kecuali jika pemilik project mencabut atau membuat ulang kunci. Meskipun pembatasan yang dapat Anda tetapkan pada kunci API mengurangi risiko ini, ada pendekatan yang lebih baik untuk otorisasi.

Untuk mengetahui contohnya, lihat Mengautentikasi pengguna.

Kapan menggunakan kunci API

API dapat membatasi beberapa atau semua metodenya untuk mewajibkan kunci API. Sebaiknya lakukan hal ini jika:

  • Anda ingin memblokir traffic anonim. Kunci API mengidentifikasi traffic aplikasi untuk produsen API, jika developer aplikasi perlu bekerja sama dengan produsen API untuk men-debug masalah atau menunjukkan penggunaan aplikasinya.

  • Anda ingin mengontrol jumlah panggilan yang dilakukan ke API Anda.

  • Anda ingin mengidentifikasi pola penggunaan dalam traffic API Anda. Anda dapat melihat penggunaan aplikasi di APIs & services.

  • Anda ingin memfilter log menurut kunci API.

Kunci API tidak dapat digunakan untuk:

  • Mengidentifikasi masing-masing pengguna — Kunci API tidak mengidentifikasi pengguna, tetapi mengidentifikasi project.

  • Otorisasi yang aman.

  • Mengidentifikasi kreator proyek.

Service Infrastructure tidak menyediakan metode untuk langsung mencari project dari kunci API.

Cara menggunakan kunci API

Untuk mempelajari cara menyiapkan dan menggunakan akses kunci API, lihat bagian Membatasi akses dengan kunci API.