Delen via


Verificatie van externe providers in ASP.NET Core Identity

Door Valeriy Novytskyy en Rick Anderson

In dit artikel wordt uitgelegd hoe u een ASP.NET Core-app bouwt waarmee gebruikers zich kunnen aanmelden met behulp van OAuth 2.0 met referenties van externe verificatieproviders.

Facebook-, Twitter-, Googleen Microsoft-providers worden behandeld in de volgende secties en gebruiken we het startersproject dat in dit artikel is gemaakt. Andere providers zijn beschikbaar in pakketten van derden, zoals OpenIddict-, AspNet.Security.OAuth.Providers en AspNet.Security.OpenId.Providers.

Het is handig voor de gebruikers om zich aan te melden met hun bestaande inloggegevens, en het verplaatst veel van de complexiteiten van het beheer van het aanmeldproces naar een externe derde partij.

Een nieuw ASP.NET kernproject maken

  • Selecteer de sjabloon ASP.NET Core Web App. Selecteer OK-.
  • Selecteer afzonderlijke accountsin het verificatietype invoer.

Migraties toepassen

  • Voer de app uit en selecteer de koppeling Registreren.
  • Voer het e-mailadres en wachtwoord voor het nieuwe account in en selecteer registreren.
  • Volg de instructies om migraties toe te passen.

Verzoekinformatie doorsturen met een proxy of een load balancer

Als de app wordt geïmplementeerd achter een proxyserver of load balancer, worden sommige van de oorspronkelijke aanvraaggegevens mogelijk doorgestuurd naar de app in aanvraagheaders. Deze informatie omvat meestal het beveiligde aanvraagschema (https), host- en client-IP-adres. Apps lezen deze aanvraagheaders niet automatisch om de oorspronkelijke aanvraaggegevens te detecteren en te gebruiken.

Het schema wordt gebruikt bij het genereren van koppelingen die van invloed is op de verificatiestroom met externe providers. Het verlies van het beveiligde schema (https) resulteert in het genereren van onjuiste, onveilige omleidings-URL's.

Gebruik Forwarded Headers Middleware om de oorspronkelijke aanvraaggegevens beschikbaar te maken voor de app voor aanvraagverwerking.

Zie ASP.NET Core configureren voor gebruik met proxyservers en load balancersvoor meer informatie.

Secret Manager gebruiken om tokens op te slaan die zijn toegewezen door aanmeldingsproviders

Providers voor sociale aanmelding wijzen toepassings-id en application secret tokens toe tijdens het registratieproces. De exacte tokennamen variëren per provider. Deze tokens vertegenwoordigen de referenties die de app gebruikt voor toegang tot de API van de provider. De tokens vormen gebruikersgeheimen die kunnen worden gekoppeld aan uw app-configuratie met behulp van Secret Manager. Gebruikersgeheimen zijn een veiliger alternatief voor het opslaan van de tokens in een configuratiebestand, zoals appsettings.json.

Belangrijk

Secret Manager is alleen bedoeld voor lokale ontwikkeling en testen. Beveilig faserings- en productiegeheimen met de Azure Key Vault-configuratieprovider, die ook kan worden gebruikt voor lokale ontwikkeling en testen als u secret manager liever niet lokaal gebruikt.

Zie Veilige opslag van app-geheimen in ontwikkeling in ASP.NET Core voor hulp bij het opslaan van de tokens die door elke aanmeldingsprovider zijn toegewezen.

Aanmeldingsproviders configureren

Gebruik de volgende artikelen om aanmeldingsproviders en de app te configureren:

Meerdere verificatieproviders

Wanneer voor de app meerdere providers zijn vereist, koppelt u de provideruitbreidingsmethoden aan 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
    });

Zie de desbetreffende artikelen voor gedetailleerde configuratierichtlijnen voor elke provider.

Optioneel een wachtwoord instellen

Wanneer u zich registreert bij een externe aanmeldingsprovider, hebt u geen wachtwoord geregistreerd bij de app. Dit ontlast u van de noodzaak om een wachtwoord voor de site te maken en te onthouden, maar het maakt u ook volledig afhankelijk van de externe login-provider voor toegang tot de site. Als de externe aanmeldingsprovider niet beschikbaar is, kunt u zich niet aanmelden bij de app.

Als u een wachtwoord wilt maken en zich wilt aanmelden met uw e-mail die u tijdens het aanmeldingsproces hebt ingesteld bij externe providers:

  • Selecteer de koppeling Hello <e-mailadres> in de rechterbovenhoek om naar de weergave Beheren te navigeren:

-webtoepassingsweergave beheren

  • Selecteer Maken:

uw wachtwoordpagina instellen

  • Stel een geldig wachtwoord in en u kunt deze referentie gebruiken om u aan te melden met uw e-mailadres.

Aanvullende informatie