Regions-ID
REGION_ID
ist ein abgekürzter Code, den Google anhand der Region zuweist, die Sie beim Erstellen Ihrer Anwendung ausgewählt haben. Der Code bezieht sich nicht auf ein Land oder eine Provinz, auch wenn einige Regions-IDs häufig verwendeten Länder- und Provinzcodes ähneln können. Bei Anwendungen, die nach Februar 2020 erstellt wurden, ist REGION_ID.r
in den App Engine-URLs enthalten. Bei Anwendungen, die vor diesem Datum erstellt wurden, ist die Regions-ID in der URL optional.
Mit der App Identity API können Anwendungen ihre Anwendungs-ID (auch als Projekt-ID bezeichnet) ermitteln. Mithilfe der ID können App Engine-Anwendungen ihre Identität gegenüber anderen App Engine-Anwendungen, Google APIs sowie Anwendungen und Diensten von Drittanbietern bestätigen. Die Anwendungs-ID kann auch zum Generieren einer URL oder E-Mail-Adresse oder zum Ausführen einer Laufzeitentscheidung herangezogen werden.
Projekt-ID abrufen
Die Projekt-ID lässt sich mit der Methode app_identity.get_application_id()
ermitteln. Die WSGI- oder CGI-Umgebung stellt einige Implementierungsdetails bereit, die von der API verarbeitet werden.
Hostname der Anwendung abrufen
App Engine-Anwendungen werden standardmäßig über URLs im Format https://PROJECT_ID.REGION_ID.r.appspot.com
bereitgestellt, wobei die Projekt-ID Teil des Hostnamens ist.
Wenn eine Anwendung von einer benutzerdefinierten Domain bereitgestellt wird, muss möglicherweise die gesamte Komponente des Hostnamens abgerufen werden. Dazu können Sie die Methode app_identity.get_default_version_hostname()
verwenden.
Identität gegenüber anderen App Engine-Anwendungen bestätigen
Zum Ermitteln der Identität der App Engine-Anwendung, die eine Anfrage an Ihre App Engine-Anwendung sendet, verwenden Sie den Anfrage-Header X-Appengine-Inbound-Appid
. Dieser Header wird der Anfrage vom URLFetch-Dienst hinzugefügt und kann vom Nutzer nicht geändert werden. Daher wird die ID der Anwendung, die die Anfrage ausführt (falls vorhanden), sicher angezeigt.
Anforderungen:
-
Nur Aufrufe, die an die Domain
appspot.com
Ihrer Anwendung gesendet werden, enthalten den HeaderX-Appengine-Inbound-Appid
. Aufrufe an benutzerdefinierte Domains enthalten den Header nicht. -
Ihre Anfragen müssen so eingerichtet sein, dass sie keinen Weiterleitungen folgen.
Setzen Sie den Parameter
urlfetch.fetch()
follow_redirects
aufFalse
.
Die eingehende ID können Sie in Ihrem Anwendungs-Handler prüfen. Vergleichen Sie dazu den Inhalt des Headers X-Appengine-Inbound-Appid
mit der Liste der IDs, die Anfragen senden dürfen. Beispiel:
Identität gegenüber Google APIs bestätigen
Google APIs verwenden zur Authentifizierung und Autorisierung das OAuth 2.0-Protokoll. Die App Identity API kann OAuth-Tokens erstellen, mit denen bestätigt werden kann, dass die Quelle einer Anfrage die Anwendung selbst ist. Die Methode get_access_token()
gibt ein Zugriffstoken für einen Bereich oder für eine Liste von Bereichen zurück. Dieses Token kann dann in den HTTP-Headern eines Aufrufs festgelegt werden, um die aufrufende Anwendung zu identifizieren.
Der Dienstkontoname gibt die Identität der Anwendung wieder. Dieser lautet in der Regel applicationid@appspot.gserviceaccount.com. Den genauen Wert können Sie mit der Methode get_service_account_name()
abrufen.
Für Dienste, die ACLs anbieten, können Sie der Anwendung den Zugriff über dieses Konto gewähren.
Identität gegenüber Diensten von Drittanbietern bestätigen
Das von get_access_token()
generierte Token funktioniert nur in Verbindung mit Google-Diensten. Sie können jedoch die zugrunde liegende Signaturtechnologie verwenden, um die Identität Ihrer Anwendung gegenüber anderen Diensten zu bestätigen. Die Methode sign_blob()
signiert die Byte mit einem privaten Schlüssel speziell für Ihre Anwendung. Die Methode get_public_certificates()
gibt Zertifikate zurück, mit denen die Signatur validiert werden kann.
Name des standardmäßigen Cloud Storage-Buckets abrufen
Alle Anwendungen können einen standardmäßigen Cloud Storage-Bucket haben, dem 5 GB kostenloser Speicher und ein kostenloses Kontingent für E/A-Vorgänge zugeordnet sind.
Zum Abrufen des Standard-Buckets können Sie die App Identity API verwenden. Rufen Sie dazu google.appengine.api.app_identity.app_identity.get_default_gcs_bucket_name auf.