Halaman ini menjelaskan cara menambahkan dukungan di API Anda untuk autentikasi pengguna dari aplikasi klien menggunakan Framework Cloud Endpoints. Perhatikan bahwa klien Android dan JavaScript saat ini didukung.
Framework Endpoint mendukung autentikasi pengguna dari aplikasi klien yang menggunakan salah satu metodologi berikut:
Apa pun metode autentikasi yang Anda gunakan, di setiap metode API tempat Anda ingin
memeriksa autentikasi yang tepat, Anda harus memeriksa User yang valid seperti
yang dijelaskan di bagian berikut:
- Melakukan autentikasi dengan Firebase Auth
- Mengautentikasi dengan Auth0
- Mengautentikasi dengan token ID Google
Prasyarat
Halaman ini mengasumsikan bahwa Anda telah:
Membuat Google Cloud project.
- Jika Anda menggunakan JWT di klien untuk mengirim permintaan yang diautentikasi ke API,
JWT harus ada di header otorisasi permintaan HTTP. JWT harus
memiliki klaim wajib berikut:
-
iss -
sub -
aud -
iat -
exp
-
Melakukan autentikasi dengan Firebase Auth
Untuk mendukung panggilan dari klien yang menggunakan Firebase Auth:
Impor App Engine Cloud Endpoints API di class API Anda:
import endpointsTambahkan objek penerbit Firebase untuk setiap klien ke decorator API. Contoh:
@endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', issuers={'firebase': endpoints.Issuer( 'https://securetoken.google.com/YOUR_PROJECT_ID, 'https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@system.gserviceaccount.com')})- Ganti
YOUR_API_NAMEdengan nama API Anda. - Ganti
VERSION_NUMBERdengan versi API Anda, misalnya,v1. - Ganti code>YOUR_PROJECT_ID dengan Google Cloud project ID klien.
- Ganti
Di setiap metode API tempat Anda ingin memeriksa autentikasi yang tepat, periksa
Useryang valid dan munculkanerror 401jika tidak ada, seperti yang ditunjukkan dalam definisi metode contoh ini:user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.Deploy Endpoints API. Anda harus men-deploy ulang Endpoints API setiap kali menambahkan klien baru.
Menambahkan autentikasi Firebase ke klien
Anda dapat menambahkan autentikasi Firebase ke kode seperti yang dijelaskan dalam dokumentasi Firebase. Klien harus memiliki project yang terkait dengannya, dan project ID harus tercantum dalam konfigurasi penerbit Firebase API. Google Cloud
Melakukan autentikasi dengan Auth0
Untuk mendukung panggilan dari klien yang menggunakan Auth0:
Impor App Engine Endpoints API di class API Anda:
import endpointsTambahkan objek penerbit Auth0 untuk setiap klien ke decorator API. Contoh:
@endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', issuers={'auth0': endpoints.Issuer( 'https://YOUR_ACCOUNT_NAME.auth0.com', 'https://YOUR_ACCOUNT_NAME.auth0.com/.well-known/jwks.json')})- Ganti
YOUR_API_NAMEdengan nama API Anda. - Ganti
VERSION_NUMBERdengan versi API Anda, misalnya,v1. - Ganti
YOUR_ACCOUNT_NAMEdengan nama akun Auth0 yang digunakan untuk klien.
- Ganti
Di setiap metode API tempat Anda ingin memeriksa autentikasi yang tepat, periksa
Useryang valid dan munculkanerror 401jika tidak ada, seperti yang ditunjukkan dalam definisi metode contoh ini:user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.Men-deploy API. Anda harus men-deploy ulang API setiap kali menambahkan klien baru.
Menambahkan autentikasi Auth0 ke klien
Anda dapat menambahkan autentikasi Auth0 ke kode seperti yang dijelaskan dalam dokumentasi Auth0. Klien harus tercantum dalam konfigurasi penerbit Auth0 API.
Mengautentikasi dengan token ID Google
Untuk mendukung panggilan dari klien yang melakukan autentikasi menggunakan token ID Google:
Dapatkan ID klien OAuth 2 untuk setiap aplikasi klien. Pemilik aplikasi klien harus membuat ID klien dari konsol Google Cloud . Untuk mengetahui petunjuknya, lihat Membuat client ID.
Impor App Engine Endpoints API di class API Anda:
import endpointsTentukan semua client ID yang ingin Anda beri akses ke API Anda di
allowed_client_ids, dan juga tentukan client ID milik klien Android di kolomaudiencesdalam decorator API. Contoh:@endpoints.api( name='YOUR_API_NAME', version='VERSION_NUMBER', allowed_client_ids=ALLOWED_CLIENT_IDS, audiences=[ANDROID_AUDIENCE]) class AuthedGreetingApi(remote.Service): # ...Ganti
ALLOWED_CLIENT_IDSdengan daftar ID klien OAuth 2 yang dihasilkan dari project setiap klien, dan gantiANDROID_AUDIENCEdengan daftar ID klien web Android. Client ID web adalah client ID dengan.apps.googleusercontent.comditambahkan, misalnya:YOUR_CLIENT_ID.apps.googleusercontent.com.Di setiap metode API tempat Anda ingin memeriksa autentikasi yang tepat, periksa
Useryang valid dan munculkanerror 401jika tidak ada, seperti yang ditunjukkan dalam definisi metode contoh ini:user = endpoints.get_current_user() # If there's no user defined, the request was unauthenticated, so we # raise 401 Unauthorized.Deploy Endpoints API. Anda perlu men-deploy ulang Endpoints API setiap kali menambahkan klien baru.
Menambahkan autentikasi token ID Google ke klien
Untuk mengetahui informasi tentang cara menambahkan kode autentikasi ke klien, lihat artikel berikut:
Langkah berikutnya
Untuk informasi latar belakang tentang autentikasi pengguna dan perbedaannya dengan otorisasi kunci API, lihat Kapan dan mengapa harus menggunakan kunci API.