ID de la région
Le REGION_ID est un code abrégé que Google attribue en fonction de la région que vous sélectionnez lors de la création de votre application. Le code ne correspond pas à un pays ou une province, même si certains ID de région peuvent ressembler aux codes de pays et de province couramment utilisés. Pour les applications créées après février 2020, REGION_ID.r est inclus dans les URL App Engine. Pour les applications existantes créées avant cette date, l'ID de région est facultatif dans l'URL.
En savoir plus sur les ID de région.
L'API App Identity permet à une application de découvrir son ID application (également appelé ID du projet). Cet ID permet à l'application App Engine de valider son identité auprès d'autres applications App Engine, d'API Google et d'applications et services tiers. L'ID application peut également être utilisé pour générer une URL ou une adresse e-mail, ou pour prendre une décision d'exécution.
Obtenir l'ID du projet
Pour obtenir l'ID du projet, vous pouvez utiliser la
appengine.AppID fonction.
Obtenir le nom d'hôte de l'application
Par défaut, les applications App Engine sont diffusées à partir d'URL au format https://PROJECT_ID.REGION_ID.r.appspot.com, où l'ID du projet fait partie du nom d'hôte.
Si une application est diffusée à partir d'un domaine personnalisé, il peut être nécessaire de récupérer l'intégralité du nom d'hôte. Pour ce faire, utilisez l'attribut
appengine.DefaultVersionHostname.
La méthode
Valider l'identité auprès d'autres applications App Engine
Si vous souhaitez déterminer l'identité de l'application App Engine qui envoie une requête à votre application App Engine, vous pouvez utiliser l'en-tête de requête X-Appengine-Inbound-Appid. Cet en-tête est ajouté à la requête par le service URLFetch et n'est pas modifiable par l'utilisateur. Sa présence indique donc avec certitude l'ID du projet de l'application à l'origine de la requête, s'il existe.
Exigences :
Seuls les appels passés au domaine
appspot.comde votre application contiennent l'en-têteX-Appengine-Inbound-Appid. Les appels aux domaines personnalisés ne contiennent pas cet en-tête.
Dans votre gestionnaire d'applications, vous pouvez vérifier l'ID entrant en lisant l'en-tête X-Appengine-Inbound-Appid et en le comparant à une liste d'ID autorisés à effectuer des requêtes.
Valider l'identité auprès des API Google
Les API Google utilisent le protocole OAuth 2.0 pour l'authentification et l'autorisation. L'API App Identity peut créer des jetons OAuth qui permettent de confirmer que la source d'une requête est l'application elle-même. La méthode
appengine.AccessToken la méthode
renvoient toutes un
jeton d'accès pour un champ d'application ou une liste de champs d'application. Ce jeton peut ensuite être défini dans les en-têtes HTTP d'un appel pour identifier l'application appelante.
L'exemple suivant montre comment utiliser l'API App Identity pour passer un appel REST à l'API Google URL Shortener.
import (
"context"
"fmt"
"net/http"
"google.golang.org/appengine/v2"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
"google.golang.org/appengine/v2/urlfetch"
)
func handler(w http.ResponseWriter, r *http.Request) {
ctx := appengine.NewContext(r)
client := &http.Client{
Transport: &oauth2.Transport{
Source: google.AppEngineTokenSource(ctx, "https://www.googleapis.com/auth/urlshortener"),
Base: &urlfetch.Transport{Context: ctx},
},
}
// ... use client to make requests
_ = client
fmt.Fprintln(w, "Client created")
}
Notez que l'identité de l'application est représentée par le nom du compte de service,
qui est généralement applicationid@appspot.gserviceaccount.com. Vous pouvez obtenir la
valeur exacte à l'aide de la
appengine.ServiceAccount fonction
. Pour les services qui offrent des LCA, vous pouvez accorder l'accès à l'application en accordant l'accès à ce compte.
Valider l'identité auprès de services tiers
Le jeton généré par
appengine.AccessToken fonction
ne fonctionne que pour les services Google.
Vous pouvez toutefois utiliser la technologie de signature sous-jacente pour valider l'identité de votre application auprès d'autres services. La méthode
appengine.SignBytes la méthode
signent les octets à l'aide d'une clé privée propre à votre application, tandis que la méthode
appengine.PublicCertificates la méthode
renvoient des certificats permettant de valider la signature.
Obtenir le nom du bucket Cloud Storage par défaut
Chaque application peut être associée à un bucket Cloud Storage par défaut, qui comprend 5 Go de stockage sans frais et un quota sans frais pour les opérations d'E/S.