Artikel ini menunjukkan cara mengakses resource yang dilindungi oleh Identity-Aware Proxy (IAP) secara terprogram menggunakan identitas eksternal.
Ada beberapa situasi yang mungkin mengharuskan Anda melakukannya:
Aplikasi frontend Anda memanfaatkan Identity Platform secara langsung. Server API backend Anda di-build menggunakan App Engine, dan dilindungi oleh IAP menggunakan identitas eksternal.
Aplikasi Anda dirancang untuk digunakan di lingkungan browser non-tradisional, seperti di Android, iOS, atau command line, tempat penggunaan pengalihan browser untuk mengautentikasi pengguna tidak memungkinkan.
Mengakses resource
Untuk mengakses resource secara terprogram, ikuti langkah-langkah berikut:
Ambil token ID pengguna.
Node.js
Pastikan pengguna login. Kode di bawah menunjukkan contoh sederhana proses login pengguna dengan email dan sandi:
// If signing in using project-level email/password IdP. // auth.tenantId = null; // This is null by default. // For signing in to a specific tenant using email/password. auth.tenantId = 'myTenantId'; auth.signInWithEmailAndPassword(email, password) .then((user) => { // User signed in. ID token can now be retrieved. }) .catch((error) => { // Handler error. });
Anda kemudian dapat mengambil token ID di objek
user
:user.getIdToken() .then((idToken) => { // idToken is now available and can be sent to API server. }) .catch((error) => { // Handler error. });
REST
Memanggil
signInWithPassword
akan menampilkan token ID dalam respons:curl 'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=API-KEY' \ -H 'Content-Type: application/json' \ --data-binary '{ "email":"EMAIL", "password":"PASSWORD", "returnSecureToken":true, "tenantId":"TENANT-ID" # Only used in multi-tenancy }'
Sertakan token ID dalam header otorisasi saat memanggil endpoint yang dilindungi oleh IAP.
curl -H "Authorization: Bearer GCIP-ID-TOKEN" "https://example.appspot.com/api"