Thèmes de sécurité ASP.NET Core

ASP.NET Core permet aux développeurs de configurer et de gérer la sécurité. La liste suivante fournit des liens vers des articles sur l’utilisation de la sécurité dans ASP.NET Core :

Ces fonctionnalités de sécurité vous permettent de créer des applications ASP.NET Core robustes et sécurisées.

Pour obtenir des informations sur la sécurité Blazor, qui complètent ou remplacent les conseils fournis dans ce nœud, consultez Authentification et autorisation dans ASP.NET Core Blazor ainsi que les autres articles du nœud BlazorSécurité et Identity.

Fonctionnalités de sécurité ASP.NET Core

ASP.NET Core fournit de nombreux outils et bibliothèques pour sécuriser les applications ASP.NET Core, telles que les fournisseurs d’identité intégrés et les services d’identité non Microsoft tels que Facebook, Twitter et LinkedIn. ASP.NET Core fournit plusieurs approches pour stocker des secrets d’application.

Authentification ou autorisation

L’authentification est un processus où un utilisateur fournit des informations d’identification comparées aux informations d’identification stockées dans un système d’exploitation, une base de données, une application ou une ressource. Lorsque les deux jeux d’informations d’identification correspondent, l’utilisateur s’authentifie correctement. Ils peuvent ensuite effectuer des actions pour lesquelles ils sont autorisés. Le processus d’autorisation détermine les actions que l’utilisateur est autorisé à effectuer.

Une autre façon de considérer l’authentification consiste à la considérer comme un moyen d’entrer un espace, où l’espace est un serveur, une base de données, une application ou une ressource. L’autorisation définit les actions que l’utilisateur peut effectuer sur les objets à l’intérieur de cet espace (serveur, base de données ou application).

Vulnérabilités courantes dans les logiciels

ASP.NET Core et Entity Framework contiennent des fonctionnalités qui vous aident à sécuriser vos applications et à empêcher les violations de sécurité. La liste de liens ci-après vous permet d’accéder à une documentation décrivant en détail des techniques destinées à éviter les failles de sécurité les plus courantes dans les applications web :

Il existe d’autres failles de sécurité que vous devez connaître. Pour plus d’informations, consultez les autres articles de la section Sécurité et Identity de la table des matières.

Flux d’authentification sécurisés

Nous vous recommandons d’utiliser l’option d’authentification la plus sûre. Pour les services Azure, l’authentification la plus sécurisée est Identités managées.

Évitez d’utiliser l’octroi roPG (Resource Owner Password Credentials) :

  • Il expose le mot de passe de l’utilisateur au client.
  • C’est un risque de sécurité important.
  • Utilisez-la uniquement lorsque d’autres flux d’authentification ne sont pas possibles.

Les identités managées sont un moyen sécurisé de s’authentifier auprès de services sans avoir à stocker les informations d’identification dans le code, les variables d’environnement ou les fichiers de configuration. Les identités managées sont disponibles pour les services Azure et peuvent être utilisées avec Azure SQL, Stockage Azure et d’autres services Azure :

Quand l’application est déployée sur un serveur de test, une variable d’environnement peut être utilisée pour définir la chaîne de connexion à un serveur de base de données de test. Pour plus d’informations, consultez Configuration. Les variables d’environnement sont généralement stockées en texte brut et non chiffré. Si l’ordinateur ou le processus est compromis, les variables d’environnement peuvent être accessibles à des parties non approuvées. Nous vous déconseillons d’utiliser des variables d’environnement pour stocker une chaîne de connexion de production, car ce n’est pas la méthode la plus sûre.

Instructions relatives aux données de configuration :

  • Ne stockez jamais des mots de passe ou d’autres données sensibles dans le code du fournisseur de configuration ou dans les fichiers de configuration en texte clair. Vous pouvez utiliser l’outil Secret Manager pour stocker des secrets lors du développement.
  • N’utilisez aucun secret de production dans les environnements de développement ou de test.
  • Spécifiez les secrets en dehors du projet afin qu’ils ne puissent pas être validés par inadvertance dans un référentiel de code source.

Pour plus d’informations, consultez l’article suivant :

Pour plus d’informations sur d’autres fournisseurs de cloud, consultez :

Modèles d’application web d’entreprise

Pour obtenir des conseils sur la création d’une application ASP.NET Core fiable, sécurisée, performante, testable et évolutive, consultez modèles d’applications web d’entreprise. Un exemple complet d’application web de qualité de production qui implémente les modèles est disponible.