Tematy dotyczące zabezpieczeń platformy ASP.NET Core

Platforma ASP.NET Core umożliwia deweloperom konfigurowanie zabezpieczeń i zarządzanie nimi. Poniższa lista zawiera linki do artykułów dotyczących pracy z zabezpieczeniami w ASP.NET Core:

Te funkcje zabezpieczeń umożliwiają tworzenie niezawodnych i bezpiecznych aplikacji platformy ASP.NET Core.

Aby uzyskać Blazor omówienie zabezpieczeń, które uzupełnia lub zastępuje wskazówki zawarte w tym węźle, zobacz ASP.NET Core Blazor uwierzytelnianie i autoryzacja oraz inne artykuły w węźle BlazorZabezpieczenia i Identity.

Funkcje zabezpieczeń platformy ASP.NET Core

ASP.NET Core udostępnia wiele narzędzi i bibliotek do zabezpieczania aplikacji ASP.NET Core, takich jak wbudowani dostawcy tożsamości i usługi tożsamości innych niż Microsoft, takie jak Facebook, Twitter i LinkedIn. Platforma ASP.NET Core udostępnia kilka podejść do przechowywania sekretów aplikacji.

Uwierzytelnianie a autoryzacja

Uwierzytelnianie to proces, w którym użytkownik udostępnia poświadczenia, które są porównywane z poświadczeniami przechowywanymi w systemie operacyjnym, bazie danych, aplikacji lub zasobie. Gdy dwa zestawy poświadczeń są zgodne, użytkownik uwierzytelnia się pomyślnie. Następnie mogą wykonywać akcje, dla których są autoryzowane. Proces autoryzacji określa akcje, które użytkownik może wykonać.

Innym sposobem myślenia o uwierzytelnianiu jest rozważenie go jako sposobu wejścia do przestrzeni, gdzie tą przestrzenią jest serwer, baza danych, aplikacja lub zasób. Autoryzacja definiuje, jakie akcje użytkownik może wykonać na których obiektach wewnątrz tej przestrzeni (serwer, baza danych lub aplikacja).

Typowe luki w zabezpieczeniach oprogramowania

ASP.NET Core i Entity Framework zawierają funkcje, które ułatwiają zabezpieczanie aplikacji i zapobieganie naruszeniom zabezpieczeń. Poniższa lista linków prowadzi do dokumentacji zawierającej szczegółowe informacje o technikach unikania najczęstszych luk w zabezpieczeniach w aplikacjach internetowych:

Istnieje więcej luk w zabezpieczeniach, o których należy wiedzieć. Aby uzyskać więcej informacji, zobacz inne artykuły w sekcji Zabezpieczenia Identity spisu treści.

Bezpieczne procesy uwierzytelniania

Zalecamy użycie najbezpieczniejszej opcji uwierzytelniania. W przypadku usług platformy Azure najbezpieczniejszą metodą uwierzytelniania są managed identities.

Unikaj używania typu nadania Resource Owner Password Credentials (ROPG):

  • Uwidacznia ono hasło użytkownika po stronie klienta.
  • Jest to znaczące zagrożenie bezpieczeństwa.
  • Używaj go tylko wtedy, gdy inne przepływy uwierzytelniania nie są możliwe.

Tożsamości zarządzane to bezpieczny sposób uwierzytelniania w usługach bez konieczności przechowywania poświadczeń w kodzie, zmiennych środowiskowych lub plikach konfiguracji. Tożsamości zarządzane są dostępne dla usług platformy Azure i mogą być używane z usługami Azure SQL, Azure Storage i innymi usługami platformy Azure:

Po wdrożeniu aplikacji na testowy serwer można użyć zmiennej środowiskowej, aby ustawić ciąg połączenia z testowym serwerem bazy danych. Aby uzyskać więcej informacji, zobacz Konfiguracja. Zmienne środowiskowe są często przechowywane w postaci zwykłego, niezaszyfrowanego tekstu. W przypadku naruszenia zabezpieczeń maszyny lub procesu zmienne środowiskowe mogą być dostępne dla niezaufanych stron. Odradzamy używanie zmiennych środowiskowych do przechowywania produkcyjnego ciągu połączenia, ponieważ nie jest to najbezpieczniejsze podejście.

Wytyczne dotyczące danych konfiguracji:

  • Nigdy nie przechowuj haseł ani innych poufnych danych w kodzie dostawcy konfiguracji ani w plikach konfiguracji w postaci zwykłego tekstu. Narzędzie Secret Manager może służyć do przechowywania sekretów w środowisku tworzenia.
  • Nie używaj sekretów produkcyjnych w środowiskach tworzenia ani testowania.
  • Określaj sekrety poza projektem, aby nie można było ich przypadkowo dodać do repozytorium kodu źródłowego.

Aby uzyskać więcej informacji, zobacz:

Aby uzyskać informacje na temat innych dostawców usług w chmurze, zobacz:

Wzorce aplikacji internetowej dla przedsiębiorstw

Aby uzyskać wskazówki dotyczące tworzenia niezawodnej, bezpiecznej, wydajnej, testowalnej i skalowalnej aplikacji ASP.NET Core, zobacz wzorce aplikacji internetowych Enterprise. Dostępna jest kompletna przykładowa aplikacja internetowa jakości produkcyjnej, która implementuje wzorce.