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.
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.
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.
Open de oplossing in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
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.
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
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, ofcommon
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 opfalse
om aan te geven dat aanmeldingen vanaf persoonlijke, werk- of schoolaccounttype kunnen worden geaccepteerdNotifications
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.