Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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:
- Authentifizierung
- Autorisierung
- Datenschutz
- HTTPS-Erzwingung
- Sicheres Speichern geheimer App-Schlüssel in der Entwicklung
- XSRF/CSRF-Prävention
- Cross-Origin Resource Sharing (CORS)
- Angriffe durch Cross-Site-Scripting (XSS)
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:
- Angriffe durch Cross-Site-Scripting (XSS)
- SQL-Abfragen > SQL-Einfügungsangriffe
- Cross-Site Request Forgery (XSRF/CSRF)-Angriffe
- Offene Weiterleitungsangriffe
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:
- Verwaltete Identitäten in Microsoft Entra für Azure SQL
- Verwaltete Identitäten für App Service und Azure Functions
- Sichere Authentifizierungsflows
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:
- Empfehlungen zu bewährten Methoden für verwaltete Identitäten
- Verbinden Ihrer Anwendung mit Ressourcen, ohne Anmeldeinformationen in Ihrem Code verwalten zu müssen
- Azure-Dienste, die verwaltete Identitäten für den Zugriff auf andere Dienste verwenden können
- IETF OAuth 2.0 Security Best Current Practice (Abschnitt 2.4: Resource Owner Password Credentials Grant)
Informationen zu anderen Cloudanbietern finden Sie unter:
- AWS (Amazon Web Services): AWS Schlüsselverwaltungsdienst (KMS)
- Übersicht über Google Cloud Schlüsselverwaltungsdienst
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.