Freigeben über


Einrichtung der externen Google-Anmeldung in ASP.NET Core

Von Valeriy Novytskyy, Rick Anderson und Sharaf Abacery

In diesem Lernprogramm wird gezeigt, wie Sie die Benutzeranmeldung mit Google-Konten mithilfe eines Beispiels ASP.NET Core-Projekts aktivieren, das unter Verwendung externer Anmeldeanbieter mit Identity ASP.NET Core erstellt wurde. Folgen Sie googles offiziellen Anleitungen bei der Anmeldung mit Google for Web: Einrichten , um eine Google-API-Client-ID zu erstellen.

Erstellen der App in Google

  • Navigieren Sie zur Seite Google API & Services der Google Cloud-Plattform.
  • Wenn kein Projekt vorhanden ist, erstellen Sie ein neues Projekt, indem Sie die Schaltfläche " Projekt erstellen " auswählen. Wenn Sie ein anderes Projekt als ein vorhandenes Projekt auswählen möchten, das geladen wird, wählen Sie die Schaltfläche des geladenen Projekts in der oberen linken Ecke der Benutzeroberfläche aus, gefolgt von dem Projekt. Um ein neues Projekt hinzuzufügen, wählen Sie die Schaltfläche des geladenen Projekts in der oberen linken Ecke der Benutzeroberfläche aus, gefolgt von der Schaltfläche " Neues Projekt ".
  • Beim Erstellen eines neuen Projekts:
    • Geben Sie einen Projektnamen ein.
    • Wählen Sie optional eine Organisation für das Projekt aus.
    • Wählen Sie die Schaltfläche Erstellen.

Nach dem Erstellen des Projekts wird die Dashboardseite des Projekts geladen, wo es möglich ist, das Projekt zu konfigurieren.

Öffnen Sie die Registerkarte "Anmeldeinformationen ", um den OAuth-Client zu erstellen.

Die Voraussetzung zum Erstellen der Anmeldeinformationen besteht darin, den OAuth-Zustimmungsbildschirm zu konfigurieren. Wenn die Zustimmung nicht konfiguriert ist, wird eine Aufforderung zum Konfigurieren des Zustimmungsbildschirms angezeigt.

  • Wählen Sie " Zustimmungsbildschirm konfigurieren" aus, oder wählen Sie in der Randleiste den Bildschirm "OAuth-Zustimmung " aus.
  • Wählen Sie im OAuth-Zustimmungsbildschirm"Erste Schritte" aus.
  • Legen Sie den App-Namen und die E-Mail des Benutzersupports fest.
  • Legen Sie den Zielgruppentyp auf "Extern" fest.
  • Fügen Sie Kontaktinformationen hinzu, indem Sie eine E-Mail-Adresse eines Kontakts eingeben.
  • Stimmen Sie den Bedingungen zu.
  • Wählen Sie "Erstellen" aus.

Erstellen Sie die Clientanmeldeinformationen für die App, indem Sie das Menüelement " Clients " öffnen:

  • Wählen Sie die Schaltfläche "Client erstellen " aus.
  • Wählen Sie die Webanwendung als Anwendungstyp aus.
  • Geben Sie einen Namen für den Client ein.
  • Fügen Sie einen autorisierten Umleitungs-URI hinzu. Verwenden Sie für lokale Tests die Standardadresse https://localhost:{PORT}/signin-google, wobei der {PORT} Platzhalter der Port der App ist.
  • Wählen Sie die Schaltfläche " Erstellen " aus, um den Client zu erstellen.
  • Speichern Sie die Client-ID und den geheimen Clientschlüssel, die später in der ASP.NET App-Konfiguration verwendet werden.

Hinweis

Das URI-Segment /signin-google wird als Standardrückruf des Google-Authentifizierungsanbieters festgelegt. Es ist möglich, den Standardrückruf-URI beim Konfigurieren der Google-Authentifizierungs-Middleware über die geerbte RemoteAuthenticationOptions.CallbackPath Eigenschaft der GoogleOptions Klasse zu ändern.

