Artikel ini menunjukkan cara mengakses resource secara terprogram yang dilindungi oleh Identity-Aware Proxy (IAP) menggunakan identitas eksternal.
Ada beberapa situasi yang memungkinkan 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 didesain untuk digunakan di lingkungan browser non-tradisional, seperti Android, iOS, atau command line, yang tidak memungkinkan penggunaan pengalihan browser untuk mengautentikasi pengguna.
Mengakses sumber daya
Untuk mengakses resource secara terprogram, ikuti langkah-langkah berikut:
Ambil token ID pengguna.
Node.js
Pastikan pengguna login. Kode di bawah ini menunjukkan contoh sederhana untuk memproses 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. });
Selanjutnya, Anda dapat mengambil token ID pada 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 di header otorisasi saat memanggil endpoint yang dilindungi oleh IAP.
curl -H "Authorization: Bearer GCIP-ID-TOKEN" "https://example.appspot.com/api"