Memilih metode autentikasi

Framework Cloud Endpoints mendukung beberapa metode autentikasi yang sesuai 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 project Google Cloud untuk tujuan kuota, penagihan, dan pemantauan. Developer membuat kunci API dalam sebuah project di Konsol Google Cloud dan menyematkan kunci tersebut di setiap panggilan ke API Anda sebagai parameter kueri.

Jika Anda menetapkan persyaratan kunci API dalam anotasi, Endpoint Frameworks akan menggunakan kunci API untuk mencari project Google Cloud yang terkait dengan kunci API. Framework Endpoint menolak permintaan kecuali jika kunci API dibuat di project Google Cloud Anda atau dalam project Google Cloud lainnya yang mengaktifkan API Anda. Untuk informasi selengkapnya, lihat Membatasi akses API dengan kunci API

Tidak seperti kredensial yang menggunakan token berumur singkat atau permintaan bertanda tangan dan dikirim di 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 setiap permintaan dalam teks yang jelas di log server. Untuk alasan keamanan, jangan menggunakan kunci API itu sendiri saat panggilan API berisi data pengguna. Anda dapat menggunakan kunci API selain salah satu metode autentikasi berikut.

Untuk praktik terbaik tentang cara mengamankan dan menambahkan pembatasan ke kunci API, lihat Menggunakan kunci API. Meskipun "Menggunakan kunci API" ditargetkan untuk klien yang menggunakan Google API, praktik terbaik berlaku untuk API yang Anda buat menggunakan Framework Endpoints.

Kasus penggunaan

Jika Anda ingin menggunakan fitur Endpoint seperti quotas, setiap permintaan harus meneruskan kunci API agar Endpoint dapat mengidentifikasi project Google Cloud yang terkait dengan aplikasi klien.

Untuk mengetahui informasi selengkapnya tentang kunci API, lihat Alasan dan waktu untuk menggunakan kunci API.

Autentikasi Firebase

Autentikasi Firebase menyediakan layanan backend, SDK, dan library untuk mengautentikasi pengguna ke aplikasi seluler atau web. Autentikasi ini mengautentikasi pengguna menggunakan berbagai kredensial seperti Google, Facebook, Twitter, atau GitHub.

Library klien Firebase menandatangani JSON Web Token (JWT) dengan kunci pribadi setelah pengguna berhasil login. Framework Endpoints memvalidasi bahwa JWT ditandatangani oleh Firebase dan bahwa klaim "iss" (penerbit) di JWT, yang mengidentifikasi aplikasi Firebase Anda, cocok dengan setelan issuer dalam anotasi.

Kasus penggunaan

Karena autentikasi Firebase terintegrasi erat dengan layanan Firebase lainnya, autentikasi ini sangat cocok untuk aplikasi seluler atau web yang menggunakan Firebase. Baca bagian Mengautentikasi dengan Firebase Auth.

Auth0

Auth0 mengautentikasi serta memberikan otorisasi pada aplikasi dan API, apa pun penyedia identitas, platform, stack, dan perangkat.

Auth0 mendukung sejumlah besar penyedia dan spesifikasi Security Assertion Markup Language. Solusi ini 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. Endpoints Frameworks memvalidasi bahwa JWT ditandatangani oleh Auth0 dan bahwa klaim "iss" di 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 lebih lanjut, baca bagian Mengautentikasi dengan Auth0.

Autentikasi token ID Google

Autentikasi menggunakan token ID Google memungkinkan pengguna melakukan autentikasi dengan login menggunakan Akun Google. Setelah diautentikasi, pengguna memiliki akses ke semua layanan Google. Anda dapat menggunakan token ID Google untuk melakukan panggilan ke Google API dan API yang telah Anda implementasikan menggunakan Framework Endpoint. Endpoints Frameworks memvalidasi token ID Google menggunakan kunci publik dan memastikan klaim "iss" di 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 menggunakan autentikasi token ID Google, misalnya, jika API Anda menyertai Aplikasi Google Workspace (misalnya, pendamping Google Drive). Dengan autentikasi token ID Google, pengguna dapat melakukan autentikasi dengan login menggunakan Akun Google. Setelah diautentikasi, pengguna memiliki akses ke semua layanan Google.

Untuk mengetahui informasi selengkapnya, lihat bagian Mengautentikasi dengan token ID Google.

JWT dan akun layanan

Token Web JSON (JWT) biasa digunakan untuk membagikan klaim atau pernyataan antar-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 diterapkan, 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 Mengautentikasi dengan akun layanan.