Bei der Bereitstellung der App:

  • Aktualisieren Sie den Umleitungs-URI der App in der Google-Konsole auf den bereitgestellten Umleitungs-URI der App.
  • Erstellen Sie für die Produktions-App mit dem zugehörigen Produktionsumleitungs-URI eine neue Google-API-Registrierung in der Google-Konsole.

Speichern der Google-Client-ID und des geheimen Schlüssels

Speichern Sie vertrauliche Einstellungen, z. B. die Google-Client-ID und geheime Werte, mit dem geheimen Manager. Führen Sie für dieses Beispiel die folgenden Schritte aus:

  1. Initialisieren Sie das Projekt für den geheimen Speicher gemäß den Anweisungen im sicheren Speicher von Geheimen App-Schlüsseln in der Entwicklung in ASP.NET Core.

  2. Speichern Sie die vertraulichen Einstellungen im lokalen Geheimspeicher mit den geheimen Schlüsseln Authentication:Google:ClientId (Wert: {CLIENT ID} Platzhalter) und Authentication:Google:ClientSecret (Wert: {CLIENT SECRET} Platzhalter):

    dotnet user-secrets set "Authentication:Google:ClientId" "{CLIENT ID}"
    dotnet user-secrets set "Authentication:Google:ClientSecret" "{CLIENT SECRET}"
    

Das Trennzeichen : funktioniert nicht mit hierarchischen Schlüsseln der Umgebungsvariablen auf allen Plattformen. Beispielsweise wird das Trennzeichen : von Bash nicht unterstützt. Der doppelte Unterstrich, __, ist:

  • Unterstützt von allen Plattformen.
  • Automatisch durch einen Doppelpunkt :, ersetzt.

Verwalten sie API-Anmeldeinformationen und -verwendung in der API-Konsole.

Konfigurieren der Google-Authentifizierung

Fügen Sie der Datei den Authentifizierungsdienst hinzu Program :

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});

Hinzufügen des Authentifizierungsdiensts zu Startup.ConfigureServices:

services.AddAuthentication().AddGoogle(googleOptions =>
{
    googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
    googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});

Die AddAuthentication(IServiceCollection, String)-Überladung legt die DefaultScheme-Eigenschaft fest. Die AddAuthentication(IServiceCollection, Action<AuthenticationOptions>)-Überladung ermöglicht das Konfigurieren von Authentifizierungsoptionen, die zum Einrichten von Standardauthentifizierungsschemas für verschiedene Zwecke verwendet werden können. Nachfolgende Aufrufe von AddAuthentication überschreiben die zuvor konfigurierten AuthenticationOptions-Eigenschaften.

AuthenticationBuilder Erweiterungsmethoden, die einen Authentifizierungshandler registrieren, können nur einmal pro Authentifizierungsschema aufgerufen werden. Überladungen sind vorhanden, die das Konfigurieren der Schemaeigenschaften, des Schemanamens und des Anzeigenamens ermöglichen.

Mit Google anmelden

  • Führen Sie die App aus, und wählen Sie Anmelden aus.
  • Wählen Sie unter "Nutzung eines anderen Diensts" die Option "Google" aus.
  • Der Browser wird zur Authentifizierung an Google umgeleitet.
  • Wählen Sie das Google-Konto aus, um sich anzumelden oder Google-Anmeldeinformationen einzugeben.
  • Wenn sie sich zum ersten Mal anmelden, wird die App aufgefordert, auf die Google-Kontoinformationen zuzugreifen.
  • Der Browser wird zurück zur App umgeleitet, wo es möglich ist, die E-Mail festzulegen.

Der Benutzer wird jetzt mit Google-Anmeldeinformationen angemeldet.

Fehlerbehebung

Nächste Schritte

  • In diesem Artikel wird die Authentifizierung mit Google veranschaulicht. Informationen zur Authentifizierung mit anderen externen Anbietern finden Sie unter Verwenden externer Anmeldeanbieter in Identity ASP.NET Core.
  • Nachdem die App in Azure bereitgestellt wurde, setzen Sie die ClientSecret App in der Google-API-Konsole zurück.
  • Legen Sie die Authentication:Google:ClientId App-Einstellungen im Azure-Portal fest Authentication:Google:ClientSecret . Das Konfigurationssystem ist für das Lesen von Schlüsseln aus den Umgebungsvariablen eingerichtet.