Share via


Sécurité <security>

Vue d’ensemble

Le groupe de sections <security> réside dans la section <system.webServer> et contient tous les éléments qui configurent les paramètres de sécurité sur un serveur Internet Information Services (IIS) 7. Il s’agit notamment des paramètres SSL (Secure Sockets Layer) d’un site, des applications qui dépendent des fichiers binaires CGI (Common Gateway Interface) ou ISAPI (Internet Server API), des paramètres de configuration pour tous les modules d’authentification installés sur votre serveur et des paramètres de règle d’autorisation. Il inclut également des paramètres de configuration de filtrage des demandes et de sécurité IP ainsi qu’une liste de restrictions ISAPI et CGI sur le serveur.

Les paramètres du groupe de sections <security> peuvent être combinés pour une sécurité supplémentaire. Par exemple :

  • L’élément <authentication> définit des sections de configuration pour tous les types d’authentification utilisateur que vous pouvez installer et activer sur votre serveur IIS 7, tandis que l’élément <authorization> configure les comptes d’utilisateur qui peuvent accéder à votre site ou application. Vous utilisez <authorization> en combinaison avec <authentication> pour sécuriser l’accès au contenu sur votre serveur. L’élément <access> configure les paramètres SSL pour votre serveur web, votre site ou votre application.
  • L’élément <isapiCgiRestriction> spécifie une liste d’applications CGI et ISAPI qui peuvent s’exécuter sur IIS 7. Cet élément vous permet de vous assurer que les utilisateurs malveillants ne peuvent pas copier des fichiers binaires CGI et ISAPI non autorisés sur votre serveur web, puis les exécuter. L’élément <applicationDependencies> spécifie une application qui a des dépendances à une ou plusieurs restrictions d’extension CGI ou ISAPI. Vous pouvez combiner l’élément <isapiCgiRestriction> avec l’élément <applicationDependencies> pour vous assurer que vos restrictions d’extension CGI ou ISAPI sont correctement définies.

Remarque

Pour une sécurité renforcée, ni Windows Vista ni Windows Server 2008 n’installe IIS 7 par défaut. Lorsque vous installez IIS 7, IIS est automatiquement configuré pour servir uniquement du contenu statique, y compris des fichiers HTML et image. Vous devez installer manuellement tous les autres services et fonctionnalités de rôle requis par vos sites web et applications. Cette stratégie réduit considérablement la surface d’attaque IIS 7.

Compatibilité

Version Notes
IIS 10.0 L’élément <security> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <security> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <defaultIpSecurity> a été ajouté en tant qu’élément enfant.
IIS 7.5 L’élément <security> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <security> a été introduit dans IIS 7.
IIS 6.0 L’élément <security> remplace les propriétés métabase de sécurité IIS 6.0 liées aux certificats, à l’authentification et à l’autorisation.

Programme d’installation

L’élément <security> est inclus dans l’installation par défaut d’IIS 7.

Procédure

Comment désactiver l’authentification anonyme

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, développez Sites, accédez au niveau dans le volet de hiérarchie que vous souhaitez configurer, puis cliquez sur le site web ou l’application web.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.

  4. Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Désactiver dans le volet Actions.
    Screenshot that shows the Authentication pane in the I I S Manager.

Comment modifier les informations d’identification d’authentification anonyme à partir du compte IUSR

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, développez Sites, accédez au niveau dans le volet de hiérarchie que vous souhaitez configurer, puis cliquez sur le site web ou l’application web.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.

  4. Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Modifier... dans le volet Actions.

  5. Dans la boîte de dialogue Modifier les informations d’identification d’authentification anonyme, effectuez l’une des opérations suivantes :

    • Sélectionnez Identité du pool d’applications pour utiliser l’identité définie pour le pool d’applications, puis cliquez sur OK.
      Screenshot that shows the Edit Anonymous Authentication Credentials dialog box. Application pool identity is selected.

    • Cliquez sur Définir... puis, dans la boîte de dialogue Définir les informations d’identification, entrez le nom d’utilisateur du compte dans la zone Nom d’utilisateur, entrez le mot de passe du compte dans les zones Mot de passe et Confirmer le mot de passe, cliquez sur OK, puis cliquez à nouveau sur OK.
      Screenshot that shows the Set Credentials dialog box.

      Remarque

      Si vous utilisez cette procédure, accordez uniquement les privilèges minimaux au nouveau compte sur l’ordinateur de serveur IIS.


Comment activer l’authentification de base et désactiver l’authentification anonyme

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, développez Sites, puis cliquez sur le site, l’application ou le service web pour lequel vous souhaitez activer l’authentification de base.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.

  4. Dans le volet Authentification, sélectionnez Authentification de base puis, dans le volet Actions, cliquez sur Activer.

  5. Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Désactiver dans le volet Actions.
    Screenshot that shows the Authentication pane. Anonymous Authentication is selected. The Actions pane lists Disabled and Edit.


