Dernière mise à jour le 31 août 2004
Sur cette page
Objectifs
S'applique à
Résumé
Points à connaître
Créer un compte local
Attribuer des privilèges minimum
Accorder des autorisations NTFS
Configurer ASP.NET pour l'exécuter avec le nouveau compte
Objectifs
Ce module vous permet d'effectuer les opérations suivantes :
-
créer un compte doté de privilèges minimum et assorti d'autorisations suffisantes pour exécuter les applications ASP.NET correctement ;
-
configurer ASP.NET pour exécuter un compte personnalisé doté de privilèges minimum.
S'applique à
Ce module s'applique aux produits et technologies suivants :
-
Microsoft® Windows® XP ou Windows 2000 Server (avec le Service Pack 3) et systèmes d'exploitation ultérieurs
-
Microsoft .NET Framework version 1.0 (avec le Service Pack 2) et versions ultérieures
-
Internet Information Services (IIS) 5.0 ou 6.0 (uniquement en cas d'utilisation du mode d'isolation IIS 5.0)
Résumé
Par défaut, chaque processus de travail ASP.NET s'exécute dans le contexte d'un compte doté de privilèges minimum appelé ASPNET. Si votre application ASP.NET est déployée sur un serveur établi à partir d'un domaine ou a besoin d'accéder à des ressources sur des serveurs distants, vous pouvez simplifier l'administration en configurant ASP.NET en vue d'une exécution dans le contexte d'un compte différent.
Ce module décrit comment configurer ASP.NET en vue d'une exécution dans le contexte d'un compte local personnalisé ou d'un compte de domaine. Il fournit également des informations sur les autorisations que vous devez attribuer à ce compte pour qu'il fonctionne correctement.
Points à connaître
Avant d'utiliser ce module, vous devez tenir compte des points suivants :
Identité de processus de travail ASP.NET
Le compte utilisé par défaut pour exécuter ASP.NET et créé lors de l'installation est un compte local doté de privilèges minimum. Ce compte est défini dans le fichier Machine.config de la façon suivante :
<processModel enable="true" userName="machine" password="AutoGenerate" />
Ce compte est nommé ASPNET sous Utilisateurs et groupes locaux, et possède un mot de passe sécurisé dans l'autorité du système local (LSA,Local System Authority).
Pour accéder aux ressources réseau (une base de données, par exemple) avec l'identité de processus ASP.NET, vous pouvez effectuer l'une des opérations suivantes :
-
Utiliser un compte de domaine.
-
Utiliser des comptes locaux en miroir (des comptes disposant de noms d'utilisateurs et de mots de passe correspondants sur deux ordinateurs). Adoptez cette méthode lorsque les ordinateurs se trouvent dans des domaines distincts, sans relation de confiance, ou si les ordinateurs sont séparés par un pare-feu et si vous ne pouvez pas ouvrir les ports nécessaires à l'authentification NTLM ou Kerberos.
La méthode la plus simple consiste à modifier le mot de passe du compte ASPNET en lui attribuant une valeur connue sur le serveur Web, puis à créer un compte nommé ASPNET avec le même mot de passe sur l'ordinateur cible. Sur le serveur Web, vous devez tout d'abord modifier le mot de passe du compte ASPNET dans Utilisateurs et groupes locaux et remplacer les informations d'identification de l'élément <processModel> qui se trouve dans le fichier Machine.config. Vous ne devez pas stocker des mots de passe en texte brut dans le fichier machine.config ; utilisez aspnet_setreg.exe pour stocker les mots de passe sous forme cryptée dans le Registre. Pour plus d'informations, consultez le Module 8, « Sécurité ASP.NET ».
<processModel enable="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\processModel\
ASPNET_SETREG,userName"
password="registry:HKLM\SOFTWARE\YourSecureApp\processModel\
ASPNET_SETREG,password" . . ./>
Vous pouvez suivre les étapes décrites dans ce module pour créer un compte local doté de privilèges minimum.
Emprunt d'identités fixes
Vous pouvez définir des identités fixes pour des répertoires virtuels précis à l'aide du paramètre suivant de Web.config. Utilisez aspnet_setreg.exe pour stocker les informations d'identification sous forme cryptée dans le Registre.
<identity impersonate="true"
userName="registry:HKLM\SOFTWARE\YourSecureApp\
identity\ASPNET_SETREG,userName"
password="registry:HKLM\SOFTWARE\YourSecureApp\
identity\ASPNET_SETREG,password" />
Cette méthode est généralement utilisée lorsque vous disposez de plusieurs sites Web sur le même serveur Web, qui doit fonctionner sous différentes identités, dans les scénarios d'hébergement d'applications par exemple.
Ce module décrit la création d'un compte local doté de privilèges minimum. Si l'administration constitue votre principale préoccupation, vous pouvez recourir à un compte de domaine contraint doté de privilèges minimum, à l'aide d'un mot de passe sécurisé.
Lorsque vous choisissez le compte utilisé pour exécuter ASP.NET, souvenez-vous des éléments suivants :
-
ASP.NET n'emprunte pas d'identité par défaut. Par conséquent, tout accès à une ressource effectué par votre application Web utilise l'identité de processus ASP.NET. Au cours de cet événement, les ressources Windows doivent disposer d'une liste de contrôle d'accès (ACL) qui autorise l'accès au compte du processus ASP.NET.
-
Si vous activez l'emprunt d'identité, votre application accède à des ressources à l'aide du contexte de sécurité de l'appelant initial, ou du compte d'utilisateur Internet anonyme (IUSR_MACHINE, par défaut), si IIS est configuré en vue d'adopter une authentification anonyme. Au cours de cet événement, les ressources doivent posséder des listes de contrôle d'accès établies à partir de l'identité de l'appelant initial (ou IUSR_MACHINE).
-
Adhérez toujours au principe du moindre privilège lors de la création d'un compte personnalisé ; attribuez uniquement l'ensemble minimal de privilèges et d'autorisations requis.
-
Évitez d'exécuter ASP.NET avec le compte SYSTEM.
-
Évitez d'accorder au compte le privilège « Fonctionner en tant que partie intégrante du système d'exploitation ».
Créer un compte local
Cette procédure permet de créer un compte local. Par défaut, celui-ci sera ajouté au groupe Utilisateurs local.
Attribuer des privilèges minimum
Cette procédure permet d'attribuer un ensemble minimal de privilèges nécessaires à l'exécution de ASP.NET.
Accorder des autorisations NTFS
Cette procédure accorde les autorisations NTFS nécessaires au compte ASP.NET personnalisé dans le système de fichiers local.
Remarque : les étapes décrites dans cette procédure s'appliquent au système de fichiers du serveur Web (et non à celui d'un ordinateur distant, sur lequel vous pourriez être amené à dupliquer le compte dans le cadre de l'authentification réseau).
Configurer ASP.NET pour l'exécuter avec le nouveau compte
Cette procédure modifie le fichier Machine.config pour configurer ASP.NET de manière à l'exécuter avec le nouveau compte.