Sicherheitsaspekte für ASP.NET Core

ASP.NET Core ermöglicht Entwicklern, Sicherheit zu konfigurieren und zu verwalten. Die folgende Liste enthält Links zu Artikeln zum Arbeiten mit Sicherheit in ASP.NET Core:

Diese Sicherheitsfunktionen ermöglichen Ihnen, robuste und sichere ASP.NET Core-Apps zu erstellen.

Weitere Informationen zu den Sicherheitsinformationen für Blazor, die die Hinweise in diesem Knoten ergänzen oder ersetzen, finden Sie unter Authentifizierung und Autorisierung in ASP.NET Core Blazor sowie in den anderen Artikeln im Knoten Sicherheit und Identity von Blazor.

ASP.NET Core-Sicherheitsfeatures

ASP.NET Core bietet viele Tools und Bibliotheken, um ASP.NET Core Apps wie integrierte Identitätsanbieter und nicht Microsoft Identitätsdienste wie Facebook, Twitter und LinkedIn zu sichern. ASP.NET Core bietet mehrere Ansätze zum Speichern von App-Geheimnissen.

Authentifizierung im Vergleich zu Autorisierung

Bei der Authentifizierung handelt es sich um einen Prozess, bei dem ein Benutzer Anmeldeinformationen bereitstellt, die mit anmeldeinformationen verglichen werden, die in einem Betriebssystem, einer Datenbank, einer App oder einer Ressource gespeichert sind. Wenn die beiden Anmeldeinformationen übereinstimmen, authentifiziert sich der Benutzer erfolgreich. Sie können dann Aktionen ausführen, für die sie autorisiert sind. Der Autorisierungsprozess bestimmt die Aktionen, die der Benutzer ausführen darf.

Eine weitere Möglichkeit, Authentifizierung zu betrachten, besteht darin, sie als eine Möglichkeit zu sehen, einen Raum zu betreten, wobei dieser Raum ein Server, eine Datenbank, eine App oder eine Ressource sein kann. Autorisierung definiert, welche Aktionen der Benutzer an welchen Objekten innerhalb dieses Bereichs (Server, Datenbank oder App) ausführen kann.

Häufige Sicherheitsrisiken in Software

ASP.NET Core und Entity Framework enthalten Features, mit denen Sie Ihre Apps schützen und Sicherheitsverletzungen verhindern können. Die folgende Liste von Links verweist auf die Dokumentation, die Techniken zur Vermeidung der häufigsten Sicherheitsrisiken in Web-Apps beschreibt:

Es gibt weitere Sicherheitsrisiken, die Sie kennen sollten. Weitere Informationen finden Sie in den anderen Artikeln im Abschnitt Security and Identity des Inhaltsverzeichnisses.

Sichere Authentifizierungsflows

Es wird empfohlen, die sicherste Authentifizierungsoption zu verwenden. Bei Azure-Diensten bieten verwaltete Identitäten die sicherste Authentifizierung.

Vermeiden Sie die Verwendung des Resource Owner Password Credentials (ROPG)-Grant:

  • Es macht das Kennwort des Benutzers für den Client verfügbar.
  • Es ist ein erhebliches Sicherheitsrisiko.
  • Verwenden Sie sie nur, wenn andere Authentifizierungsflüsse nicht möglich sind.

Verwaltete Identitäten sind eine sichere Möglichkeit, sich bei Diensten zu authentifizieren, ohne Anmeldeinformationen in Code, Umgebungsvariablen oder Konfigurationsdateien speichern zu müssen. Verwaltete Identitäten sind für Azure-Dienste verfügbar und können mit Azure SQL, Azure Storage und anderen Azure-Diensten verwendet werden:

Wenn die App auf einem Testserver bereitgestellt wird, kann eine Umgebungsvariable verwendet werden, um die Verbindungszeichenfolge auf einen Datenbankserver für Tests festzulegen. Weitere Informationen finden Sie unter Konfiguration. Umgebungsvariablen werden häufig in nur unverschlüsselten Text gespeichert. Wenn der Computer oder der Prozess kompromittiert ist, können Umgebungsvariablen für nicht vertrauenswürdige Parteien zugänglich sein. Wir raten davon ab, Umgebungsvariablen zum Speichern einer Verbindungszeichenfolge für die Produktion zu verwenden, da dies nicht der sicherste Ansatz ist.

Richtlinien für Konfigurationsdaten:

  • Speichern Sie nie Kennwörter oder andere vertrauliche Daten im Konfigurationsanbietercode oder in Nur-Text-Konfigurationsdateien. Das Secret Manager-Tool kann zum Speichern von Geheimnissen in der Entwicklungsumgebung verwendet werden.
  • Verwenden Sie keine Produktionsgeheimnisse in Entwicklungs- oder Testumgebungen.
  • Geben Sie Geheimnisse außerhalb des Projekts an, damit sie nicht versehentlich in ein Quellcoderepository übernommen werden können.

Weitere Informationen finden Sie unter:

Informationen zu anderen Cloudanbietern finden Sie unter:

Muster für Unternehmens-Web-Apps

Anleitungen zum Erstellen einer zuverlässigen, sicheren, leistungsfähigen, testbaren und skalierbaren ASP.NET Core-App finden Sie unter Enterprise Web App-Muster. Eine vollständige Beispielweb-App zur Produktionsqualität, die die Muster implementiert, ist verfügbar.