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.

Hinweise

  1. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  2. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  3. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

    gcloud init

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

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

  6. Installieren Sie eine aktuelle Version von Node.js.

  7. Installieren Sie das Firebase-Befehlszeilentool:

    npm install -g firebase-tools
    

APIs aktivieren

Aktivieren Sie zuerst Identity Platform:

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

    Zur Seite „Identity Platform Marketplace“

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

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. Geben Sie die Google Cloud-Projekt-ID des Google Cloud-Projekts an, das die IAP-geschützte Clientanwendung enthält:

    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 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 die Google Cloud Console automatisch 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

So testen Sie, ob IAP Ihre Anwendung schützt und Nutzer bei Facebook authentifiziert:

  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.

Wenn Sie sich vollständig abmelden möchten, müssen Sie sich von der von Ihnen erstellten Beispiel-App und Facebook abmelden. Sie müssen sich aus beiden Anwendungen abmelden, da Firebase eine Sitzung mit Facebook erstellt, die für eine Stunde gültig ist. Weitere Informationen finden Sie unter Nutzersitzungen verwalten.

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 auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

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

Nächste Schritte