Framework Cloud Endpoints mendukung beberapa metode autentikasi yang cocok untuk berbagai aplikasi dan kasus penggunaan. Framework Endpoint menggunakan metode autentikasi yang telah Anda tentukan dalam anotasi untuk memvalidasi permintaan masuk sebelum meneruskannya ke backend API. Dokumen ini memberikan ringkasan dan contoh kasus penggunaan untuk setiap metode autentikasi yang didukung.
Kunci API
Kunci API adalah string terenkripsi sederhana yang mengidentifikasi projectGoogle Cloud untuk tujuan kuota, penagihan, dan pemantauan. Developer membuat kunci API dalam project di Google Cloud Console dan menyematkan kunci tersebut dalam setiap panggilan ke API Anda sebagai parameter kueri.
Jika Anda menentukan persyaratan kunci API dalam anotasi, Framework Endpoints akan menggunakan kunci API untuk mencari projectGoogle Cloud yang terkait dengan kunci API. Framework Endpoint menolak permintaan kecuali jika kunci API dihasilkan di project Google Cloud atau dalam projectGoogle Cloud lain tempat API Anda telah diaktifkan. Untuk informasi selengkapnya, lihat Membatasi akses API dengan kunci API
Tidak seperti kredensial yang menggunakan token jangka pendek atau permintaan yang ditandatangani dan dikirim dalam header permintaan, klien mengirim kunci API sebagai parameter kueri. Meskipun parameter kueri dienkripsi di HTTPS, kunci API tidak aman. Misalnya, beberapa server mungkin menyimpan seluruh URL dari setiap permintaan dalam teks biasa di log server. Demi alasan keamanan, jangan gunakan kunci API saja saat panggilan API berisi data pengguna. Anda dapat menggunakan kunci API selain salah satu metode autentikasi berikut.
Untuk praktik terbaik dalam mengamankan dan menambahkan pembatasan ke kunci API, lihat Menggunakan kunci API. Meskipun "Menggunakan kunci API" ditargetkan untuk klien yang menggunakan Google API, praktik terbaiknya berlaku untuk API yang Anda buat menggunakan Framework Endpoint.
Kasus penggunaan
Jika Anda ingin menggunakan fitur Endpoints seperti kuota, setiap permintaan harus meneruskan kunci API agar Endpoints dapat mengidentifikasi project Google Cloud yang terkait dengan aplikasi klien.
Untuk informasi selengkapnya tentang kunci API, lihat Alasan dan waktu menggunakan kunci API.
Firebase Authentication
Firebase Authentication menyediakan layanan backend, SDK, dan library untuk mengautentikasi pengguna ke aplikasi seluler atau web. Firebase Authentication mengautentikasi pengguna menggunakan berbagai kredensial seperti Google, Facebook, Twitter, atau GitHub.
Library klien Firebase menandatangani Token Web JSON (JWT) dengan kunci pribadi setelah pengguna berhasil login.
Framework Endpoints memvalidasi bahwa JWT ditandatangani oleh Firebase dan bahwa klaim "iss" (penerbit) dalam JWT, yang mengidentifikasi aplikasi Firebase Anda, cocok dengan setelan issuer
dalam anotasi.
Kasus penggunaan
Karena Firebase Authentication terintegrasi erat dengan layanan Firebase lainnya, autentikasi ini sangat cocok untuk aplikasi seluler atau web yang menggunakan Firebase. Lihat Mengautentikasi dengan Firebase Auth.
Auth0
Auth0 mengautentikasi dan memberi otorisasi pada aplikasi dan API, terlepas dari penyedia identitas, platform, stack, dan perangkat.
Auth0 mendukung sejumlah besar penyedia dan spesifikasi Security Assertion Markup Language. Firebase Authentication menyediakan layanan backend, SDK, dan library antarmuka pengguna untuk mengautentikasi pengguna di aplikasi web dan seluler. Auth0 terintegrasi dengan beberapa penyedia identitas pihak ketiga dan juga menyediakan pengelolaan akun pengguna kustom.
Library klien yang disediakan oleh Auth0 membuat dan menandatangani JWT setelah pengguna
login. Framework Endpoints memvalidasi JWT yang ditandatangani oleh Auth0
dan bahwa klaim "iss" dalam JWT, yang mengidentifikasi aplikasi Auth0 Anda,
cocok dengan setelan issuer
dalam anotasi.
Kasus penggunaan
Auth0 sangat cocok untuk aplikasi web dan seluler konsumen dan perusahaan. Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi dengan Auth0.
Autentikasi token ID Google
Autentikasi menggunakan token ID Google memungkinkan pengguna melakukan autentikasi dengan login menggunakan Akun Google. Setelah diautentikasi, pengguna
akan memiliki akses ke semua layanan Google. Anda dapat menggunakan token ID Google untuk melakukan panggilan ke
Google API dan API yang telah Anda terapkan menggunakan
Framework Endpoint. Framework Endpoint memvalidasi
token ID Google menggunakan kunci publik dan
memastikan bahwa klaim "iss" dalam JWT adalah https://accounts.google.com
atau
accounts.google.com
.
Kasus penggunaan
Autentikasi menggunakan token ID Google direkomendasikan jika semua pengguna memiliki akun Google. Anda dapat memilih untuk menggunakan autentikasi token ID Google, misalnya, jika API Anda menyertai Aplikasi Google Workspace (misalnya, pendamping Google Drive). Autentikasi token ID Google memungkinkan pengguna melakukan autentikasi dengan login dengan Akun Google. Setelah diautentikasi, pengguna memiliki akses ke semua layanan Google.
Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi dengan token ID Google.
JWT dan akun layanan
Token Web JSON (JWT) biasanya digunakan untuk membagikan klaim atau pernyataan antara aplikasi yang terhubung. JWT yang mewakili akun layanan dapat ditandatangani oleh:
Akun layanan.
Layanan otorisasi Google. (JWT yang ditandatangani oleh layanan otorisasi Google disebut sebagai token ID Google.)
Mengautentikasi permintaan menggunakan JWT yang ditandatangani oleh akun layanan mungkin lebih mudah
diimplementasikan, tetapi jika Anda memiliki banyak akun layanan, atau jika Anda ingin
menerima kredensial dari akun layanan yang tidak Anda miliki, sebaiknya gunakan token ID Google
karena Anda hanya perlu mengizinkan
https://accounts.google.com
atau accounts.google.com
sebagai penerbit untuk semua
akun layanan.
Kasus penggunaan
JWT dan akun layanan sangat cocok untuk microservice. Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi dengan akun layanan.