Nutzer mit externen Identitäten authentifizieren

In dieser Kurzanleitung erfahren Sie, wie Sie eine Anwendung mithilfe von Identity-Aware Proxy (IAP) und externen Identitäten schützen. Durch die Kombination von IAP und Identity Platform können Sie Nutzer neben dem Google-Konto auch über eine Vielzahl von Identitätsanbietern wie OAuth, SAML und OIDC authentifizieren.

Im Rahmen dieser Kurzanleitung schützen Sie eine App Engine-Anwendung mithilfe der Facebook-Authentifizierung.

Hinweis

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

  4. Initialisieren Sie App Engine für Ihr Projekt:

    gcloud app create --project=project-id
    
  5. Installieren Sie Git.

  6. Aktuelle Version von installieren Node.js

  7. Installieren Sie das Firebase-Befehlszeilentool:

    npm install -g firebase-tools
    

APIs aktivieren

Aktivieren Sie zuerst Identity Platform:

  1. Rufen Sie die Seite Identity Platform Marketplace auf der Google Cloud Console

    Zur Seite "Identity Platform Marketplace"

  2. Klicken Sie auf Identity Platform aktivieren. Die Seite „Identity Platform“ wird angezeigt in der Google Cloud Console.

Aktivieren Sie anschließend IAP:

  1. Rufen Sie in der Google Cloud Console die Seite IAP auf.

    Zur Seite "IAP".

  2. Wählen Sie das Projekt aus, das Sie auch für Identity Platform verwendet haben. Die Verwendung unterschiedlicher Projekte wird nicht unterstützt.

  3. Klicken Sie auf API aktivieren.

Beispielcode herunterladen und bereitstellen

Der Code für diese Kurzanleitung besteht aus zwei Komponenten: einer Clientanwendung und einer Authentifizierungsanwendung.

Die Clientanwendung ist durch IAP geschützt. Wenn sie eine Anfrage von einem nicht authentifizierten Nutzer erhält, leitet sie die Anfrage an die Authentifizierungsanwendung weiter, damit die Identität des Nutzers überprüft wird. Meldet sich der Nutzer erfolgreich an, antwortet die Authentifizierungsanwendung mit einem JSON-Webtoken (JWT). Zu Demonstrationszwecken wird das JWT von der Clientanwendung angezeigt.

Laden Sie zuerst den Code herunter und stellen Sie die Clientanwendung bereit:

  1. Laden Sie den Beispielcode herunter:

    git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
    
  2. Wechseln Sie in das Verzeichnis der Clientanwendung:

    cd iap-gcip-web-toolkit/sample/app
    
  3. Installieren Sie die Abhängigkeiten:

    npm install
    
  4. Stellen Sie die Clientanwendung in App Engine bereit:

    npm run deploy
    

    Die Clientanwendung wird unter folgender URL gestartet:

    https://[PROJECT-ID].appspot.com
    

Stellen Sie als Nächstes die Authentifizierungsanwendung bereit:

  1. Wechseln Sie in das Verzeichnis für die Authentifizierungsanwendung:

    cd ../authui-firebaseui
    
  2. Installieren Sie die Abhängigkeiten:

    npm install
    
  3. Konfigurieren Sie die Authentifizierungsanwendung für die Verwendung von Firebase Hosting. Google Cloud angeben Projekt-ID des Google Cloud-Projekts, das den IAP enthält Protected Client-Anwendung:

    firebase use project-id
    
  4. Stellen Sie die Anwendung bereit:

    npm run deploy
    

    Die Authentifizierungsanwendung wird unter folgender URL gestartet:

    https://[PROJECT-ID].firebaseapp.com
    

Sie haben jetzt die Client- und Authentifizierungsanwendungen bereitgestellt. Im nächsten Schritt konfigurieren Sie Identity Platform und IAP.

Identity Platform einrichten

IAP verwendet Identity Platform zum Authentifizieren externer Identitäten. In dieser Kurzanleitung wird als Beispiel Facebook verwendet. Identity Platform unterstützt aber eine Vielzahl von Identitätsanbietern.

Eine Facebook-Anwendung erstellen

Zum Authentifizieren von Nutzern mit Facebook benötigen Sie eine App-ID und ein App-Secret.

  1. Melden Sie sich bei Facebook für Entwickler an. Wenn Sie noch kein Facebook-Konto haben, müssen Sie ein solches Konto erstellen.

  2. Rufen Sie die Seite Anwendungen von Facebook auf.

  3. Klicken Sie auf Neue Anwendung hinzufügen.

  4. Wählen Sie im linken Menü Einstellungen > Allgemein aus.

  5. Geben Sie in das Feld URL der Datenerklärung eine gültige URL ein. Wenn Sie die Anwendung später für die Produktion bereitstellen, können Sie die URL entsprechend aktualisieren, damit sie auf Ihre Datenschutzerklärung verweist.

  6. Notieren Sie sich Ihre App-ID und Ihr App-Secret. Sie benötigen diese Informationen im nächsten Abschnitt.

