Utilisation de l'authentification IIS avec l'emprunt d'identité ASP.NET

Internet Information Services (IIS) fournit plusieurs schémas d'authentification qui peuvent être employés dans le cadre de la sécurisation d'une application Web. Les scénarios classiques ont recours à l'authentification Windows intégrée (NTLM) dans un intranet d'entreprise afin de déterminer l'identité des utilisateurs des applications en fonction de leur ouverture de session Windows ou à l'utilisation d'une identité anonyme unique pour une application particulière. Il est possible d'utiliser ensuite l'identité Windows fournie par IIS pour déterminer si l'application Web a accès à une ressource Windows protégée, par exemple un fichier protégé par une liste de contrôle d'accès (ACL), ou une ressource réseau telle qu'un fichier ou un serveur de base de données. Vous pouvez configurer ASP.NET pour utiliser l'identité Windows fournie par IIS à l'aide de l'emprunt d'identité.

Par défaut, ASP.NET est configuré pour utiliser le mode d'authentification Windows qui applique l'identité Windows fournie par IIS à la propriété User de l'objet HttpContext actuel. Ceci permet de déterminer l'identité fournie par IIS par l'intermédiaire de la propriété User (la propriété Name de l'utilisateur est vide lors de l'utilisation de l'identification anonyme), mais l'identité fournie n'est pas utilisée comme WindowsIdentity de la page active. L'objet WindowsIdentity d'une application est utilisé pour déterminer si l'application a accès à un fichier ou une ressource réseau spécifique.

Pour configurer ASP.NET pour emprunter l'identité Windows fournie par IIS comme WindowsIdentity de l'application ASP.NET, modifiez le fichier Web.config de l'application et affectez à l'attribut impersonate de l'élément de configuration identity la valeur true, comme l'illustre l'exemple suivant.

<configuration>
  <system.web>
    <identity impersonate="true" />
  </system.web>
</configuration>

L'emprunt d'identité est indépendant du mode d'authentification configuré à l'aide de l'élément de configuration authentication. L'élément authentication est utilisé pour déterminer la propriété User de l'objet HttpContext actuel. L'emprunt d'identité sert à déterminer l'objet WindowsIdentity de l'application ASP.NET.

L'exemple décrit ci-dessous explique comment activer l'emprunt d'identité dans un scénario d'intranet. Dans ce scénario, un administrateur configure un site Web d'entreprise interne pour publier des informations sur les employés. Cependant, une partie de ces informations est réservée aux seuls cadres. Les informations limitées aux cadres peuvent être publiées dans un sous-répertoire du site hébergeant les informations sur les employés, de sorte que l'accès à ces informations soit restreint. IIS détermine l'identité de l'utilisateur à l'aide de la sécurité intégrée Windows (NTLM). Le scénario suppose la situation suivante :

  • Le système d'exploitation Microsoft Windows NT Server, Windows 2000 Server ou Windows Server 2003 est installé sur le serveur Web.

  • IIS 6.0 est installé sur le serveur Web.

  • Le disque dur du serveur Web est formaté pour NTFS.

  • Tous les employés qui ont besoin d'un accès à des ressources protégées utilisent Windows.

En tant qu'administrateur de l'application décrite dans ce scénario, procédez comme suit :

  1. Créez les fichiers et les répertoires indiqués dans l'illustration ci-dessous :

    134ec8tc.Local_2113070150_directories(fr-fr,VS.80).gif

  2. Créez un groupe Windows appelé Managers qui contient tous les utilisateurs devant avoir accès au fichier ManagerInfo.aspx.

  3. Utilisez le Gestionnaire des services IIS pour désactiver l'authentification anonyme pour l'application et activer l'authentification intégrée Windows.

  4. Dans le fichier Web.config de l'application, affectez à l'attribut impersonate de l'élément identity la valeur true.

  5. Définissez la liste de contrôle d'accès NTFS pour le répertoire ManagerInformation afin d'autoriser l'accès uniquement aux identités qui font partie du groupe Windows Manager et aux éventuels comptes système obligatoires. Veillez à inclure l'identité du processus ASP.NET. L'identité du processus ASP.NET pour Windows 2000 Server ou Windows NT est le compte ASPNET local. L'identité du processus ASP.NET pour Windows Server 2003 et versions ultérieures est l'identité du pool d'applications IIS, par défaut le compte SERVICE RÉSEAU.

    Notes

    La fonctionnalité de gestion des rôles ASP.NET fournit une autre méthode de restriction de l'accès aux zones de votre application Web. Pour plus d'informations, consultez Gestion de l'autorisation à l'aide de rôles.

Voir aussi

Concepts

Méthodes de sécurité de base pour les applications Web

Autres ressources

Sécurité des applications Web ASP.NET