COMMENT FAIRE : Sécuriser une application ASP.NET à l'aide de la sécurité Windows

Traductions disponibles Traductions disponibles
Numéro d'article: 315736 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F315736
Agrandir tout | Réduire tout

Sommaire

Résumé

ASP.NET peut être utilisé conjointement avec Microsoft Internet Information Services (IIS) pour authentifier les utilisateurs Web en se basant sur leurs informations d'identification de compte d'utilisateur Microsoft Windows 2000. Le moteur d'exécution ASP.NET peut également être configuré pour emprunter l'identité d'utilisateurs Web ou pour utiliser sa propre identité Windows lorsqu'il accède à des ressources telles que des bases de données ou des fichiers.

Configuration requise

Vous avez besoin du matériel, des logiciels et de l'infrastructure réseau suivants pour effectuer les procédures décrites dans cet article :
  • Windows 2000 Server Service Pack 2 (SP2)
  • IIS 5.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
Vous devez en outre disposer d'une expérience dans les domaines suivants :
  • Développement de ASP.NET avec Visual Basic .NET
  • Administration de IIS
  • Administration de comptes d'utilisateurs Windows 2000

Procédure pour développer le site Web

Dans cette section, vous allez créer une application Web ASP.NET simple qui sera sécurisée à l'aide de l'authentification Windows.
  1. Démarrez Visual Studio .NET, puis créez une nouvelle application Web Visual Basic ASP.NET nommée "SiteWindows".
  2. Faites glisser un contrôle Label à partir de la boîte à outils jusque sur le formulaire Web WebForm1.aspx, puis définissez sa propriété ID sur authUserPrincipalLabel.
  3. Faites glisser un second contrôle Label à partir de la boîte à outils jusque sur le formulaire Web WebForm1.aspx, puis définissez sa propriété ID sur aspPrincipalLabel.
  4. Double-cliquez sur WebForm1.aspx pour afficher la fenêtre de code, puis ajoutez l'instruction Imports suivante au-dessus de la déclaration de classe :
    Imports System.Security
    Ajoutez le code suivant à la procédure événementielle Page_Load :
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "You are: " & authUserName
    aspPrincipalLabel.Text = "This page runs as: " & aspUserName
  5. Affichez le fichier Web.config du projet, puis localisez l'élément authentication. Vérifiez que l'attribut de mode possède la valeur Windows.
  6. Générez et enregistrez le projet.
  7. Exécutez le projet, puis vérifiez que la page s'affiche avec le message suivant :
    You are:
    This page runs as: Domaine_Ou_Serveur \ASPNET
    REMARQUE : Votre nom d'utilisateur ne s'affiche pas car vous n'avez pas été authentifié par IIS ; l'accès anonyme est encore activé.
  8. Quittez Internet Explorer pour arrêter le projet.

Procédure pour désactiver l'accès anonyme

Dans cette section, vous allez configurer IIS de manière à exiger l'authentification intégrée de Windows pour le site SiteWindows.
  1. Réduisez Visual Studio, puis démarrez le Gestionnaire des services Internet à partir du groupe de programmes Outils d'administration.
  2. Développez votre serveur et son site Web par défaut, cliquez avec le bouton droit sur le site SiteWindows, puis cliquez sur Propriétés.
  3. Sous l'onglet Sécurité du répertoire de la boîte de dialogue Propriétés de SiteWindows, cliquez sur le bouton Modifier dans la section "Connexions anonymes et contrôle d'authentification".
  4. Désactivez la case à cocher Connexion anonyme, vérifiez que la case à cocher Authentification intégrée Windows est activée, puis cliquez sur OK.
  5. Cliquez sur OK pour fermer la boîte de dialogue Propriétés de SiteWindows.
  6. Retournez dans Visual Studio, puis exécutez le projet. Vérifiez que la page s'affiche avec le message suivant :
    You are: Votre nom d'utilisateur Windows
    This page runs as: Domaine_Ou_Serveur \ASPNET
    REMARQUE : Vous avez été authentifié par l'intermédiaire de votre compte Windows. Si vous n'aviez pas été connecté à Windows, vous auriez été invité à fournir un nom d'utilisateur et un mot de passe Windows.
  7. Quittez Internet Explorer pour arrêter le projet.