Comment exiger SSL (Secure Sockets Layer)

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, accédez au site, à l’application ou au répertoire pour lequel vous souhaitez configurer des spécifications SSL. Vous ne pouvez pas configurer SSL au niveau du serveur.

  3. Dans le volet Accueil, double-cliquez sur Paramètres SSL.
    Screenshot shows the Default Web Site Home pane, with S S L Settings selected.

  4. Dans le volet Paramètres SSL, cliquez sur Exiger SSL.

  5. Dans le volet Actions, cliquez sur Appliquer.


Comment activer l’authentification Windows pour un site web, une application web ou un service web

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, développez le nom du serveur, développez Sites, puis le site, l’application ou le service web pour lequel vous souhaitez activer l’authentification Windows.

  3. Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.

  4. Dans le volet Authentification, sélectionnez Authentification Windows, puis cliquez sur Activer dans le volet Actions.
    Screenshot shows the Authentication pane, with Windows Authentication selected.

Configuration

Lorsque vous configurez les paramètres de sécurité, le code XML de configuration doit inclure le groupe de sections <security>. Vous pouvez configurer des paramètres de sécurité au niveau du serveur dans le fichier ApplicationHost.config ou bien au niveau du site, de l’application ou du répertoire dans le fichier Web.config approprié.

Attributs

Aucune.

Éléments enfants

Élément Description
access Élément facultatif.

Spécifie les paramètres de configuration pour SSL (Secure Sockets Layer), par exemple s’il faut utiliser des certificats clients pour l’authentification et la force de chiffrement.
applicationDependencies Élément facultatif.

Spécifie une application qui a des dépendances à une ou plusieurs restrictions d’extension CGI ou ISAPI.
authentication Élément facultatif.

Spécifie les paramètres liés à l’authentification.
authorization Élément facultatif.

Spécifie les paramètres liés à l’autorisation.
dynamicIpSecurity Élément facultatif.

Spécifie des restrictions dynamiques d’adresse IP qui bloquent toute adresse IP qui répond à un ensemble de critères.
ipSecurity Élément facultatif.

Spécifie les restrictions d’accès en fonction de l’adresse IP version 4 ou du nom de domaine DNS.
isapiCgiRestriction Élément facultatif.

Spécifie les paramètres qui limitent les programmes CGI et ISAPI autorisés à s’exécuter sur le serveur.
requestFiltering Élément facultatif.

Spécifie les paramètres de configuration pour le filtrage des demandes.

Exemple Configuration

L’exemple suivant configure les paramètres d’authentification, SSL et de filtrage des demandes pour un site web nommé Contoso.

<location path="Contoso">
   <system.webServer>
      <security>
         <authentication>
            <windowsAuthentication enabled="true" />
            <basicAuthentication enabled="false" />
            <anonymousAuthentication enabled="false" />
         </authentication>
         <access sslFlags="Ssl, SslNegotiateCert, Ssl128" />
         <requestFiltering>
            <fileExtensions>
               <add fileExtension=".inc" allowed="false" />
            </fileExtensions>
            <denyUrlSequences>
               <add sequence="_vti_bin" />
               <add sequence="_vti_cnf" />
               <add sequence="_vti_pvt" />
            </denyUrlSequences>
         </requestFiltering>
      </security>
   </system.webServer>
</location>

Exemple de code

Les exemples suivants désactivent l’authentification anonyme pour un site nommé Contoso, puis activent l’authentification de base et l’authentification Windows pour le site.

AppCmd.exe

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/anonymousAuthentication /enabled:"False" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/basicAuthentication /enabled:"True" /commit:apphost

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /enabled:"True" /commit:apphost

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier ApplicationHost.config.

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

   private static void Main() {

      using(ServerManager serverManager = new ServerManager()) { 
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso");
         anonymousAuthenticationSection["enabled"] = false;

         ConfigurationSection basicAuthenticationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso");
         basicAuthenticationSection["enabled"] = true;

         ConfigurationSection windowsAuthenticationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso");
         windowsAuthenticationSection["enabled"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetApplicationHostConfiguration

      Dim anonymousAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", "Contoso")
      anonymousAuthenticationSection("enabled") = False

      Dim basicAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/basicAuthentication", "Contoso")
      basicAuthenticationSection("enabled") = True

      Dim windowsAuthenticationSection As ConfigurationSection = config.GetSection("system.webServer/security/authentication/windowsAuthentication", "Contoso")
      windowsAuthenticationSection("enabled") = True

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

var anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
anonymousAuthenticationSection.Properties.Item("enabled").Value = false;

var basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
basicAuthenticationSection.Properties.Item("enabled").Value = true;

var windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso");
windowsAuthenticationSection.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

Set anonymousAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/anonymousAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
anonymousAuthenticationSection.Properties.Item("enabled").Value = False

Set basicAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/basicAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
basicAuthenticationSection.Properties.Item("enabled").Value = True

Set windowsAuthenticationSection = adminManager.GetAdminSection("system.webServer/security/authentication/windowsAuthentication", "MACHINE/WEBROOT/APPHOST/Contoso")
windowsAuthenticationSection.Properties.Item("enabled").Value = True

adminManager.CommitChanges()