Mengakses resource non-Google secara terprogram

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:

  1. 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
      }'
  2. 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"