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
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).
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.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Désactiver dans le volet Actions.
Comment modifier les informations d’identification d’authentification anonyme à partir du compte IUSR
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).
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.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Modifier... dans le volet Actions.
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.
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.
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
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).
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.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification de base puis, dans le volet Actions, cliquez sur Activer.
Dans le volet Authentification, sélectionnez Authentification anonyme, puis cliquez sur Désactiver dans le volet Actions.
Comment exiger SSL (Secure Sockets Layer)
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).
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.
Dans le volet Paramètres SSL, cliquez sur Exiger SSL.
Dans le volet Actions, cliquez sur Appliquer.
Comment activer l’authentification Windows pour un site web, une application web ou un service web
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).
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.
Faites défiler jusqu’à la section Sécurité dans le volet Accueil, puis double-cliquez sur Authentification.
Dans le volet Authentification, sélectionnez Authentification Windows, puis cliquez sur Activer dans le volet Actions.
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()