Delen via


Quickstart: ASP.NET web-app die zich aanmeldt bij Microsoft Entra-gebruikers

Welkom! Dit is waarschijnlijk niet de pagina die u verwachtte. Terwijl we aan een oplossing werken, moet u met deze koppeling naar het juiste artikel gaan:

Quickstart: Aanmelden met Microsoft toevoegen aan een ASP.NET-webapplicatie

Onze excuses voor het ongemak en waarderen uw geduld terwijl we werken om dit probleem op te lossen.

In deze quickstart downloadt en voert u een codevoorbeeld uit dat een ASP.NET-webtoepassing laat zien waarmee gebruikers kunnen worden aangemeld met Microsoft Entra-accounts.

Stap 1: Uw toepassing configureren in Azure Portal

Voer https://localhost:44368/ in voor omleidings-URI-voor het codevoorbeeld in deze quickstart.

Al geconfigureerd Uw toepassing is geconfigureerd met dit kenmerk.

Stap 2: Het project downloaden

Voer het project uit met Visual Studio 2019.

(if context involves advice) Advies

Om fouten te voorkomen die worden veroorzaakt door padlengtebeperkingen in Windows, raden we u aan het archief te extraheren of de repository te klonen in een map dicht bij de hoofdmap van uw schijf.

Stap 3: Uw app is geconfigureerd en gereed om uit te voeren

We hebben uw project geconfigureerd met waarden van de eigenschappen van uw app.

  1. Pak het .zip-bestand uit naar een lokale map die zich dicht bij de hoofdmap bevindt. Pak bijvoorbeeld C:\Azure-Samplesuit.

    U wordt aangeraden het archief uit te pakken in een map dicht bij de hoofdmap van uw schijf om fouten te voorkomen die worden veroorzaakt door padlengtebeperkingen in Windows.

  2. Open de oplossing in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).

  3. Afhankelijk van de versie van Visual Studio moet u mogelijk met de rechtermuisknop op het project >AppModelv2-WebApp-OpenIDConnect-DotNet-DotNet- klikken en vervolgens NuGet-pakketten herstellenselecteren.

  4. Open de Console voor Pakketbeheer door View>Other Windows>Package Manager Consolete selecteren. Voer vervolgens Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -ruit.

Notitie

Enter_the_Supported_Account_Info_Here

Meer informatie

In deze sectie vindt u een overzicht van de code die vereist is voor het aanmelden van gebruikers. Dit overzicht kan handig zijn om te begrijpen hoe de code werkt, wat de belangrijkste argumenten zijn en hoe u aanmelding toevoegt aan een bestaande ASP.NET toepassing.

Hoe het voorbeeld werkt

diagram van de interactie tussen de webbrowser, de web-app en het Microsoft Identity Platform in de voorbeeld-app.

NuGet-pakketten voor OWIN-middleware

U kunt de verificatiepijplijn met verificatie op basis van cookies instellen met behulp van OpenID Connect in ASP.NET met OWIN-middlewarepakketten. U kunt deze pakketten installeren door de volgende opdrachten uit te voeren in Package Manager Console in Visual Studio:

Install-Package Microsoft.Owin.Security.OpenIdConnect
Install-Package Microsoft.Owin.Security.Cookies
Install-Package Microsoft.Owin.Host.SystemWeb

OWIN-opstartklasse

De OWIN-middleware maakt gebruik van een opstartklasse die wordt uitgevoerd wanneer het hostingproces wordt gestart. In deze quickstart bevindt het startup.cs bestand zich in de hoofdmap. De volgende code toont de parameters die in deze quickstart worden gebruikt:

public void Configuration(IAppBuilder app)
{
    app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

    app.UseCookieAuthentication(new CookieAuthenticationOptions());
    app.UseOpenIdConnectAuthentication(
        new OpenIdConnectAuthenticationOptions
        {
            // Sets the client ID, authority, and redirect URI as obtained from Web.config
            ClientId = clientId,
            Authority = authority,
            RedirectUri = redirectUri,
            // PostLogoutRedirectUri is the page that users will be redirected to after sign-out. In this case, it's using the home page
            PostLogoutRedirectUri = redirectUri,
            Scope = OpenIdConnectScope.OpenIdProfile,
            // ResponseType is set to request the code id_token, which contains basic information about the signed-in user
            ResponseType = OpenIdConnectResponseType.CodeIdToken,
            // ValidateIssuer set to false to allow personal and work accounts from any organization to sign in to your application
            // To only allow users from a single organization, set ValidateIssuer to true and the 'tenant' setting in Web.> config to the tenant name
            // To allow users from only a list of specific organizations, set ValidateIssuer to true and use the ValidIssuers parameter
            TokenValidationParameters = new TokenValidationParameters()
            {
                ValidateIssuer = false // Simplification (see note below)
            },
            // OpenIdConnectAuthenticationNotifications configures OWIN to send notification of failed authentications to > the OnAuthenticationFailed method
            Notifications = new OpenIdConnectAuthenticationNotifications
            {
                AuthenticationFailed = OnAuthenticationFailed
            }
        }
    );
}
Waar Beschrijving
ClientId De toepassings-id van de toepassing die is geregistreerd in Azure Portal.
Authority Het STS-eindpunt (Security Token Service) voor de gebruiker om te verifiëren. Dit is meestal https://login.microsoftonline.com/{tenant}/v2.0 voor de openbare cloud. In die URL is {tenant} de naam van uw tenant, uw tenant-id of common voor een verwijzing naar het algemene eindpunt. (Het algemene eindpunt wordt gebruikt voor toepassingen met meerdere tenants.)
RedirectUri De URL waar gebruikers worden verzonden na verificatie op basis van het Microsoft Identity Platform.
PostLogoutRedirectUri De URL waar gebruikers worden verzonden na het afmelden.
Scope De lijst met toepassingen die worden aangevraagd, gescheiden door spaties.
ResponseType Het verzoek is dat de reactie van de authenticatie een autorisatiecode en een id-token bevat.
TokenValidationParameters Een lijst met parameters voor tokenvalidatie. In dit geval is ValidateIssuer ingesteld op false om aan te geven dat aanmeldingen van elk persoonlijk, werk- of schoolaccounttype kunnen worden geaccepteerd.
Notifications Een lijst met gedelegeerden die kunnen worden benut voor OpenIdConnect berichten.

Notitie

Het instellen van ValidateIssuer = false is een vereenvoudiging voor deze quickstart. Valideer de verlener in echte toepassingen. Bekijk de voorbeelden om te begrijpen hoe u dit doet.

Verificatievraag

U kunt afdwingen dat een gebruiker zich aanmeldt door een verificatievraag in uw controller aan te vragen:

public void SignIn()
{
    if (!Request.IsAuthenticated)
    {
        HttpContext.GetOwinContext().Authentication.Challenge(
            new AuthenticationProperties{ RedirectUri = "/" },
            OpenIdConnectAuthenticationDefaults.AuthenticationType);
    }
}

Fooi

Het aanvragen van een verificatievraag met behulp van deze methode is optioneel. Normaal gesproken gebruikt u deze als u wilt dat een weergave toegankelijk is voor zowel geverifieerde als niet-geverifieerde gebruikers. U kunt controllers ook beveiligen met behulp van de methode die in de volgende sectie wordt beschreven.

Kenmerk voor het beveiligen van een controller of controlleracties

U kunt een controller- of controlleracties beveiligen met behulp van het kenmerk [Authorize]. Dit kenmerk beperkt de toegang tot de controller of acties door alleen geverifieerde gebruikers toegang te geven tot de acties in de controller. Er wordt dan automatisch een verificatievraag uitgevoerd wanneer een niet-geverifieerde gebruiker probeert toegang te krijgen tot een van de acties of controllers die zijn ingericht door het kenmerk [Authorize].

Help en ondersteuning

Als u hulp nodig hebt, een probleem wilt melden of meer wilt weten over uw ondersteuningsopties, raadpleegt u Help en ondersteuning voor ontwikkelaars.

Volgende stappen

Voor een volledige stapsgewijze handleiding voor het bouwen van toepassingen en nieuwe functies, inclusief een volledige uitleg van deze quickstart, kunt u de zelfstudie ASP.NET uitproberen.