Facebook als Identitätsanbieter hinzufügen

Konfigurieren Sie Identity Platform für die Authentifizierung mit Facebook:

  1. Rufen Sie in der Google Cloud Console die Seite Identitätsanbieter auf.

    Zur Seite "Identitätsanbieter"

  2. Klicken Sie auf Anbieter hinzufügen.

  3. Wählen Sie aus der Liste der Anbieter Facebook aus.

  4. Geben Sie die App-ID und das App-Secret ein, die Sie im vorherigen Abschnitt abgerufen haben.

  5. Klicken Sie auf Save (Speichern).

OAuth-Weiterleitungs-URI konfigurieren

Wenn Facebook die Verarbeitung einer Anfrage durch die Authentifizierungsanwendung abgeschlossen hat, wird ein URI für die Weiterleitung benötigt.

  1. Kehren Sie zur Seite Anwendungen von Facebook zurück und wählen Sie Ihre Anwendung aus.

  2. Klicken Sie im linken Menü auf Produkte.

  3. Suchen Sie das Produkt Facebook Log-in und klicken Sie auf Einrichten.

  4. Wählen Sie im linken Navigationsmenü Einstellungen aus. Den Schnellstartassistenten müssen Sie nicht ausführen.

  5. Geben Sie im Feld Gültige OAuth-Weiterleitungs-URIs den Weiterleitungs-URI ein:

    https://project-id.firebaseapp.com/__/auth/handler
    

    Sie finden diesen URI auch auf der Konfigurationsseite des Identity Platform-Anbieters.

  6. Klicken Sie auf Änderungen speichern.

Sie haben das Einrichten von Identity Platform nun abgeschlossen. Jetzt können Sie IAP für die Authentifizierung konfigurieren.

IAP für die Verwendung externer Identitäten aktivieren

  1. Rufen Sie in der Google Cloud Console die Seite „IAP“ auf.

    Zur Seite "IAP".

  2. Klicken Sie auf den Tab ANWENDUNGEN.

  3. Wählen Sie die App Engine-Anwendung aus, die Sie zuvor bereitgestellt haben. Die URL in der Kategorie Published (Veröffentlicht) sollte in etwa so aussehen:

    https://project-id.appspot.com
    
  4. Stellen Sie den Schieberegler in der Spalte "IAP" auf Ein.

  5. Klicken Sie in der Seitenleiste bei Externe Identitäten zur Autorisierung verwenden auf Starten.

  6. Wählen Sie unter Anmeldeseite die Option Eigene Seite bereitstellen aus.

  7. Geben Sie im Feld Authentifizierungs-URL die URL der Authentifizierungsanwendung ein. Diese sollte in etwa so aussehen:

    https://project-id.firebaseapp.com/
    

    Nachdem Sie die URL eingegeben haben, hängt Ihren API-Schlüssel an.

  8. Klicken Sie das Kästchen mit dem Namen Ihres Projekts an. Facebook sollte als Identitätsanbieter aufgeführt sein.

  9. Klicken Sie auf Speichern.

Sie haben IAP nun fertig eingerichtet.

Nutzerauthentifizierung testen

Testen, ob IAP Ihre Anwendung schützt und sich authentifiziert Nutzer mit Facebook:

  1. Rufen Sie in Ihrem Browser die App Engine-Clientanwendung auf:

    https://project-id.appspot.com
    

    Nach einem kurz angezeigten Ladebildschirm werden Sie zur Anmeldeseite von Identity Platform weitergeleitet.

  2. Folgen Sie der Anleitung auf dem Bildschirm, um sich bei Facebook zu authentifizieren.

  3. Sie sollten nun wieder zur Clientanwendung geleitet werden, in der das von Identity Platform zurückgegebene JWT angezeigt wird.

Um sich vollständig abzumelden, müssen Sie sich von der von Ihnen erstellten Beispiel-App abmelden und Facebook Sie müssen sich von beiden Apps abmelden, da Firebase eine Sitzung einrichtet die eine Stunde lang gültig ist. Weitere Informationen finden Sie unter Nutzer verwalten Sitzungen.

Glückwunsch! Sie haben eine Anwendung in App Engine bereitgestellt und sie mit IAP sowie mit externen Identitäten geschützt.

Bereinigen

Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Gegebenenfalls sollten Sie auch die von Ihnen erstellte Facebook-Anwendung löschen.

Nächste Schritte