Users API für gebündelte Legacy-Dienste

Die Users API ermöglicht einer Anwendung Folgendes:

  • Ermitteln, ob der aktuelle Nutzer angemeldet ist
  • Nutzer zur Anmeldung an die entsprechende Anmeldeseite weiterleiten
  • Anwendungsnutzer zur Erstellung eines neuen Google-Kontos auffordern, sofern sie noch keines haben

Während ein Nutzer bei der Anwendung angemeldet ist, kann diese auf die E-Mail-Adresse des Nutzers sowie auf seine eindeutige Nutzer-ID zugreifen. Die Anwendung erkennt auch, ob der aktuelle Nutzer ein Administrator ("Admin") ist. Dadurch lassen sich in der Anwendung leicht Bereiche implementieren, die Administratorzugriff voraussetzen.

Nutzerauthentifizierung in Python 2

Im folgenden Beispiel wird ein Nutzer, der sich bei der Anwendung angemeldet hat, mit einer personalisierten Nachricht und einem Link für die Abmeldung begrüßt. Wenn der Nutzer nicht angemeldet ist, zeigt die Anwendung einen Link zur Anmeldeseite für Google-Konten an.

Importieren Sie zuerst das Modul google.appengine.api.users.

from google.appengine.api import users

Verwenden Sie es dann, um Informationen über den Nutzer zu erhalten:

user = users.get_current_user()
if user:
    nickname = user.nickname()
    logout_url = users.create_logout_url('/')
    greeting = 'Welcome, {}! (<a href="{}">sign out</a>)'.format(
        nickname, logout_url)
else:
    login_url = users.create_login_url('/')
    greeting = '<a href="{}">Sign in</a>'.format(login_url)

Anmeldung und Administratorzugriff mit app.yaml erzwingen

Wenn es Seiten gibt, auf die nur angemeldete Nutzer Zugriff haben sollen, können Sie dies in Ihrer app.yaml-Datei einrichten. Wenn ein Nutzer auf eine URL zugreift, die für die Anmeldung konfiguriert ist und der Nutzer nicht angemeldet ist, leitet App Engine den Nutzer auf die entsprechende Google-Anmeldeseite weiter und nach der Anmeldung oder Registrierung noch einmal auf die URL Ihrer Anwendung zurück.

Die Handler-Konfiguration kann auch voraussetzen, dass der Nutzer ein registrierter Administrator für die Anwendung ist. Das heißt, der Nutzer muss die Rolle „Betrachter“, „Bearbeiter“, „Inhaber“ oder „App Engine-Administrator“ haben. So können einfach Websitebereiche erstellt werden, die nur für Administratoren zugänglich sind, ohne dass ein separater Autorisierungsmechanismus implementiert werden muss.

Wie Sie die Authentifizierung für URLs konfigurieren und die Anmeldung oder den Administratorstatus erzwingen, erfahren Sie in der Referenz zu app.yaml.

Authentifizierungsoptionen

Nutzer können von der Anwendung über eine der folgenden Optionen authentifiziert werden:

  • Google-Konto
  • Konto in Ihrer Google Workspace-Domain

Authentifizierungsoption auswählen

Nachdem Sie die Anwendung erstellt haben, können Sie die gewünschte Authentifizierungsoption auswählen. Standardmäßig verwendet Ihre Anwendung für die Authentifizierung Google-Konten. Wenn Sie eine andere Option auswählen möchten, z. B. die Google Workspace-Domain, rufen Sie in der Google Cloud Console die Seite Einstellungen Ihres Projekts auf und klicken Sie auf Bearbeiten. Wählen Sie im Drop-down-Menü Google-Authentifizierung den gewünschten Authentifizierungstyp aus und klicken Sie dann auf Speichern.

An- und Abmelden

Eine Anwendung kann erkennen, ob sich ein Nutzer mit der für die Anwendung ausgewählten Authentifizierungsoption angemeldet hat. Wenn der Nutzer nicht angemeldet ist, kann die Anwendung den Nutzer zur Seite für Google-Konten weiterleiten, wo er sich anmelden oder ein neues Google-Konto erstellen kann. Die Anwendung ruft die URL für die Anmeldeseite ab, indem sie eine Methode der Users API aufruft. Die Anwendung kann diese URL als Link anzeigen oder eine HTTP-Weiterleitung zur URL ausgeben, wenn Nutzer eine Seite besuchen, für die eine Authentifizierung erforderlich ist.