Procédure pour activer l'emprunt d'identité

Dans cette section, vous allez configurer l'application SiteWindows pour qu'elle emprunte l'identité de l'utilisateur Windows qui y accède.
  1. Dans Visual Studio, affichez le fichier Web.config du projet SiteWindows.
  2. Ajoutez l'élément suivant après l'élément authentication :
    <identity impersonate = "true" />
  3. Enregistrez Web.config.
  4. Exécutez le projet. Vérifiez que la page s'affiche avec le message suivant (notez que le moteur d'exécution ASP.NET utilisera vos informations d'identification Windows pour accéder aux ressources en votre nom) :
    You are: Votre nom d'utilisateur Windows
    This page runs as: Votre nom d'utilisateur Windows
  5. Quittez Internet Explorer pour arrêter le projet.

Procédure pour attribuer une entité personnalisée

Dans cette section, vous allez configurer l'application SiteWindows pour utiliser une entité de sécurité personnalisée :
  1. Démarrez la fonctionnalité Gestion de l'ordinateur à partir du groupe de programmes Outils d'administration. Créez un nouveau compte d'utilisateur Windows 2000 nommé "SiteWindows", avec comme mot de passe "password" (notez si votre serveur est un contrôleur de domaine, puis utilisez l'outil Utilisateurs et ordinateurs Active Directory).
  2. Désactivez la case à cocher L'utilisateur doit changer de mot de passe à la prochaine ouverture de session. REMARQUE : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft :
    317012 INFO : Traitement et demande d'identité dans ASP.NET
  3.  : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft : Une fois le compte SiteWindows créé, fermez l'outil d'administration utilisé pour le créer.
  4.  : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft : Dans Visual Studio, affichez le fichier Web.config du projet SiteWindows.
  5.  : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft : Modifiez l'élément identity comme suit :
    identity impersonate = "true" userName = " Nom_De_Domaine_Ou_Serveur\SiteWindows"
    password = "password"/>
    Nom_De_Domaine_Ou_Serveur est le nom de votre domaine (dans un environnement de domaines) ou d'ordinateur (dans un environnement de groupe de travail) Windows 2000.
  6.  : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft : Enregistrez Web.config.
  7.  : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft : Exécutez le projet. Vérifiez que la page s'affiche avec le message suivant :
    You are: Votre nom d'utilisateur Windows
    This page runs as: Nom_De_Domaine_Ou_Serveur\SiteWindows
    REMARQUE : Aspnet_wp.exe utilisera les informations d'identification Windows spécifiées pour accéder aux ressources en votre nom.
  8.  : L'entité personnalisée que vous sélectionnez doit disposer des autorisations stipulées dans l'article suivant de la Base de connaissances Microsoft : Quittez Internet Explorer pour arrêter le projet.

Dépannage

La sécurité Windows dans un site Web ASP.NET peut être davantage améliorée (et compliquée) grâce à l'utilisation des autorisations de fichier NTFS. Si votre compte Windows ne dispose pas de l'autorisation de lire une page Web ASP.NET, IIS vous demandera de fournir d'autres informations d'identification Windows. De même, si une page ASP.NET tente d'accéder à un fichier auquel l'entité de sécurité utilisée par le moteur d'exécution ASP.NET n'a pas accès, le système vous demandera de fournir d'autres informations d'identification. Les autorisations NTFS constituent un moyen efficace de contrôler l'accès aux sous-sections d'un site Web.

Références

Pour plus d'informations sur l'utilisation de l'authentification Windows dans un site Web ASP.NET, consultez la rubrique "Sécurité" des applications Web ASP.NET dans la documentation du .NET Framework.

Vous pouvez également consulter l'article "Authentification dans ASP.NET : Guide de sécurité .NET" sur le site Web MSDN à l'adresse suivante :
http://msdn2.microsoft.com/en-us/library/ms978378.aspx

Propriétés

Numéro d'article: 315736 - Dernière mise à jour: mercredi 14 mars 2007 - Version: 3.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET (inclus dans le .NET Framework)
Mots-clés : 
kbcodesnippet kbconfig kbgrpdsasp kbhowto kbhowtomaster kbinfo kbsecurity KB315736
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com