ID regione
REGION_ID
è un codice abbreviato assegnato da Google
in base alla regione selezionata al momento della creazione dell'app. Il codice non
corrispondono a un paese o a una provincia, anche se potrebbero essere visualizzati alcuni ID regione
in modo simile ai codici paese e provincia di uso comune. Per le app create dopo il giorno
Febbraio 2020, REGION_ID.r
è incluso in
URL di App Engine. Per le app esistenti create prima di questa data,
l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
L'API App Identity consente a un'applicazione di rilevare il proprio ID (anche denominato ID progetto). Utilizzo l'ID, un'applicazione App Engine può asserire la propria identità ad altri App, API di Google e applicazioni e servizi di terze parti. La l'ID applicazione può essere utilizzato anche per generare un URL o un indirizzo email oppure una decisione in fase di runtime.
Recupero dell'ID progetto
Puoi trovare l'ID progetto utilizzando
ApiProxy.getCurrentEnvironment().getAppId()
.
Recuperare il nome host dell'applicazione
Per impostazione predefinita, le app di App Engine vengono fornite da URL nel formato
https://PROJECT_ID.REGION_ID.r.appspot.com
, dove l'ID progetto fa parte del nome host.
Se un'app viene pubblicata da un dominio personalizzato, potrebbe essere necessario recuperare il
l'intero nome host. Puoi farlo utilizzando l'attributo com.google.appengine.runtime.default_version_hostname
dell'attributo
CurrentEnvironment
.
Dichiarazione dell'identità per altre app di App Engine
Se vuoi determinare l'identità dell'app di App Engine che sta eseguendo una
all'app App Engine, puoi utilizzare l'intestazione della richiesta
X-Appengine-Inbound-Appid
. Questa intestazione viene aggiunta alla richiesta dall'URL
e non è modificabile dall'utente, perciò indica in modo sicuro
dell'ID progetto dell'applicazione, se presente.
Requisiti:
-
Solo le chiamate effettuate al dominio
appspot.com
della tua app conterranno l'intestazioneX-Appengine-Inbound-Appid
. Chiamate a domini personalizzati non contengono l'intestazione. - Le richieste devono essere impostate in modo da non seguire i reindirizzamenti. Se utilizzi URLFetchService, nell'app deve essere specificata doNotFollowRedirect. Le app in esecuzione nel runtime Java 8 non utilizzano Servizio URLFetch per impostazione predefinita. Per attivare URLFetch segui queste istruzioni.
-
Se la tua app utilizza
java.net
, aggiorna il codice per non seguire i reindirizzamenti:connection.setInstanceFollowRedirects(false);
Nel gestore delle applicazioni, puoi controllare l'ID in entrata leggendo l'evento
X-Appengine-Inbound-Appid
e lo confronta con un elenco di ID consentiti
per effettuare richieste.
Dichiarazione dell'identità alle API di Google
Le API di Google utilizzano il protocollo OAuth 2.0 per l'autenticazione e
autorizzazione. La
L'API App Identity può creare token OAuth da utilizzare per affermare che
l'origine di una richiesta è l'applicazione stessa. Il metodo getAccessToken()
restituisce un token di accesso per un ambito o un elenco di ambiti. Questo token può quindi essere
impostato nelle intestazioni HTTP di una chiamata per identificare l'applicazione chiamante.
Tieni presente che l'identità dell'applicazione è rappresentata dal nome dell'account di servizio, che in genere è applicationid@appspot.gserviceaccount.com. Puoi ottenere il valore esatto utilizzando il metodo getServiceAccountName()
.
Per i servizi che offrono ACL, puoi concedere l'accesso all'applicazione concedendo l'accesso a questo account.
Dichiarazione dell'identità a servizi di terze parti
Il token generato da getAccessToken()
funziona solo con i servizi Google. Tuttavia, puoi utilizzare la tecnologia di firma sottostante per rivendicare l'identità della tua applicazione su altri servizi. Il metodo signForApp()
firmerà i byte utilizzando una chiave privata univoca per l'applicazione e il metodo getPublicCertificatesForApp()
restituirà i certificati che possono essere utilizzati per convalidare la firma.
Recupero del nome del bucket Cloud Storage predefinito
Ogni applicazione può avere un bucket Cloud Storage predefinito, include 5 GB di spazio di archiviazione gratuito e una quota gratuita per le operazioni di I/O.
Per ottenere il nome del bucket predefinito, puoi utilizzare l'API App Identity. Chiama AppIdentityService.getDefaultGcsBucketName.