Verwendet Ihre Anwendung Google-Konten oder Google Workspace für die Authentifizierung, wird der Name der Anwendung auf der Anmeldeseite angezeigt, wenn sich der Nutzer bei dieser Anwendung anmeldet. Der angezeigte Name ist der Anwendungsname, den Sie bei der Registrierung der Anwendung angegeben haben. Sie können diesen Namen in der Google Cloud Console auf der Seite Anmeldedaten im Feld Anwendungsname ändern.

Sobald Nutzer sich angemeldet oder ein Google-Konto erstellt haben, werden sie zurück zur Anwendung geleitet. Die Anwendung stellt die Weiterleitungs-URL für die Methode bereit, mit der die Anmelde-URL generiert wird.

Die Users API verfügt auch über eine Methode für die Generierung einer URL zur Abmeldung von der Anwendung. Mit der Abmelde-URL wird die Authentifizierung von Nutzern für die Anwendung rückgängig gemacht und sie werden zur Anwendungs-URL weitergeleitet, ohne dass etwas angezeigt wird.

Nutzer werden erst dann bei der Anwendung angemeldet, wenn sie von der Anwendung dazu aufgefordert werden und die E-Mail-Adresse sowie das Passwort ihres Kontos eingeben. Das gilt auch dann, wenn sich Nutzer mit ihrem Google-Konto bei anderen Anwendungen angemeldet haben.

Kontoinformationen abrufen

Wenn ein Nutzer bei einer Anwendung angemeldet ist, kann diese bei jeder Nutzeranfrage an die Anwendung auf die E-Mail-Adresse des Kontos zugreifen. Die Anwendung kann auch auf eine Nutzer-ID zugreifen, um den Nutzer auch dann eindeutig zu identifizieren, wenn sich die E-Mail-Adresse seines Kontos geändert hat.

Die Anwendung kann auch erkennen, ob der aktuelle Nutzer ein Administrator der Anwendung ist. Ein Administrator ist ein Nutzer, der die Rolle „Betrachter“, „Bearbeiter“, „Inhaber“ oder „App Engine-Administrator“ hat. Sie können dieses Feature zum Erstellen administrativer Features für die Anwendung verwenden, auch wenn Sie keine anderen Nutzer authentifizieren. Mit den APIs für Go, Java, PHP und Python können Sie URLs „nur für Administratoren“ konfigurieren.

Nutzer und der Datenspeicher

Die Informationen des aktuellen Nutzers können von der User Service API als "User"-Objekt zurückgegeben werden. "User"-Objekte können zwar als Attributwert im Datenspeicher gespeichert werden, es wird jedoch dringend empfohlen, dies zu vermeiden, weil sie auch die E-Mail-Adresse und die eindeutige ID des Nutzers enthalten. Wenn ein Nutzer seine E-Mail-Adresse ändert und Sie den alten gespeicherten Wert User mit dem neuen Wert User vergleichen, stimmen diese nicht überein. Stattdessen sollten Sie den Nutzer-ID-Wert von User als stabile eindeutige Kennung des Nutzers verwenden.

Google-Konten und der Entwicklungsserver

Der Entwicklungsserver simuliert das Google-Kontensystem mit einem unechten Anmeldebildschirm. Wenn die Anwendung die Users API aufruft, um die URL für den Anmeldebildschirm zu erhalten, gibt die API eine spezielle URL für den Entwicklungsserver zurück, mit der eine E-Mail-Adresse, jedoch kein Passwort angefordert wird. Sie können bei dieser Aufforderung eine beliebige E-Mail-Adresse eingeben. Die Anwendung verhält sich so, als seien Sie mit einem Konto angemeldet, zu dem diese Adresse gehört.

Der fiktive Anmeldebildschirm enthält auch ein Kästchen, mit dem festgelegt werden kann, dass das fiktive Konto ein Administratorkonto ist, also die Rolle „Betrachter“, „Bearbeiter“, „Inhaber“ oder „App Engine-Administrator“ hat. Wenn Sie dieses Kästchen anklicken, verhält sich die Anwendung so, als seien Sie mit einem Administratorkonto angemeldet.

Entsprechend gibt die Users API eine Abmelde-URL zurück, mit der die unechte Anmeldung abgebrochen wird.

Die eindeutige ID für ein Nutzerobjekt im Entwicklungsserver wird ausgehend von der E-Mail-Adresse berechnet. Zwei eindeutige E-Mail-Adressen stellen immer zwei einzelne Nutzer im Entwicklungsserver dar.