Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Av Valeriy Novytskyy, Rick Anderson och Sharaf Abacery
Den här självstudien visar hur du aktiverar användarinloggning med Google-konton med hjälp av ett exempel ASP.NET Core-projekt som skapats i Använda externa inloggningsprovidrar med Identity i ASP.NET Core. Följ Googles officiella vägledning i Logga in med Google för webben: Konfigurera för att skapa ett Google API-klient-ID.
Skapa appen i Google
- Gå till sidan Google API & Services på Google Cloud-plattformen.
- Om det inte finns något projekt skapar du ett nytt projekt genom att välja knappen Skapa projekt . Om du vill välja ett annat projekt än ett befintligt projekt som läses in väljer du knappen för det inlästa projektet i det övre vänstra hörnet i användargränssnittet följt av projektet. Om du vill lägga till ett nytt projekt väljer du knappen för det inlästa projektet i det övre vänstra hörnet i användargränssnittet följt av knappen Nytt projekt .
- När du skapar ett nytt projekt:
- Ange ett projektnamn.
- Du kan också välja en organisation för projektet.
- Välj knappen Skapa.
När du har skapat projektet laddas projektets Dashboard-sida, där du kan konfigurera projektet.
Öppna fliken Autentiseringsuppgifter för att skapa OAuth-klienten.
Förutsättningen för att skapa autentiseringsuppgifterna är att konfigurera skärmen för OAuth-medgivande. Om medgivandet inte har konfigurerats uppmanas du att konfigurera medgivandeskärmen.
- Välj skärmen Konfigurera medgivande eller välj skärmen OAuth-medgivande i sidofältet.
- På skärmen OAuth-medgivande väljer du Kom igång.
- Ange appnamn och e-post för användarsupport.
- Ställ in målgruppstypen på Extern.
- Lägg till kontaktinformation genom att ange en e-postadress för kontakt.
- Godkänn villkoren.
- Välj Skapa.
Skapa klientautentiseringsuppgifterna för appen genom att öppna menyalternativet Klienter i sidofältet:
- Välj knappen Skapa klient .
- Välj Webbprogram som programtyp.
- Ange ett namn för klienten.
- Lägg till en auktoriserad omdirigerings-URI. För lokal testning använder du standardadressen
https://localhost:{PORT}/signin-google{PORT}, där platshållaren är appens port. - Välj knappen Skapa för att skapa klienten.
- Spara klient-ID och klienthemlighet, som används senare i ASP.NET appkonfigurationen.
Anmärkning
URI-segmentet /signin-google anges som standardåteranrop för Google-autentiseringsprovidern. Det går att ändra standardåteranrops-URI:n när du konfigurerar Mellanprogrammet för Google-autentisering via klassens RemoteAuthenticationOptions.CallbackPath ärvda GoogleOptions egenskap.
När du distribuerar appen, antingen:
- Uppdatera appens omdirigerings-URI i Google Console till appens distribuerade omdirigerings-URI.
- Skapa en ny Google API-registrering i Google Console för produktionsappen med dess omdirigerings-URI för produktion.
Lagra Googles klient-ID och hemlighet
Lagra känsliga inställningar, till exempel Googles klient-ID och hemliga värden, med Secret Manager. Följ dessa steg för det här exemplet:
Initiera projektet för hemlig lagring enligt anvisningarna i Säker lagring av apphemligheter under utveckling i ASP.NET Core.
Lagra de känsliga inställningarna i det lokala hemliga förrådet med de hemliga nycklarna
Authentication:Google:ClientId(platshållare för värde:{CLIENT ID}) ochAuthentication:Google:ClientSecret(platshållare för värde:{CLIENT SECRET}):dotnet user-secrets set "Authentication:Google:ClientId" "{CLIENT ID}" dotnet user-secrets set "Authentication:Google:ClientSecret" "{CLIENT SECRET}"
Den : avgränsaren fungerar inte med hierarkiska nycklar för miljövariabler på alla plattformar. Till exempel stöds inte :-avgränsaren av Bash. Det dubbla understrecket, __, är:
- Stöds av alla plattformar.
- Ersätts automatiskt av ett kolon,
:.
Hantera API-autentiseringsuppgifter och användning i API-konsolen.
Konfigurera Google-autentisering
Lägg till autentiseringstjänsten i Program filen:
services.AddAuthentication().AddGoogle(googleOptions =>
{
googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});
Lägg till autentiseringstjänsten i Startup.ConfigureServices:
services.AddAuthentication().AddGoogle(googleOptions =>
{
googleOptions.ClientId = configuration["Authentication:Google:ClientId"];
googleOptions.ClientSecret = configuration["Authentication:Google:ClientSecret"];
});
Överbelastningen AddAuthentication(IServiceCollection, String) ställer in egenskapen DefaultScheme. Med AddAuthentication(IServiceCollection, Action<AuthenticationOptions>) överlagring kan du konfigurera autentiseringsalternativ, som kan användas för att konfigurera standardautentiseringsscheman för olika syften. Efterföljande anrop till AddAuthentication åsidosätter tidigare konfigurerade egenskaper för AuthenticationOptions.
AuthenticationBuilder tilläggsmetoder som registrerar en autentiseringshanterare kan bara anropas en gång per autentiseringsschema. Det finns överlagringar som gör det möjligt att konfigurera schemaegenskaper, schemanamn och visningsnamn.
Logga in med Google
- Kör appen och välj Logga in.
- Under Använd en annan tjänst för att logga in. väljer du Google.
- Webbläsaren omdirigeras till Google för autentisering.
- Välj Google-kontot för att logga in eller ange Google-autentiseringsuppgifter.
- Om det är första gången du loggar in uppmanas appen att komma åt Google-kontoinformationen.
- Webbläsaren omdirigeras tillbaka till appen, där det är möjligt att ange e-postmeddelandet.
Användaren är nu inloggad med Google-autentiseringsuppgifter.
Felsökning
- Om inloggningen inte fungerar utan att få några fel växlar du till utvecklingsläge för att göra appen och Google-registreringen enklare att felsöka.
- Om platsens databas inte har skapats genom att tillämpa den första migreringen uppstår följande fel: En databasåtgärd misslyckades när begäran bearbetades. Välj Tillämpa migreringar för att skapa databasen och uppdatera sidan för att fortsätta förbi felet.
- Information om ett HTTP 500-fel efter att ha framgångsrikt autentiserat begäran av OAuth 2.0-leverantören, som Google, och information om hur du implementerar extern autentisering med Google för React och andra SPA-appar finns i Middleware som inte hanterar 'signin-google'-routen efter lyckad autentisering i Asp.Net Core Web Api extern inloggningsautentisering (
dotnet/AspNetCore.Docs#14169).
Nästa steg
- Den här artikeln visar autentisering med Google. Information om hur du autentiserar med andra externa leverantörer finns i Använda externa inloggningsprovidrar med Identity i ASP.NET Core.
- När appen har distribuerats till Azure ska du återställa
ClientSecreti Google API-konsolen. - Ange
Authentication:Google:ClientIdochAuthentication:Google:ClientSecretsom appinställningar i Azure-portalen. Konfigurationssystemet är konfigurerat för att läsa nycklar från miljövariablerna.
Ytterligare resurser
ASP.NET Core