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

Welkom. Dit is waarschijnlijk niet de pagina die u verwachtte te zien. Terwijl we aan een oplossing voor dit probleem werken, kunt u met deze koppeling naar het juiste artikel gaan:

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

Onze excuses voor het ongemak en bedankt voor uw geduld tijdens onze inspanningen 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 de Azure-portal

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

Already configured Uw toepassing is geconfigureerd met dit kenmerk.

Stap 2: Het project downloaden

Voer het project uit met Visual Studio 2019.

Tip

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

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 in een lokale map dicht bij de hoofdmap. Pak bijvoorbeeld uit naar C:\Azure-Samples.

    We raden u aan het archief te extraheren in een map dicht bij de hoofdmap van uw station 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 klikken op het project >AppModelv2-WebApp-OpenIDConnect-DotNet en dan Restore NuGet packages selecteren.

  4. Open de Package Manager-console door het selecteren van Weergave>Overige Windows>Package Manager-console. Voer vervolgens Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r uit.

Notitie

Enter_the_Supported_Account_Info_Here

Meer informatie

Deze sectie bevat 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 zich kunt aanmelden bij een bestaande ASP.NET-toepassing.

Hoe het voorbeeld werkt

Diagram of the interaction between the web browser, the web app, and the Microsoft identity platform in the sample app.

OWIN Middleware NuGet-pakketten

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

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

OWIN-opstartklasse

OWIN-middleware maakt gebruik van een opstartklasse die wordt uitgevoerd wanneer het hostingproces wordt gestart. In deze quickstart bevindt het bestand startup.cs zich in de hoofdmap. De volgende code toont de parameters die in deze snelstartgids 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 STS-eindpunt (Security Token Service) voor de gebruiker om te verifiëren. Dit betreft meestal https://login.microsoftonline.com/{tenant}/v2.0 de openbare cloud. In die URL is {tenant} de naam van uw tenant, uw tenant-id, of common voor een referentie voor het algemene eindpunt. (Het algemene eindpunt wordt gebruikt voor toepassingen met meerdere tenants.)
RedirectUri URL waar gebruikers naartoe worden gestuurd na verificatie bij het Microsoft Identity-platform
PostLogoutRedirectUri De URL waar gebruikers naartoe worden gestuurd na afmelding
Scope De lijst met bereiken die wordt aangevraagd, gescheiden door spaties.
ResponseType De aanvraag dat het antwoord van verificatie een autorisatiecode en een id-token bevat.
TokenValidationParameters Een lijst met parameters voor de validatie van tokens. In dit geval is ValidateIssuer ingesteld op false om aan te geven dat aanmeldingen vanaf persoonlijke, werk- of schoolaccounttype kunnen worden geaccepteerd
Notifications Een lijst met gemachtigden die op OpenIdConnect berichten kunnen worden uitgevoerd.

Notitie

De instelling ValidateIssuer = false is een vereenvoudiging voor deze quickstart. In echte toepassingen valideert u de verlener. Bekijk de voorbeelden om te begrijpen hoe u dat kunt doen.

Verificatiecontrole.

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

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

Tip

Het aanvragen van een verificatievraag met 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 wordt beschreven in de volgende sectie.

Kenmerk voor het beveiligen van een controller of controlleracties

U kunt een controller of controlleracties beveiligen met 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 toegang probeert te krijgen tot een van de acties of controllers die zijn ingericht door het [Authorize] kenmerk.

Help en ondersteuning

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

Volgende stappen

Probeer de ASP.NET-zelfstudie voor een volledige stapsgewijze handleiding voor het bouwen van toepassingen en nieuwe functies, met inbegrip van een volledige uitleg van deze snelstart.