ASP.NET Kärnsäkerhetsavsnitt

ASP.NET Core gör det möjligt för utvecklare att konfigurera och hantera säkerhet. Följande lista innehåller länkar till artiklar om hur du arbetar med säkerhet i ASP.NET Core:

Med de här säkerhetsfunktionerna kan du skapa robusta och säkra ASP.NET Core-appar.

För säkerhetstäckning i Blazor, som kompletterar eller ersätter vägledningen i denna nod, se ASP.NET Core Blazor-autentisering och -auktorisering samt de andra artiklarna i Blazor:s säkerhet och Identity nod.

ASP.NET Core-säkerhetsfunktioner

ASP.NET Core innehåller många verktyg och bibliotek för att skydda ASP.NET Core appar, till exempel inbyggda identitetsprovidrar och icke-Microsoft identitetstjänster som Facebook, Twitter och LinkedIn. ASP.NET Core har flera metoder för att lagra apphemligheter.

Autentisering jämfört med auktorisering

Autentisering är en process där en användare tillhandahåller autentiseringsuppgifter som jämförs med autentiseringsuppgifter som lagras i ett operativsystem, en databas, en app eller en resurs. När de två uppsättningarna med autentiseringsuppgifter matchar, autentiseras användaren. De kan sedan utföra åtgärder som de har behörighet för. Auktoriseringsprocessen avgör vilka åtgärder användaren får utföra.

Ett annat sätt att tänka på autentisering är att betrakta det som ett sätt att ange ett utrymme, där utrymmet är en server, databas, app eller resurs. Auktorisering definierar vilka åtgärder användaren kan utföra för vilka objekt i utrymmet (server, databas eller app).

Vanliga sårbarheter i programvara

ASP.NET Core och Entity Framework innehåller funktioner som hjälper dig att skydda dina appar och förhindra säkerhetsöverträdelser. Följande lista med länkar tar dig till dokumentation som beskriver tekniker för att undvika de vanligaste säkerhetsproblemen i webbappar:

Det finns fler säkerhetsrisker som du bör känna till. Mer information finns i de andra artiklarna i avsnittet Säkerhet och Identity i innehållsförteckningen.

Skydda autentiseringsflöden

Vi rekommenderar att du använder det säkraste autentiseringsalternativet. För Azure-tjänster är den säkraste autentiseringen hanterade identiteter.

Undvik att använda ROPG-beviljandet (Resource Owner Password Credentials):

  • Användarens lösenord exponeras för klienten.
  • Det är en betydande säkerhetsrisk.
  • Använd den bara när andra autentiseringsflöden inte är möjliga.

Hanterade identiteter är ett säkert sätt att autentisera till tjänster utan att behöva lagra autentiseringsuppgifter i kod, miljövariabler eller konfigurationsfiler. Hanterade identiteter är tillgängliga för Azure-tjänster och kan användas med Azure SQL, Azure Storage och andra Azure-tjänster:

När appen distribueras till en testserver kan en miljövariabel användas för att ange anslutningssträngen till en testdatabasserver. Mer information finns i Configuration. Miljövariabler lagras ofta i okrypterad text. Om datorn eller processen komprometteras kan miljövariabler vara tillgängliga för ej betrodda parter. Vi rekommenderar att du inte använder miljövariabler för att lagra en produktionsanslutningssträng eftersom det inte är den säkraste metoden.

Riktlinjer för konfigurationsdata:

  • Lagra aldrig lösenord eller andra känsliga data i konfigurationsproviderns kod eller i konfigurationsfiler för oformaterad text. Verktyget Secret Manager kan användas för att lagra hemligheter under utveckling.
  • Använd inte produktionshemligheter i utvecklings- eller testmiljöer.
  • Ange hemligheter utanför projektet så att de inte av misstag kan checkas in på en källkodslagringsplats.

Mer information finns i:

Information om andra molnleverantörer finns i:

Mönster för företagswebbappar

Vägledning om hur du skapar en tillförlitlig, säker, högpresterande, testbar och skalbar ASP.NET Core-app finns i Enterprise-webbappmönster. En komplett exempelwebbapp av produktionskvalitet som implementerar mönstren är tillgänglig.