2 votes

Combien de types d'utilisateurs dans ASP.NET/IIS (ou Cassini ou IIS Express) et leur rôle réel?

Je demande des informations sur le compte de l'utilisateur qui exécute l'application ASP.NET/IIS (ou Cassini ou IIS Express). Je demande à propos des paramètres par défaut. Il y a beaucoup de confusion à ce sujet. Une recherche sur Google me montre différents types d'utilisateurs, par exemple,

  • nom-de-mon-ordinateur\nomutilisateur,
  • IIS APPPOOL\utilisateur ASP.NET v4,
  • IIS_WPG,
  • utilisateur IIS_IUSRS,
  • utilisateur service Réseau,
  • utilisateur AspNet,
  • utilisateur IUSR_NomDeLaMachine,
  • utilisateur IIS_IUSRS,
  • utilisateur IUSR,
  • utilisateur IIS_WPG,
  • utilisateur IWAM_nomordinateur,
  • IIS APPPOOL\utilisateur DefaultAppPool.

Il y a beaucoup de confusion à ce sujet.

3voto

Gregor Primar Points 4000

Cassini fonctionne sous le compte qui a démarré VS. Donc par défaut, l'utilisateur actuellement connecté à Windows est utilisé, runas exécutera l'application sous un compte utilisateur spécifique.

L'application sur IIS s'exécute à l'aide d'un pool d'applications. Voici un extrait du site par défaut :

entrer la description de l'image ici

Chaque pool d'applications peut être configuré en utilisant les paramètres avancés :

entrer la description de l'image ici

Je devrais également mentionner la possibilité d'impersonation, où le contexte s'exécute sous l'utilisateur impersonné. Cet utilisateur peut être fourni par IIS ou en utilisant du code. Voici un exemple de configuration de l'impersonation IIS (onglet Authentification pour l'application spécifique) :

entrer la description de l'image ici

J'espère que cela vous aide!

2voto

michielvoo Points 15413

Eh bien, d'abord cela dépend de la version de Windows que vous utilisez. Ensuite, vous parlez de 3 serveurs différents. C'est probablement ce qui rend la situation confuse.

Serveurs de développement

Tout d'abord, le plus simple : Cassini. Ce serveur s'exécute sous le même compte et avec les mêmes privilèges que l'instance de Visual Studio à partir de laquelle il est lancé. Généralement, il s'agit simplement de votre propre compte Windows.

IIS Express utilise exactement le même code que IIS, mais il s'exécutera également sous votre propre compte Windows, le même compte qui a lancé Visual Studio (ou Web Matrix, d'ailleurs).

IIS 6.0

Maintenant pour IIS proprement dit. Vous pourriez trouver ici plusieurs comptes. Tout d'abord, le 'vieux' IIS 6.0 que vous trouverez encore sur les machines Windows Server 2003 utiliserait les comptes suivants :

  • Network Service (identité par défaut et recommandée pour les processus de travail des pools d'applications dans IIS 6.0 et versions ultérieures)
  • Local Service (accès assez limité)
  • Local System (utilisé pour le processus de travail lorsqu'il fonctionne en 'mode d'isolation IIS 5.0', membre des Administrateurs et a un accès complet)
  • IIS_WPG (abréviation de Worker Process Group, il ne s'agit pas d'un compte mais d'un groupe, les identités des processus de travail devraient être membres de ce groupe pour obtenir les autorisations minimales requises)
  • IUSR_ComputerName (non utilisé pour un processus de travail, mais plutôt pour associer les visiteurs anonymes à un compte Windows)
  • IWAM_{Nom ordinateur} (pour le mode d'isolation IIS 5.0, vous utiliseriez généralement les pools d'applications pour l'isolation de nos jours)
  • ASPNET (également pour le mode d'isolation IIS 5.0, il ressemble à le compte ASP.NET, mais dans la plupart des cas ce n'est pas lui)

(Cette liste est basée sur l'article TechNet IIS et les comptes intégrés (IIS 6.0).)

IIS 7 et versions ultérieures

Pour IIS 7, certains des comptes listés ci-dessus ne sont plus pertinents, et certains ont été remplacés. Comme ces comptes sont intégrés à Windows, ils ont le même SID partout, ce qui peut parfois être utile.

Si vous avez mis à niveau un serveur de Windows 2003 à Windows 2008, ou si vous installez des fonctionnalités de compatibilité IIS 6.0 ou des composants IIS plus anciens, vous pouvez avoir les anciens et les nouveaux comptes sur une seule machine.

  • IUSR (*remplace IUSR_{Nom ordinateur}, donc utilisé pour mapper les utilisateurs anonymes par défaut*)
  • IIS_IUSRS (*remplace le groupe IIS_WPG, donc il ne s'agit pas d'un compte mais plutôt d'un groupe*)

(Cela est basé sur l'article Compréhension des comptes utilisateurs et groupes intégrés dans IIS 7.)

Identités des pools d'applications (depuis IIS 7.0)

Cette liste est maintenant presque complète, mais nous devons encore comprendre un type spécial de compte : les identités de pools d'applications 'dynamiques'. Ce ne sont pas des comptes réels sur la machine comme les autres, par exemple vous ne pouvez pas les trouver répertoriés comme utilisateurs dans Windows. Mais ce sont des comptes virtuels créés sur le moment pour les pools d'applications, si vous choisissez l'option ApplicationPoolIdentity.

Si vous avez besoin de donner à un tel compte des privilèges d'accès à un fichier ou dossier, vous pouvez quand même le rechercher en tapant : IIS AppPool{DefaultAppPool} (remplacez {DefaultAppPool} par le nom du pool d'applications que vous avez créé).

(Vous pouvez en savoir plus à ce sujet dans Identités des pools d'applications sur iis.net.)

Lorsque vous installez .NET 4.0, IIS ajoute un nouveau pool d'applications pour pouvoir exécuter de nouvelles applications web .NET 4.0 aux côtés des applications web .NET 2.0 existantes. L'installateur donne à ce pool d'applications le nom ASP.NET v4.0, et utilise l'option ApplicationPoolIdentity. Par conséquent, un compte dynamique est créé pour ce nouveau pool d'applications, que vous l'utilisiez ou non.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X