Comment : sécuriser une application ASP.NET sur un serveur partagé

Mise à jour : novembre 2007

Un serveur Web partagé qui héberge plusieurs applications de différents clients a la responsabilité supplémentaire de garantir que chaque application et ses données demeurent sécurisées afin que les utilisateurs d'autres applications du serveur ne puissent y accéder. La procédure suivante détaille les étapes à suivre pour sécuriser une application ASP.NET sur un serveur partagé.

Pour sécuriser une application ASP.NET sur un serveur partagé

  1. Hébergez l'application Web sur un serveur Windows Server 2003. Vérifiez que les fichiers de votre application sont stockés sur un lecteur formaté à l'aide du système de fichiers NTFS.

    Comme toutes les applications ASP.NET s'exécutent avec une seule identité de processus (compte local ASPNET) sous Windows 2000 et Windows XP Professionnel, vous ne pouvez pas véritablement isoler une application, à moins que l'exécution ne s'effectue sous Windows Server 2003.

  2. Dans le composant logiciel enfichable Gestion de l'ordinateur de votre serveur Web (situé dans le dossier Outils d'administration), sélectionnez Utilisateurs et groupes locaux sous Outils système. Ajoutez un nouvel utilisateur. Cet utilisateur sera l'identité de votre pool d'applications, également connu comme identité de processus de votre application ASP.NET.

    Dans le dossier Groupes sous Utilisateurs et groupes locaux, ajoutez l'identité que vous venez de créer pour votre application au groupe IIS_WPG. De cette façon, la nouvelle identité possède les autorisations nécessaires pour s'exécuter comme identité d'un pool d'applications.

  3. À l'aide du Gestionnaire des services Internet (IIS) de votre serveur Web, créez un pool d'applications pour l'application.

    Ouvrez la page de propriétés de votre nouveau pool d'applications et sélectionnez l'onglet Identité. Définissez l'identité comme Configurable, puis fournissez le Nom d'utilisateur et le Mot de passe de votre identité de pool d'applications créée précédemment.

  4. Dans le dossier Sites Web du Gestionnaire des services Internet (IIS), ouvrez la page de propriétés de votre application. Définissez le Pool d'applications de votre application Web avec le pool d'applications que vous venez de créer. Vous devrez peut-être cliquer sur le bouton Créer pour créer votre application Web en tant qu'application, si vous ne l'avez déjà fait.

    Vous pouvez placer plusieurs applications dans un pool d'applications. Soyez sûr de limiter les applications d'un pool d'applications aux seules applications qui peuvent partager des données, comme plusieurs applications d'un même client.

  5. Créez un répertoire pour votre pool d'applications qui contiendra les fichiers temporaires des applications du pool. Dans les fichiers Web.config de toutes les applications du pool d'applications, spécifiez ce nouveau répertoire comme répertoire temporaire de l'application à l'aide de l'attribut tempDirectory de la section de configuration compilation. Par exemple :

    <configuration>
      <system.web>
        <compilation tempDirectory="C:\WebApps\AppPool1_Temp" />
      </system.web>
    </configuration>
    
  6. Dans le système de fichiers Windows. Définissez les listes de contrôle d'accès (ACL) de sécurité afin que l'identité du pool d'applications et les identités empruntées (consultez Emprunt d'identité ASP.NET) de votre application possèdent l'accès approprié aux fichiers et sous-répertoires qui composent votre application, aussi bien que l'accès complet au répertoire temporaire créé précédemment. Supprimez le groupe IIS_WPG de ces ACL. Assurez-vous que d'autres utilisateurs sur le serveur n'aient pas accès à ces fichiers et dossiers, à moins que cela ne soit requis. Cela inclut la suppression des groupes généraux tels que les groupes Everyone ou Users. Assurez-vous que toutes les identités empruntées sont incluses dans les listes de contrôle d'accès répertoriées dans Listes de contrôle d'accès requis par ASP.NET.

Vous pouvez aussi améliorer la sécurité de votre application en chiffrant toutes les informations sensibles dans vos fichiers Web.config à l'aide de la configuration protégée. Pour plus d'informations, consultez Chiffrement des informations de configuration à l'aide de la configuration protégée.

Voir aussi

Concepts

Listes de contrôle d'accès requis par ASP.NET

Emprunt d'identité ASP.NET

Référence

compilation, élément (Schéma des paramètres ASP.NET)