Memilih metode autentikasi

Framework Cloud Endpoints mendukung beberapa metode autentikasi yang sesuai untuk berbagai aplikasi dan kasus penggunaan. Endpoints Frameworks menggunakan metode autentikasi yang telah Anda tentukan dalam dekorator untuk memvalidasi permintaan masuk sebelum meneruskannya ke backend API Anda. 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 untuk tujuan kuota, penagihan, dan pemantauan.Google Cloud Developer membuat kunci API dalam project di konsol Google Cloud dan menyematkan kunci tersebut di setiap panggilan ke API Anda sebagai parameter kueri.

Jika Anda menentukan persyaratan kunci API di dekorator, Endpoints Frameworks menggunakan kunci API untuk mencariGoogle Cloud project yang terkait dengan kunci API. Endpoints Frameworks menolak permintaan kecuali jika kunci API dibuat di project Anda atau dalam project lain tempat API Anda telah diaktifkan. Google Cloud Google Cloud Untuk informasi selengkapnya, lihat Membatasi akses API dengan kunci API.

Tidak seperti kredensial yang menggunakan token berumur pendek atau permintaan bertanda tangan dan dikirim di header permintaan, klien mengirimkan 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. 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 mengetahui praktik terbaik dalam mengamankan dan menambahkan pembatasan pada kunci API, lihat Menggunakan kunci API. Meskipun "Menggunakan kunci API" ditujukan untuk klien yang menggunakan Google API, praktik terbaik ini berlaku untuk API yang Anda buat menggunakan Endpoints Frameworks.

Kasus penggunaan

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

Untuk mengetahui informasi selengkapnya tentang kunci API, lihat Alasan dan waktu penggunaan 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. Endpoints Frameworks memvalidasi bahwa JWT ditandatangani oleh Firebase dan klaim "iss" (penerbit) dalam JWT, yang mengidentifikasi aplikasi Firebase Anda, cocok dengan setelan issuer dalam dekorator.

Kasus penggunaan

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

Auth0

Auth0 mengautentikasi dan memberi otorisasi 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. Endpoints Frameworks memvalidasi bahwa JWT ditandatangani oleh Auth0 dan bahwa klaim "iss" dalam JWT, yang mengidentifikasi aplikasi Auth0 Anda, cocok dengan setelan issuer dalam dekorator.

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 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 Endpoints. Endpoints Frameworks memvalidasi token ID Google menggunakan kunci publik dan memastikan bahwa 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 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 menggunakan 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 antaraplikasi yang terhubung. JWT yang merepresentasikan 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 bukan milik Anda, 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.