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.
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.
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.
Open de oplossing in Visual Studio (AppModelv2-WebApp-OpenIDConnect-DotNet.sln).
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.
Open de Console voor Pakketbeheer door View>Other Windows>Package Manager Consolete selecteren. Voer vervolgens
Update-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform -r
uit.
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
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 ofcommon
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 opfalse
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.