Questo articolo illustra come accedere in modo programmatico a una risorsa protetta da Identity-Aware Proxy (IAP) utilizzando identità esterne.
Esistono diverse situazioni in cui può essere opportuno eseguire questa operazione:
L'applicazione frontend utilizza direttamente Identity Platform. Il tuo server API di backend è stato creato con App Engine ed è protetto da IAP tramite identità esterne.
L'applicazione è progettata per l'utilizzo in un ambiente browser non tradizionale, ad esempio su 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, segui questi passaggi:
Recupera il token ID dell'utente.
Node.js
Assicurati che l'utente abbia eseguito l'accesso. Il codice seguente mostra un semplice esempio di accesso di un utente con indirizzo email e 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 nell'oggetto
user
:user.getIdToken() .then((idToken) => { // idToken is now available and can be sent to API server. }) .catch((error) => { // Handler error. });
REST
La chiamata di
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 }'
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"