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
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist
Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:
gcloud init
Initialisieren Sie App Engine für Ihr Projekt:
gcloud app create --project=project-id
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. Die Seite „Identity Platform“ wird in der Google Cloud Console 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 Projekt-ID an, die Sie auch für die Clientanwendung verwendet haben:
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 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 ANWENDUNGEN.
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 unter 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 der API-Schlüssel von der Google Cloud Console automatisch 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 Anwendung schützt und Nutzer mit 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.
Glückwunsch! Sie haben eine Anwendung in App Engine bereitgestellt und sie mit IAP sowie mit externen Identitäten geschützt.
Bereinigen
So vermeiden Sie, dass Ihrem Google Cloud-Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- 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
- 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