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
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Make sure that billing is enabled for your Google Cloud project.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Initialisieren Sie App Engine für Ihr Projekt:
gcloud app create --project=project-id
Installieren Sie eine aktuelle Version von Node.js.
Installieren Sie das Firebase-Befehlszeilentool:
npm install -g firebase-tools
APIs aktivieren
Aktivieren Sie zuerst Identity Platform:
Rufen Sie in der Google Cloud Console die Seite Identity Platform Marketplace auf.
Klicken Sie auf Identity Platform aktivieren. In der Google Cloud Console wird dann die Seite „Identity Platform“ angezeigt.
Aktivieren Sie anschließend IAP:
Rufen Sie in der Google Cloud Console die Seite IAP auf.
Wählen Sie das Projekt aus, das Sie auch für Identity Platform verwendet haben. Die Verwendung unterschiedlicher Projekte wird nicht unterstützt.
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:
Laden Sie den Beispielcode herunter:
git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
Wechseln Sie in das Verzeichnis der Clientanwendung:
cd iap-gcip-web-toolkit/sample/app
Installieren Sie die Abhängigkeiten:
npm install
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:
Wechseln Sie in das Verzeichnis für die Authentifizierungsanwendung:
cd ../authui-firebaseui
Installieren Sie die Abhängigkeiten:
npm install
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 clientseitige Anwendung mit IAP-Schutz enthält:
firebase use project-id
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.
Melden Sie sich bei Facebook für Entwickler an. Wenn Sie noch kein Facebook-Konto haben, müssen Sie ein solches Konto erstellen.
Rufen Sie die Seite Anwendungen von Facebook auf.
Klicken Sie auf Neue Anwendung hinzufügen.
Wählen Sie im linken Menü Einstellungen > Allgemein aus.
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.
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:
Rufen Sie in der Google Cloud Console die Seite Identitätsanbieter auf.
Klicken Sie auf Anbieter hinzufügen.
Wählen Sie aus der Liste der Anbieter Facebook aus.
Geben Sie die App-ID und das App-Secret ein, die Sie im vorherigen Abschnitt abgerufen haben.
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.
Kehren Sie zur Seite Anwendungen von Facebook zurück und wählen Sie Ihre Anwendung aus.
Klicken Sie im linken Menü auf Produkte.
Suchen Sie das Produkt Facebook Log-in und klicken Sie auf Einrichten.
Wählen Sie im linken Navigationsmenü Einstellungen aus. Den Schnellstartassistenten müssen Sie nicht ausführen.
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.
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
Rufen Sie in der Google Cloud Console die Seite „IAP“ auf.
Klicken Sie auf den Tab ANFRAGEN.
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
Stellen Sie den Schieberegler in der Spalte "IAP" auf Ein.
Klicken Sie in der Seitenleiste neben Externe Identitäten zur Autorisierung verwenden auf Starten.
Wählen Sie unter Anmeldeseite die Option Eigene Seite bereitstellen aus.
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, wird von der Google Cloud Console automatisch der API-Schlüssel angehängt.
Klicken Sie das Kästchen mit dem Namen Ihres Projekts an. Facebook sollte als Identitätsanbieter aufgeführt sein.
Klicken Sie auf Speichern.
Sie haben IAP nun fertig eingerichtet.
Nutzerauthentifizierung testen
So testen Sie, ob IAP Ihre App schützt und Nutzer über Facebook authentifiziert:
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.
Folgen Sie der Anleitung auf dem Bildschirm, um sich bei Facebook zu authentifizieren.
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 von Facebook abmelden. Du musst dich von beiden Apps abmelden, da Firebase eine Sitzung mit Facebook herstellt, die eine Stunde lang 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 in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- 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
- Authentifizierungs-UI mit FirebaseUI personalisieren oder Personalisierte UI neu erstellen
- Mehr zum Konfigurieren von Identitätsanbietern mit Identity Platform erfahren
- Mehr zum Erstellen spezifischer Silos von Nutzern und Konfigurationen mithilfe der Mehrinstanzenfähigkeit von Identity Platform erfahren