Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Av Mike Rousos
Autentisering är en process för att fastställa en användares identitet. Authorization är processen att avgöra om en användare har access till en resurs. Inom ASP.NET Core hanteras autentisering av autentiseringstjänsten IAuthenticationService, vilken används av autentiserings-mellanprogrammet middleware. Autentiseringstjänsten använder registrerade autentiseringshanterare för att slutföra autentiseringsrelaterade åtgärder. Exempel på autentiseringsrelaterade åtgärder är:
- Autentisera en användare.
- Svarar när en oautentiserad användare försöker access en begränsad resurs.
De registrerade autentiseringshanterare och deras konfigurationsalternativ kallas "scheman".
Autentiseringsscheman anges genom registrering av autentiseringstjänster i Program.cs:
- Genom att anropa en schemaspecifik tilläggsmetod efter ett anrop till AddAuthentication, till exempel AddJwtBearer eller AddCookie. Dessa tilläggsmetoder använder AuthenticationBuilder.AddScheme för att registrera scheman med lämpliga inställningar.
- Det är mindre vanligt att anropa
AuthenticationBuilder.AddSchemedirekt.
Följande kod registrerar till exempel autentiseringstjänster och hanterare för cookie och JWT ägarautentiseringsscheman:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
Parametern AddAuthenticationJwtBearerDefaults.AuthenticationScheme är namnet på det schema som ska användas som standard när ett visst schema inte begärs.
Om flera scheman används kan auktoriseringsprinciper (eller auktoriseringsattribut) ange autentiseringsschemat (eller scheman) de är beroende av för att autentisera användaren. I exemplet ovan kan det cookie autentiseringsschemat användas genom att ange dess namn (CookieAuthenticationDefaults.AuthenticationScheme som standard, även om ett annat namn kan anges när du anropar AddCookie).
I vissa fall görs anropet till AddAuthentication automatiskt av andra tilläggsmetoder. När du till exempel använder ASP.NET Core Identity anropas AddAuthentication internt.
Mellanprogrammet Autentisering läggs till i Program.cs genom att anropa UseAuthentication. Anrop till UseAuthentication registrerar det mellanprogrammet som använder de tidigare registrerade autentiseringsschemana. Anropa UseAuthentication innan mellanprogram som är beroende av att användare autentiseras.
Autentiseringsbegrepp
Autentiseringen ansvarar för att tillhandahålla ClaimsPrincipal för auktorisering att fatta behörighetsbeslut mot. Det finns flera autentiseringsschemametoder för att välja vilken autentiseringshanterare som ansvarar för att generera rätt uppsättning anspråk:
- autentiseringsschema
- Standardautentiseringsschemat, som beskrivs i de kommande två avsnitten.
- Ange direkt HttpContext.User.
När det bara finns ett enda autentiseringsschema registrerat blir det standardschemat. Om flera scheman har registrerats och standardschemat inte har angetts måste ett schema anges i attributet auktorisera, annars utlöses följande fel:
InvalidOperationException: Inget autentiseringsschema har angetts och det gick inte att hitta något standardautentiseringsschema. Standardscheman kan anges med antingen AddAuthentication(string defaultScheme) eller AddAuthentication(Action<AuthenticationOptions> configureOptions).
DefaultScheme
När det bara finns ett enda autentiseringsschema registrerat är det enda autentiseringsschemat:
- Används automatiskt som DefaultScheme.
- Eliminerar behovet av att ange
DefaultSchemei AddAuthentication(IServiceCollection) eller AddAuthenticationCore(IServiceCollection).
Om du vill inaktivera automatiskt med hjälp av det enskilda autentiseringsschemat som DefaultSchemeanropar du AppContext.SetSwitch("Microsoft.AspNetCore.Authentication.SuppressAutoDefaultScheme").
autentiseringsschema
Det autentiseringsschemat kan välja vilken autentiseringshanterare som ansvarar för att generera rätt uppsättning anspråk. Mer information finns i Auktorisera med ett visst schema.
Ett autentiseringsschema är ett namn som motsvarar:
- En autentiseringshanterare.
- Alternativ för att konfigurera den specifika instansen av hanteraren.
Scheman är användbara som en mekanism för att syfta på den associerade hanterarens autentisering, utmaning och förbjud beteende. En auktoriseringsprincip kan till exempel använda schemanamn för att ange vilket autentiseringsschema (eller scheman) som ska användas för att autentisera användaren. När du konfigurerar autentisering är det vanligt att ange standardautentiseringsschemat. Standardschemat används såvida inte en resurs begär ett specifikt schema. Det är också möjligt att:
- Ange olika standardscheman som ska användas för autentisera, utmana och förbjuda åtgärder.
- Kombinera flera scheman till ett med hjälp av principscheman.
Autentiseringshanterare
En autentiseringshanterare:
- Är en typ som implementerar beteendet för ett schema.
- Härleds från IAuthenticationHandler eller AuthenticationHandler<TOptions>.
- Har det primära ansvaret för att autentisera användare.
Baserat på autentiseringsschemats konfiguration och kontexten för den inkommande begäran, hanterar autentiseringshanterare:
- Skapa AuthenticationTicket objekt som representerar användarens identitet om autentiseringen lyckas.
- Returnera "inget resultat" eller "fel" om autentiseringen misslyckas.
- Ha metoder för att utmana och förbjuda åtgärder när användare försöker komma åt resurser.
- De saknar behörighet att få åtkomst (åtkomst är förbjudet).
- När de inte autentiseras (utmaning).
RemoteAuthenticationHandler<TOptions> jämfört med AuthenticationHandler<TOptions>
RemoteAuthenticationHandler<TOptions> är klassen för autentisering som kräver ett steg för fjärrautentisering. När fjärrautentiseringssteget är klart anropar hanteraren tillbaka till CallbackPath som angetts av hanteraren. Hanterare slutför autentiseringssteget med informationen som överförs till återanropsvägen HandleRemoteAuthenticateAsync.
OAuth 2.0 och OIDC båda använder det här mönstret.
JWT och cookies inte eftersom de kan använda ägarhuvudet direkt och cookie autentisera. Den fjärranslutna providern i det här fallet:
- Detta är autentiseringsleverantören.
- Exempel är Facebook, Twitter, Google, Microsoftoch andra OIDC-leverantörer som hanterar autentisering av användare med hjälp av hanteringsmekanismen.
Autentisera
Autentiseringsschemats autentiseringsåtgärd ansvarar för att konstruera användarens identitet baserat på begärandekontext. Den returnerar en AuthenticateResult som anger om autentiseringen lyckades och i så fall användarens identitet i en autentiseringsbiljett. Se även AuthenticateAsync. Exempel på autentisering inkluderar:
- Ett cookie autentiseringsschema som konstruerar användarens identitet från cookies.
- Ett JWT ägarschema deserialiserar och validerar en JWT ägartoken för att konstruera användarens identitet.
Utmaning
En autentiseringsutmaning anropas av auktorisering när en oautentiserad användare begär en slutpunkt som kräver autentisering. En autentiseringsutmaning utfärdas, till exempel när en anonym användare begär en begränsad resurs eller följer en inloggningslänk. Autentisering initierar en utmaning med hjälp av de angivna autentiseringsmetoderna, eller standardmetoden om ingen anges. Se även ChallengeAsync. Exempel på autentiseringsutmaningar är:
- Ett cookie autentiseringsschema som omdirigerar användaren till en inloggningssida.
- Ett JWT ägarschema som returnerar ett 401-resultat med en
www-authenticate: bearerrubrik.
En utmaningsåtgärd bör låta användaren veta vilken autentiseringsmekanism som ska användas för att access den begärda resursen.
Förbjuda
Ett autentiseringsschemas förbjudningsåtgärd anropas av auktorisering när en autentiserad användare försöker komma åt en resurs som de inte har behörighet att komma åt. Se även ForbidAsync. Exempel på förbjuden autentisering är:
- Ett cookie-autentiseringsschema som omdirigerar användaren till en sida som anger access förbjöds.
- Ett JWT ägarsystem som returnerar ett resultat på 403.
- Ett anpassat autentiseringsschema som omdirigeras till en sida där användaren kan begära access till resursen.
En förbjuden åtgärd kan meddela användaren:
- De är autentiserade.
- De tillåts inte att få åtkomst till den begärda resursen.
Se följande länkar för skillnaderna mellan utmaning och förbjuda.
Autentiseringsleverantörer per hyresgäst
ASP.NET Core har ingen inbyggd lösning för multi-tenancy autentisering. Även om det är möjligt för kunder att skriva en med hjälp av de inbyggda funktionerna rekommenderar vi att kunderna överväger Orchard Core, ABP Framework eller Finbuckle.MultiTenant för multiklientautentisering.
Orchard Core är:
- Ett ramverk för appar med öppen källkod, modulära program och flera klientorganisationer som skapats med ASP.NET Core.
- Ett innehållshanteringssystem (CMS) som bygger på det appramverket.
Se källan Orchard Core för ett exempel på autentiseringsprovidrar per klientorganisation.
ABP Framework stöder olika arkitekturmönster, inklusive modularitet, mikrotjänster, domändriven design och flera innehavare. Se ABP Framework-källa på GitHub.
Finbuckle.MultiTenant:
- Öppen källkod
- Tillhandahåller hyresgästlösning
- Lättvikt
- Tillhandahåller dataisolering
- Konfigurera appbeteende unikt för varje klientorganisation
Ytterligare resurser
Av Mike Rousos
Autentisering är en process för att fastställa en användares identitet. Authorization är processen att avgöra om en användare har access till en resurs. Inom ASP.NET Core hanteras autentisering av autentiseringstjänsten IAuthenticationService, vilken används av autentiserings-mellanprogrammet middleware. Autentiseringstjänsten använder registrerade autentiseringshanterare för att slutföra autentiseringsrelaterade åtgärder. Exempel på autentiseringsrelaterade åtgärder är:
- Autentisera en användare.
- Svarar när en oautentiserad användare försöker access en begränsad resurs.
De registrerade autentiseringshanterare och deras konfigurationsalternativ kallas "scheman".
Autentiseringsscheman anges genom registrering av autentiseringstjänster i Program.cs:
- Genom att anropa en schemaspecifik tilläggsmetod efter ett anrop till AddAuthentication, till exempel AddJwtBearer eller AddCookie. Dessa tilläggsmetoder använder AuthenticationBuilder.AddScheme för att registrera scheman med lämpliga inställningar.
- Det är mindre vanligt att anropa
AuthenticationBuilder.AddSchemedirekt.
Följande kod registrerar till exempel autentiseringstjänster och hanterare för cookie och JWT ägarautentiseringsscheman:
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => builder.Configuration.Bind("CookieSettings", options));
Parametern AddAuthenticationJwtBearerDefaults.AuthenticationScheme är namnet på det schema som ska användas som standard när ett visst schema inte begärs.
Om flera scheman används kan auktoriseringsprinciper (eller auktoriseringsattribut) ange autentiseringsschemat (eller scheman) de är beroende av för att autentisera användaren. I exemplet ovan kan det cookie autentiseringsschemat användas genom att ange dess namn (CookieAuthenticationDefaults.AuthenticationScheme som standard, även om ett annat namn kan anges när du anropar AddCookie).
I vissa fall görs anropet till AddAuthentication automatiskt av andra tilläggsmetoder. När du till exempel använder ASP.NET Core Identity anropas AddAuthentication internt.
Mellanprogrammet Autentisering läggs till i Program.cs genom att anropa UseAuthentication. Anrop till UseAuthentication registrerar det mellanprogrammet som använder de tidigare registrerade autentiseringsschemana. Anropa UseAuthentication innan mellanprogram som är beroende av att användare autentiseras.
Autentiseringsbegrepp
Autentiseringen ansvarar för att tillhandahålla ClaimsPrincipal för auktorisering att fatta behörighetsbeslut mot. Det finns flera autentiseringsschemametoder för att välja vilken autentiseringshanterare som ansvarar för att generera rätt uppsättning anspråk:
- autentiseringsschema
- Standardautentiseringsschemat, som beskrivs i nästa avsnitt.
- Ange direkt HttpContext.User.
Det finns ingen automatisk sökning av scheman. Om standardschemat inte har angetts måste schemat anges i attributet auktorisera, annars utlöses följande fel:
InvalidOperationException: Inget autentiseringsschema har angetts och det gick inte att hitta något standardautentiseringsschema. Standardscheman kan anges med antingen AddAuthentication(string defaultScheme) eller AddAuthentication(Action<AuthenticationOptions> configureOptions).
autentiseringsschema
Det autentiseringsschemat kan välja vilken autentiseringshanterare som ansvarar för att generera rätt uppsättning anspråk. Mer information finns i Auktorisera med ett visst schema.
Ett autentiseringsschema är ett namn som motsvarar:
- En autentiseringshanterare.
- Alternativ för att konfigurera den specifika instansen av hanteraren.
Scheman är användbara som en mekanism för att syfta på den associerade hanterarens autentisering, utmaning och förbjud beteende. En auktoriseringsprincip kan till exempel använda schemanamn för att ange vilket autentiseringsschema (eller scheman) som ska användas för att autentisera användaren. När du konfigurerar autentisering är det vanligt att ange standardautentiseringsschemat. Standardschemat används såvida inte en resurs begär ett specifikt schema. Det är också möjligt att:
- Ange olika standardscheman som ska användas för autentisera, utmana och förbjuda åtgärder.
- Kombinera flera scheman till ett med hjälp av principscheman.
Autentiseringshanterare
En autentiseringshanterare:
- Är en typ som implementerar beteendet för ett schema.
- Härleds från IAuthenticationHandler eller AuthenticationHandler<TOptions>.
- Har det primära ansvaret för att autentisera användare.
Baserat på autentiseringsschemats konfiguration och kontexten för den inkommande begäran, hanterar autentiseringshanterare:
- Skapa AuthenticationTicket objekt som representerar användarens identitet om autentiseringen lyckas.
- Returnera "inget resultat" eller "fel" om autentiseringen misslyckas.
- Ha metoder för att utmana och förbjuda åtgärder när användare försöker komma åt resurser.
- De saknar behörighet att få åtkomst (åtkomst är förbjudet).
- När de inte autentiseras (utmaning).
RemoteAuthenticationHandler<TOptions> jämfört med AuthenticationHandler<TOptions>
RemoteAuthenticationHandler<TOptions> är klassen för autentisering som kräver ett steg för fjärrautentisering. När fjärrautentiseringssteget är klart anropar hanteraren tillbaka till CallbackPath som angetts av hanteraren. Hanterare slutför autentiseringssteget med informationen som överförs till återanropsvägen HandleRemoteAuthenticateAsync.
OAuth 2.0 och OIDC båda använder det här mönstret.
JWT och cookies inte eftersom de kan använda ägarhuvudet direkt och cookie autentisera. Den fjärranslutna providern i det här fallet:
- Detta är autentiseringsleverantören.
- Exempel är Facebook, Twitter, Google, Microsoftoch andra OIDC-leverantörer som hanterar autentisering av användare med hjälp av hanteringsmekanismen.
Autentisera
Autentiseringsschemats autentiseringsåtgärd ansvarar för att konstruera användarens identitet baserat på begärandekontext. Den returnerar en AuthenticateResult som anger om autentiseringen lyckades och i så fall användarens identitet i en autentiseringsbiljett. Se även AuthenticateAsync. Exempel på autentisering inkluderar:
- Ett cookie autentiseringsschema som konstruerar användarens identitet från cookies.
- Ett JWT ägarschema deserialiserar och validerar en JWT ägartoken för att konstruera användarens identitet.
Utmaning
En autentiseringsutmaning anropas av auktorisering när en oautentiserad användare begär en slutpunkt som kräver autentisering. En autentiseringsutmaning utfärdas, till exempel när en anonym användare begär en begränsad resurs eller följer en inloggningslänk. Autentisering initierar en utmaning med hjälp av de angivna autentiseringsmetoderna, eller standardmetoden om ingen anges. Se även ChallengeAsync. Exempel på autentiseringsutmaningar är:
- Ett cookie autentiseringsschema som omdirigerar användaren till en inloggningssida.
- Ett JWT ägarschema som returnerar ett 401-resultat med en
www-authenticate: bearerrubrik.
En utmaningsåtgärd bör låta användaren veta vilken autentiseringsmekanism som ska användas för att access den begärda resursen.
Förbjuda
Ett autentiseringsschemas förbjudningsåtgärd anropas av auktorisering när en autentiserad användare försöker komma åt en resurs som de inte har behörighet att komma åt. Se även ForbidAsync. Exempel på förbjuden autentisering är:
- Ett cookie-autentiseringsschema som omdirigerar användaren till en sida som anger access förbjöds.
- Ett JWT ägarsystem som returnerar ett resultat på 403.
- Ett anpassat autentiseringsschema som omdirigeras till en sida där användaren kan begära access till resursen.
En förbjuden åtgärd kan meddela användaren:
- De är autentiserade.
- De tillåts inte att få åtkomst till den begärda resursen.
Se följande länkar för skillnaderna mellan utmaning och förbjuda.
Autentiseringsleverantörer per hyresgäst
ASP.NET Core har ingen inbyggd lösning för multi-tenancy autentisering. Även om det är möjligt för kunder att skriva en med hjälp av de inbyggda funktionerna rekommenderar vi att kunderna överväger Orchard Core eller ABP Framework för autentisering med flera klientorganisationer.
Orchard Core är:
- Ett ramverk för appar med öppen källkod, modulära program och flera klientorganisationer som skapats med ASP.NET Core.
- Ett innehållshanteringssystem (CMS) som bygger på det appramverket.
Se källan Orchard Core för ett exempel på autentiseringsprovidrar per klientorganisation.
ABP Framework stöder olika arkitekturmönster, inklusive modularitet, mikrotjänster, domändriven design och flera innehavare. Se ABP Framework-källa på GitHub.
Ytterligare resurser
Av Mike Rousos
Autentisering är en process för att fastställa en användares identitet. Authorization är processen att avgöra om en användare har access till en resurs. Inom ASP.NET Core hanteras autentisering av autentiseringstjänsten IAuthenticationService, vilken används av autentiserings-mellanprogrammet middleware. Autentiseringstjänsten använder registrerade autentiseringshanterare för att slutföra autentiseringsrelaterade åtgärder. Exempel på autentiseringsrelaterade åtgärder är:
- Autentisera en användare.
- Svarar när en oautentiserad användare försöker access en begränsad resurs.
De registrerade autentiseringshanterare och deras konfigurationsalternativ kallas "scheman".
Autentiseringsscheman anges genom registrering av autentiseringstjänster i Startup.ConfigureServices:
- Genom att anropa en schemaspecifik tilläggsmetod efter ett anrop till AddAuthentication (till exempel AddJwtBearer eller AddCookie). Dessa tilläggsmetoder använder AuthenticationBuilder.AddScheme för att registrera scheman med lämpliga inställningar.
- Det är mindre vanligt att anropa
AuthenticationBuilder.AddSchemedirekt.
Följande kod registrerar till exempel autentiseringstjänster och hanterare för cookie och JWT ägarautentiseringsscheman:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(JwtBearerDefaults.AuthenticationScheme,
options => Configuration.Bind("JwtSettings", options))
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
options => Configuration.Bind("CookieSettings", options));
Parametern AddAuthenticationJwtBearerDefaults.AuthenticationScheme är namnet på det schema som ska användas som standard när ett visst schema inte begärs.
Om flera scheman används kan auktoriseringsprinciper (eller auktoriseringsattribut) ange autentiseringsschemat (eller scheman) de är beroende av för att autentisera användaren. I exemplet ovan kan det cookie autentiseringsschemat användas genom att ange dess namn (CookieAuthenticationDefaults.AuthenticationScheme som standard, även om ett annat namn kan anges när du anropar AddCookie).
I vissa fall görs anropet till AddAuthentication automatiskt av andra tilläggsmetoder. När du till exempel använder ASP.NET Core Identity anropas AddAuthentication internt.
Mellanprogrammet Autentisering läggs till i Startup.Configure genom att anropa UseAuthentication. Anrop till UseAuthentication registrerar det mellanprogrammet som använder de tidigare registrerade autentiseringsschemana. Anropa UseAuthentication innan mellanprogram som är beroende av att användare autentiseras. När du använder slutpunktsroutning måste anropet till UseAuthentication gå:
- Efter UseRouting, så att routningsinformation är tillgänglig för autentiseringsbeslut.
- Innan UseEndpoints, så att användarna autentiseras innan de kommer åt slutpunkterna.
Autentiseringsbegrepp
Autentiseringen ansvarar för att tillhandahålla ClaimsPrincipal för auktorisering att fatta behörighetsbeslut mot. Det finns flera autentiseringsschemametoder för att välja vilken autentiseringshanterare som ansvarar för att generera rätt uppsättning anspråk:
- autentiseringsschema
- Standardautentiseringsschemat, som beskrivs i nästa avsnitt.
- Ange direkt HttpContext.User.
Det finns ingen automatisk sökning av scheman. Om standardschemat inte har angetts måste schemat anges i attributet auktorisera, annars utlöses följande fel:
InvalidOperationException: Inget autentiseringsschema har angetts och det gick inte att hitta något standardautentiseringsschema. Standardscheman kan anges med antingen AddAuthentication(string defaultScheme) eller AddAuthentication(Action<AuthenticationOptions> configureOptions).
autentiseringsschema
Det autentiseringsschemat kan välja vilken autentiseringshanterare som ansvarar för att generera rätt uppsättning anspråk. Mer information finns i Auktorisera med ett visst schema.
Ett autentiseringsschema är ett namn som motsvarar:
- En autentiseringshanterare.
- Alternativ för att konfigurera den specifika instansen av hanteraren.
Scheman är användbara som en mekanism för att syfta på den associerade hanterarens autentisering, utmaning och förbjud beteende. En auktoriseringsprincip kan till exempel använda schemanamn för att ange vilket autentiseringsschema (eller scheman) som ska användas för att autentisera användaren. När du konfigurerar autentisering är det vanligt att ange standardautentiseringsschemat. Standardschemat används såvida inte en resurs begär ett specifikt schema. Det är också möjligt att:
- Ange olika standardscheman som ska användas för autentisera, utmana och förbjuda åtgärder.
- Kombinera flera scheman till ett med hjälp av principscheman.
Autentiseringshanterare
En autentiseringshanterare:
- Är en typ som implementerar beteendet för ett schema.
- Härleds från IAuthenticationHandler eller AuthenticationHandler<TOptions>.
- Har det primära ansvaret för att autentisera användare.
Baserat på autentiseringsschemats konfiguration och kontexten för den inkommande begäran, hanterar autentiseringshanterare:
- Skapa AuthenticationTicket objekt som representerar användarens identitet om autentiseringen lyckas.
- Returnera "inget resultat" eller "fel" om autentiseringen misslyckas.
- Ha metoder för att utmana och förbjuda åtgärder när användare försöker komma åt resurser.
- De saknar behörighet att få åtkomst (åtkomst är förbjudet).
- När de inte autentiseras (utmaning).
RemoteAuthenticationHandler<TOptions> jämfört med AuthenticationHandler<TOptions>
RemoteAuthenticationHandler<TOptions> är klassen för autentisering som kräver ett steg för fjärrautentisering. När fjärrautentiseringssteget är klart anropar hanteraren tillbaka till CallbackPath som angetts av hanteraren. Hanterare slutför autentiseringssteget med informationen som överförs till återanropsvägen HandleRemoteAuthenticateAsync.
OAuth 2.0 och OIDC båda använder det här mönstret.
JWT och cookies inte eftersom de kan använda ägarhuvudet direkt och cookie autentisera. Den fjärranslutna providern i det här fallet:
- Detta är autentiseringsleverantören.
- Exempel är Facebook, Twitter, Google, Microsoftoch andra OIDC-leverantörer som hanterar autentisering av användare med hjälp av hanteringsmekanismen.
Autentisera
Autentiseringsschemats autentiseringsåtgärd ansvarar för att konstruera användarens identitet baserat på begärandekontext. Den returnerar en AuthenticateResult som anger om autentiseringen lyckades och i så fall användarens identitet i en autentiseringsbiljett. Se även AuthenticateAsync. Exempel på autentisering inkluderar:
- Ett cookie autentiseringsschema som konstruerar användarens identitet från cookies.
- Ett JWT ägarschema deserialiserar och validerar en JWT ägartoken för att konstruera användarens identitet.
Utmaning
En autentiseringsutmaning anropas av auktorisering när en oautentiserad användare begär en slutpunkt som kräver autentisering. En autentiseringsutmaning utfärdas, till exempel när en anonym användare begär en begränsad resurs eller följer en inloggningslänk. Autentisering initierar en utmaning med hjälp av de angivna autentiseringsmetoderna, eller standardmetoden om ingen anges. Se även ChallengeAsync. Exempel på autentiseringsutmaningar är:
- Ett cookie autentiseringsschema som omdirigerar användaren till en inloggningssida.
- Ett JWT ägarschema som returnerar ett 401-resultat med en
www-authenticate: bearerrubrik.
En utmaningsåtgärd bör låta användaren veta vilken autentiseringsmekanism som ska användas för att access den begärda resursen.
Förbjuda
Ett autentiseringsschemas förbjudningsåtgärd anropas av auktorisering när en autentiserad användare försöker komma åt en resurs som de inte har behörighet att komma åt. Se även ForbidAsync. Exempel på förbjuden autentisering är:
- Ett cookie-autentiseringsschema som omdirigerar användaren till en sida som anger access förbjöds.
- Ett JWT ägarsystem som returnerar ett resultat på 403.
- Ett anpassat autentiseringsschema som omdirigeras till en sida där användaren kan begära access till resursen.
En förbjuden åtgärd kan meddela användaren:
- De är autentiserade.
- De tillåts inte att få åtkomst till den begärda resursen.
Se följande länkar för skillnaderna mellan utmaning och förbjuda.
Autentiseringsleverantörer per hyresgäst
ASP.NET Core ramverket har ingen inbyggd lösning för autentisering för flera klienter. Det är möjligt för kunder att skriva en app med autentisering med flera klientorganisationer, men vi rekommenderar att du använder något av följande ASP.NET Core programramverk som stöder autentisering med flera klientorganisationer.
Orchard Core är ett modulärt appramverk med öppen källkod och fleranvändarstöd, byggt med ASP.NET Core, som även innehåller ett CMS (Content Management System). Se källan Orchard Core för ett exempel på autentiseringsprovidrar per klientorganisation.
ABP Framework stöder olika arkitekturmönster, inklusive modularitet, mikrotjänster, domändriven design och flera innehavare. Se ABP Framework-källa på GitHub.
Ytterligare resurser
ASP.NET Core