Nutzer authentifizieren

Wenn Ihre Anwendung Anfragen von Nutzern verarbeitet, sollten Sie als Best Practice den Zugriff auf zugelassene Nutzer beschränken. Nutzer haben in der Regel keine IAM-Berechtigung für Ihr Google CloudProjekt oder Ihren Cloud Run-Dienst.

Wir unterscheiden zwei Arten von Nutzern:

  • Endnutzer: Nutzer Ihrer Anwendung, die nicht unbedingt zu Ihrer Organisation gehören. Normalerweise müssen Nutzer ein Konto für sich selbst registrieren.
  • Interne Nutzer: Nutzer, die explizit von einem Administrator in Ihrer Organisation Zugriff auf Ihre Anwendung erhalten. Sie gehören normalerweise zu Ihrer Organisation.

Endnutzer authentifizieren

Wenn Sie Nutzer über E-Mail/Passwort, Telefonnummer, soziale Netzwerke wie Google, Facebook oder GitHub oder über einen benutzerdefinierten Authentifizierungsmechanismus authentifizieren möchten, können Sie Identity Platform verwenden. Die Verwendung von Firebase Authentication ähnelt der Verwendung von Identity Platform.

Sie benötigen eine öffentliche Webanwendung oder eine mobile App, die den Anmeldevorgang übernimmt und dann authentifizierte API-Aufrufe an einen Cloud Run-Dienst durchführt. Diese öffentliche Webanwendung kann selbst in einem öffentlichen Cloud Run-Dienst gehostet werden.

Eine vollständige Anleitung zur Verwendung von Identity Platform für die Endnutzerauthentifizierung finden Sie in der Anleitung Endnutzerauthentifizierung für Cloud Run.

  1. Fügen Sie Ihrem Cloud Run-Dienst Code hinzu, um ID-Tokens zu prüfen.

  2. Stellen Sie Ihren Cloud Run-Dienst öffentlich bereit.

  3. Richten Sie Identity Platform in Ihrem Projekt ein.

  4. Gehen Sie in Ihrer Web- oder mobilen Anwendung so vor:

    1. Verwenden Sie die erforderliche Firebase Authentication-Clientbibliothek, um ein ID-Token abzurufen:
    2. Fügen Sie das ID-Token in der Anfrage an den Dienst im Header Authorization: Bearer ID_TOKEN ein.

Sie können eine der folgenden Methoden verwenden, um auf Nutzerprofilinformationen zuzugreifen:

Das Tutorial Endnutzerauthentifizierung für Cloud Run enthält eine schrittweise Anleitung für eine Anwendung mit dieser Authentifizierungsmethode.

Interne Nutzer authentifizieren

Verwenden Sie für die interne Nutzerauthentifizierung Identity-Aware Proxy.

Informationen zum Einrichten von Identity-Aware Proxy für einen Cloud Run-Dienst finden Sie unter Identity-Aware Proxy für Cloud Run konfigurieren.

Für Cross-Origin Resource Sharing (CORS)-Anfragen mit authentifizierten Cloud Run-Diensten empfehlen wir, IAP für Cloud Run zu konfigurieren, anstatt die IAM-Authentifizierung zu verwenden. So kannst du IAP so konfigurieren, dass nicht authentifizierte OPTIONS-Anfragen zulässig sind. Dadurch wird die Preflight-Prüfung des Browsers erfüllt und gleichzeitig sichergestellt, dass alle anderen Anfragen authentifiziert werden.

Auch wenn IAP die OPTIONS-Anfrage zulässt, muss der Anwendungscode, den Sie in Cloud Run bereitstellen, die CORS-Preflight-Anfrage und die folgende eigentliche Anfrage verarbeiten, indem die entsprechenden CORS-Header gesendet werden.

Informationen zum Authentifizieren von Nutzern oder Dienstkonten bei einem mit Identity-Aware Proxy gesicherten Cloud Run-Dienst mit OAuth 2.0 finden Sie in der Dokumentation zur programmatischen Authentifizierung.