Kurzanleitung: Zugriff mit externen Identitäten verwalten

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. 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 Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  3. Installieren und initialisieren Sie das Cloud SDK.

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

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

  6. Installieren Sie 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 Cloud Console die Seite Identity Platform Marketplace auf.

    Zur Seite "Identity Platform Marketplace"

  2. Klicken Sie auf Identity Platform aktivieren. In der Cloud Console wird dann die Seite "Identity Platform" angezeigt.

Aktivieren Sie anschließend IAP:

  1. Rufen Sie in der 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 Projekt-ID an, die Sie auch für die Clientanwendung verwendet haben:

    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 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 Cloud Console die Seite "IAP" auf.

    Zur Seite "IAP".

  2. Klicken Sie auf den Tab HTTP Resources (HTTP-Ressourcen).

  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.

    IAP aktivieren

  5. Klicken Sie in der Seitenleiste unter Use external identities for authorization (Externe Identitäten zur Autorisierung verwenden) auf Start.

    Auf externe Identitäten umstellen

  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, wird von der Cloud Console automatisch der API-Schlüssel angehängt.

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

    Externe Identitäten konfigurieren

  9. Klicken Sie auf Save (Speichern).

Sie haben IAP nun fertig eingerichtet.

Zugriff testen

So testen Sie, ob IAP Ihre Anwendung schützt:

  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.

Das wars! 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 Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der 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.

Weitere Informationen