Accesso programmatico a risorse non Google

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questo articolo illustra come accedere in modo programmatico a una risorsa protetta da Identity-Aware Proxy (IAP) utilizzando identità esterne.

È possibile eseguire questa operazione in diversi casi:

  • L'applicazione frontend utilizza Identity Platform direttamente. Il server API di backend viene creato utilizzando App Engine e protetto da IAP tramite identità esterne.

  • L'applicazione è progettata per l'utilizzo in un ambiente browser non tradizionale, ad esempio Android, iOS o la riga di comando, in cui non è possibile utilizzare un reindirizzamento del browser per autenticare gli utenti.

Accesso alle risorse

Per accedere a una risorsa in modo programmatico, procedi come riportato di seguito:

  1. Recupera il token ID dell'utente.

    Node.js

    Assicurati che l'utente abbia eseguito l'accesso. Il codice riportato di seguito mostra un semplice esempio di accesso di un utente con un'email e una password:

    // 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.
      });
    

    Puoi quindi recuperare un token ID sull'oggetto user:

    user.getIdToken()
      .then((idToken) => {
        // idToken is now available and can be sent to API server.
      })
      .catch((error) => {
        // Handler error.
      });
    

    REST

    La chiamata a signInWithPassword restituisce un token ID nella risposta:

    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. Includi il token ID nell'intestazione dell'autorizzazione quando chiami un endpoint protetto da IAP.

    curl -H "Authorization: Bearer GCIP-ID-TOKEN" "https://example.appspot.com/api"