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 och Rick Anderson
Den här artikeln beskriver hur du skapar en ASP.NET Core-app som gör det möjligt för användare att logga in med OAuth 2.0 med autentiseringsuppgifter från externa autentiseringsprovidrar.
Facebook, Twitter, Googleoch Microsoft providers beskrivs i följande avsnitt och använder startprojektet som skapats i den här artikeln. Andra leverantörer är tillgängliga i tredjepartspaket som OpenIddict, AspNet.Security.OAuth.Providers och AspNet.Security.OpenId.Providers.
Att göra det möjligt för användare att logga in med sina befintliga autentiseringsuppgifter är praktiskt för användarna och flyttar många av komplexiteterna med att hantera inloggningsprocessen till en tredje part.
Skapa ett nytt ASP.NET Core-projekt
- Välj mallen ASP.NET Core Web App. Välj OK.
- I autentiseringstypens fält väljer du enskilda konton.
Utför migrationer
- Kör appen och välj länken Registrera.
- Ange e-post och lösenord för det nya kontot och välj sedan Registrera.
- Följ anvisningarna för att tillämpa migreringar.
Vidarebefordra begärans information genom en proxy eller lastbalanserare
Om appen distribueras bakom en proxyserver eller lastbalanserare kan en del av den ursprungliga begärandeinformationen vidarebefordras till appen i begärandehuvuden. Den här informationen omfattar vanligtvis schemat för säker begäran (https), värd och klientens IP-adress. Appar läser inte automatiskt dessa begärandehuvuden för att identifiera och använda den ursprungliga begärandeinformationen.
Schemat används i länkgenerering som påverkar autentiseringsflödet med externa leverantörer. Förlorar man det säkra protokollet (https) resulterar det i att appen genererar felaktiga osäkra omdirigerings-URL:er.
Använd Middleware för vidarebefordrade rubriker för att göra den ursprungliga begärandeinformationen tillgänglig för appen för hantering av begäran.
Mer information finns i Konfigurera ASP.NET Core att fungera med proxyservrar och lastbalanserare.
Använda Secret Manager för att lagra token som tilldelats av inloggningsprovidrar
Leverantörer av sociala inloggningar tilldelar program-ID och programhemlighetstoken under registreringsprocessen. De exakta tokennamnen varierar beroende på provider. Dessa token representerar de autentiseringsuppgifter som appen använder för att komma åt providerns API. Token utgör användarhemligheter som kan länkas till din appkonfiguration med hjälp av Secret Manager. Användarhemligheter är ett säkrare alternativ till att lagra token i en konfigurationsfil, till exempel appsettings.json.
Viktig
Secret Manager är endast avsett för lokal utveckling och testning. Skydda mellanlagrings- och produktionshemligheter med Azure Key Vault-konfigurationsprovidern, som också kan användas för lokal utveckling och testning om du föredrar att inte använda Secret Manager lokalt.
Information om hur du lagrar de token som tilldelats av varje inloggningsprovider finns i Säker lagring av apphemligheter under utveckling i ASP.NET Core.
Konfigurera inloggningsprovidrar
Använd följande artiklar för att konfigurera inloggningsprovidrar och appen:
- Instruktioner för Facebook
- Instruktioner för Twitter
- Instruktioner för Google
- Instruktioner för Microsoft
- Instruktioner från annan leverantör
Flera autentiseringsprovidrar
När appen kräver flera leverantörer, kopplar du samman leverantörernas tilläggsmetoder på AddAuthentication:
builder.Services.AddAuthentication()
.AddGoogle(options =>
{
// Google configuration options
})
.AddFacebook(options =>
{
// Facebook configuration options
})
.AddMicrosoftAccount(options =>
{
// Microsoft Account configuration options
})
.AddTwitter(options =>
{
// Twitter configuration options
});
Detaljerad konfigurationsvägledning för varje provider finns i deras respektive artiklar.
Du kan också ange ett lösenord
När du registrerar dig hos en extern inloggningsprovider har du inget lösenord registrerat med appen. Detta gör att du inte kan skapa och komma ihåg ett lösenord för webbplatsen, men det gör dig också helt beroende av den externa inloggningsprovidern för webbplatsåtkomst. Om den externa inloggningsprovidern inte är tillgänglig kan du inte logga in på appen.
Så här skapar du ett lösenord och loggar in med din e-post som du angav under inloggningsprocessen med externa leverantörer:
- Välj länken Hello <e-postalias> i det övre högra hörnet för att navigera till Hantera-vyn:
- Välj Skapa:
- Ange ett giltigt lösenord så kan du använda den här autentiseringsuppgiften för att logga in med din e-postadress.
Ytterligare information
ASP.NET Core