Comment faire pour accéder à des fichiers du réseau à partir d'applications IIS

Traductions disponibles Traductions disponibles
Numéro d'article: 207671 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article contient des informations relatives à des problèmes qui apparaissent lorsque vous accédez à des fichiers d'un ordinateur autre que votre serveur Internet Information Server (IIS) à partir d'une extension ISAPI (Internet Server API), de pages ASP (Active Server Pages) ou d'une application CGI (Common Gateway Interface). Outre certains problèmes se rapportant au sujet, cet article répertorie quelques méthodes qui permettent de les contourner.

Bien qu'il s'agisse principalement d'un article rédigé dans le contexte de l'accès à des fichiers sur des partages réseau, les mêmes concepts s'appliquent également aux connexions aux canaux nommés. Les canaux nommés sont fréquemment utilisés non seulement pour des connexions SQL Server, mais aussi pour des communications RPC (appel de procédure à distance) et COM (modèle d'objet composant). Et notamment, si vous vous connectez à un serveur SQL Server sur le réseau configuré pour utiliser la sécurité intégrée de Microsoft Windows NT, la connexion s'avère impossible en raison des problèmes soulignés dans le présent article. RPC et COM peuvent également utiliser d'autres mécanismes de communication possédant des schémas d'authentification réseau semblables. Les concepts décrits dans cet article peuvent ainsi s'appliquer à une large variété de mécanismes de communication au réseau qui sont accessibles à partir de vos applications IIS.


Authentification et types d'emprunt d'identité

Lorsqu'il répond à une requête HTTP, IIS effectue un emprunt d'identité de sorte que l'accès aux ressources permettant de gérer la requête soit limité de façon appropriée. Le contexte de sécurité avec emprunt d'identité se base sur le type d'authentification employé pour la requête. Les cinq différents types d'authentification disponibles à partir de IIS 4.0 sont les suivants :
Type d'authentification                           Type d'emprunt d'identité
  
Accès anonyme (aucune authentification)           Réseau
Synchronisation automatique du mot de passe à
ON (ON=valeur par défaut)
 
Accès anonyme (aucune authentification)           Texte en clair IIS
Synchronisation automatique du mot de passe à OFF

Authentification de base                       Texte en clair IIS

Authentification Stimulation/réponse Windows NT   Réseau

Mappage du certificat SSL client                  Interactif
				

Types de jetons

L'autorisation d'accéder aux ressources du réseau dépend du type de jeton d'emprunt d'identité utilisé pour le traitement de la demande.
  • Les jetons de réseau "NE SONT PAS" autorisés à accéder aux ressources du réseau. (Les jetons de réseau sont nommés ainsi parce qu'un serveur crée généralement ce type de jetons lorsqu'un utilisateur est authentifié sur le réseau. Autoriser le serveur à utiliser un jeton de réseau pour agir comme un client du réseau et accéder à un autre serveur s'intitule "délégation" ; cette action est considérée comme une faille possible en matière de sécurité.)
  • Les jetons interactifs sont généralement employés pour authentifier un utilisateur local sur l'ordinateur. Les jetons interactifs permettent d'accéder aux ressources du réseau.
  • Les jetons de lots sont conçus pour offrir un contexte de sécurité permettant l'exécution de programmes de commandes par lot. Les jetons de lot disposent d'un accès au réseau.
IIS comprend le concept d'ouverture de session en Texte en clair Une ouverture de session de type Texte en clair est nommée ainsi parce que IIS accède au nom d'utilisateur et au mot de passe avec le texte en clair. Vous pouvez contrôler si une connexion de type Texte en clair crée un jeton de réseau, un jeton interactif ou un jeton de lot en paramétrant la propriété LogonMethod dans la métabase. Par défaut, les ouvertures de session en Texte en clair reçoivent un jeton interactif et ont accès aux ressources du réseau. Vous pouvez configurer le paramètre LogonMethod au niveau du serveur, du site, du répertoire virtuel, du répertoire ou du fichier.

Un accès anonyme emprunte l'identité du compte configuré à la façon de l'utilisateur anonyme pour la requête. Par défaut, IIS dispose d'un compte utilisateur anonyme unique appelé IUSR_<nom_machine> qui fonctionne avec un emprunt d'identité lorsqu'une demande non authentifiée est gérée. Par défaut, IIS 4.0 est doté d'une fonction configurable appelée "Activer la synchronisation automatique du mot de passe" qui crée le jeton en utilisant une sous-autorité de sécurité. Les jetons ainsi créés sont des jetons de réseau qui "N'ONT PAS" accès aux autres ordinateurs du réseau. Si vous désactivez la synchronisation automatique du mot de passe, IIS crée le jeton de la même manière que pour une ouverture de session de type Texte en clair mentionné précédemment. Une synchronisation automatique du mot de passe n'est possible que pour des comptes se trouvant sur le même ordinateur que IIS. En conséquence, si vous changez votre compte anonyme pour un compte de domaine, vous ne pouvez pas employer la synchronisation automatique du mot de passe et vous obtenez une ouverture de session de type Texte en clair. Il existe pourtant une exception, si vous installez IIS sur votre contrôleur principal de domaine. Dans ce cas, les comptes du domaine sont sur l'ordinateur local. Vous pouvez configurer le compte anonyme et l'option de synchronisation automatique du mot de passe au niveau du serveur, du site, du répertoire virtuel, du répertoire ou du fichier.

La première étape d'accès à une ressource du réseau consiste à avoir le type de jeton approprié. Vous devez également emprunter l'identité d'un compte qui dispose d'un accès à la ressource sur le réseau. Par défaut, le compte IUSR_<nom_machine> créé par IIS pour des demandes anonymes n'existe que sur l'ordinateur local. Même si vous désactivez la synchronisation automatique du mot de passe pour pouvoir obtenir un jeton interactif capable d'accéder aux ressources du réseau, le compte IUSR_<nom_machine> n'accède généralement pas à la plupart des ressources du réseau car il s'agit d'un compte non-reconnu par d'autres ordinateurs. Pour accéder aux ressources du réseau avec des demandes anonymes, vous devez remplacer le compte par défaut par un compte d'un domaine de votre réseau qui peut être reconnu par tous les ordinateurs. Si vous installez IIS sur un contrôleur de domaine, le compte IUSR_<nom_machine> devient alors un compte de domaine et doit être reconnu par d'autres ordinateurs du réseau sans entreprendre d'actions supplémentaires.


Prévention des problèmes

Les suggestions suivantes présentent des moyens d'éviter des problèmes lorsque vous accédez aux ressources du réseau à partir de votre application IIS :
  • Conserver les fichiers sur l'ordinateur local.
  • Certaines méthodes de communication du réseau ne nécessitent pas de contrôle de sécurité. L'utilisation des sockets Windows en est un exemple.
  • Vous pouvez fournir un accès direct aux ressources du réseau de l'ordinateur en configurant un répertoire virtuel pour qu'il soit :
    « Un partage situé sur un autre ordinateur. »
    Tout accès à l'ordinateur qui partage les ressources du réseau est réalisé dans le contexte de la personne spécifiée dans la boîte de dialogue Se connecter en tant que. Ceci se produit quel que soit le type d'authentification configuré pour le répertoire virtuel. Cette option permet l'accès à tous les fichiers du partage réseau à partir des navigateurs qui accèdent à l'ordinateur IIS.
  • Utiliser une authentification de base ou une authentification anonyme sans synchronisation automatique du mot de passe.

    Par défaut, l'emprunt d'identité qu'effectue Internet Information Server pour une authentification de base fournit un jeton capable d'accéder des ressources du réseau (contrairement à la Simulation/réponse Windows NT qui fournit un jeton ne pouvant pas accéder à des ressources du réseau). Pour une authentification anonyme, le jeton ne peut accéder à une ressource du réseau que si la synchronisation automatique du mot de passe est désactivée. Par défaut, la synchronisation automatique du réseau est activée lors de la première installation de Internet Information Server. Dans une telle configuration par défaut, le jeton de l'utilisateur anonyme ne peut pas accéder aux ressources du réseau. Pour plus d'informations sur la synchronisation automatique du mot de passe dans IIS, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
    190005 Un site configuré pour un accès anonyme demande le mot de passe de l'utilisateur
    259353 Obligation d'entrer manuellement un mot de passe après avoir opté pour la synchronisation du mot de passe
  • Configurer le compte anonyme comme un compte de domaine.

    Ceci permet à des demandes anonymes d'accéder éventuellement à des ressources du réseau. Pour interdire à toutes les demandes anonymes d'accéder au réseau, il vous suffit de transformer le compte anonyme en compte de domaine sur les répertoires virtuels qui requièrent spécifiquement cet accès.
  • Configurer le compte anonyme avec le même nom d'utilisateur et mot de passe sur l'ordinateur qui partage les ressources réseau, puis désactiver la synchronisation automatique du mot de passe.

    En procédant ainsi, vous devez vous assurer que les mots de passe correspondent exactement. Cette approche ne doit être employée que lorsque certaines raisons vous obligent à opter pour "Configurer le compte anonyme en tant que compte de domaine", mentionnée précédemment
  • Vous pouvez utiliser NullSessionShares et NullSessionPipes pour autoriser un accès à un partage de réseau spécifique ou à un canal nommé si votre requête est gérée avec un jeton de réseau.

    Si vous disposez d'un jeton de réseau et tentez d'établir une connexion vers une ressource du réseau, le système d'exploitation tente alors d'établir une connexion en tant que connexion non authentifiée (référencée comme une "session NULL"). Vous devez effectuer ce paramétrage du Registre sur l'ordinateur qui partage la ressource de réseau et non sur l'ordinateur IIS. Si vous tentez d'accéder à un NullSessionShare ou un NullSessionPipe avec un jeton qui n'est pas un jeton de réseau, une authentification Microsoft Windows est alors employée et l'accès à la ressource s'appuie sur les droits d'utilisateur du compte de l'utilisateur avec emprunt d'identité.
  • Vous pouvez éventuellement réaliser votre propre emprunt d'identité pour créer un jeton Thread ayant effectivement un accès au réseau.

    Les fonctions LogonUser et ImpersonateLoggedOnUser peuvent être utilisées pour emprunter l'identité d'un compte différent. Ceci vous oblige à avoir le nom d'utilisateur et le mot de passe "Texte en clair" d'un autre compte disponible pour votre code. LogonUser impose également que le compte qui appelle LogonUser dispose du privilège "Agir en tant que partie du système d'exploitation" dans le Gestionnaire d'utilisateurs. Par défaut, la plupart des utilisateurs pour lesquels IIS emprunte l'identité alors qu'il gère une requête HTTP, ne disposent pas de ce droit utilisateur. Toutefois, pour des applications "intra-processus", il existe plusieurs moyens de modifier votre contexte de sécurité actuel pour le compte LocalSystem, qui dispose bien des informations d'identification administratives "Agir en tant que partie du système d'exploitation". Pour des DLL ISAPI intra-processus, le meilleur moyen de modifier le contexte de sécurité qu'IIS a créé pour le compte LocalSystem est d'appeler la fonction RevertToSelf. Si vous exécutez votre application IIS "hors processus", ce mécanisme ne fonctionne pas par défaut car le processus est exécuté avec le compte IWAM_<nom_machine> et non le compte du système local (LocalSystem). Par défaut, le compte IWAM_<nom_machine> "NE DISPOSE PAS" des informations d'identification administratives "Agir en tant que partie du système d'exploitation".
  • Ajoutez le composant appelé à partir de la page ASP au module serveur MTS (Microsoft Transaction Server) ou à une application serveur COM+, puis indiquez un utilisateur spécifique comme identité du module.

    Remarque Le composant s'exécute dans un fichier .exe distinct extérieur à IIS.
  • Avec l'authentification de base/en texte clair, nous vous recommandons de chiffrer les données à l'aide de SSL parce qu'il est extrêmement facile d'obtenir des références à partir d'une trace réseau. Pour plus d'informations sur la façon d'installer SSL, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
    228991 Comment faire pour créer et installer un certificat SSL dans Internet Information Server 4.0
Remarque N'oubliez pas que vous pouvez empêcher l'accès au réseau pour les demandes anonymes lorsque la synchronisation de mot de passe est désactivée et les demandes sont authentifiées grâce à l'authentification de base (ouvertures de session en texte clair) si vous définissez la propriété de métabase LogonMethod sur « 2 » (en indiquant qu'une ouverture de session réseau est utilisée pour créer le jeton d'emprunt d'identité). Grâce à ce paramètre, le seul moyen pour des requêtes de contourner la limitation du réseau est de se connecter à NullSessionShares ou NullSessionPipes.

N'employez pas de lettres de lecteur mappées avec des partages réseau. Sachant que vous ne pouvez faire votre sélection qu'à partir des 26 lettres de lecteur potentielles, des problèmes peuvent surgir si vous tentez d'utiliser une lettre de lecteur mappée dans un contexte de sécurité différent. Il est donc préférable de toujours employer des noms UNC (Universal Naming Convention) pour accéder aux ressources. Le format doit être semblable à ce qui suit :
\\Mon_serveur\nom_partage_fichiers\nom_répertoire\nom_fichier
Pour plus d'informations sur l'utilisation des noms UNC, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
280383 Recommandations de sécurité IIS lors de l'utilisation d'un partage UNC
Les informations contenues dans cet article ne s'appliquent qu'à Internet Information Server 4.0. Internet Information Server 5.0 (fourni avec Windows 2000) apporte des changements significatifs pour de nouveaux types et capacités d'authentification. Bien que la plupart des concepts décrits dans cet article s'appliquent également à IIS 5.0, les détails sur les types de jetons avec emprunt d'identité générés selon certains schémas d'authentification de cet article s'appliquent strictement à IIS 4.0.

319067 Comment faire pour exécuter des applications hors du contexte du compte système
Si vous ne pouvez pas déterminer le type de connexion qui est employé sur votre serveur IIS pour gérer les requêtes, vous pouvez activer l'audit d'ouvertures et de fermetures de session. Procédez comme suit :
  1. Cliquez sur Démarrer, sur Paramètres, sur Panneau de configuration, sur Outils d'administration, puis sur Stratégie de sécurité locale.
  2. Après avoir ouvert Stratégie de sécurité locale, dans le volet de gauche Arborescence, cliquez sur Paramètres de sécurité, cliquez sur Stratégies locales, puis cliquez sur Stratégie d'audit.
  3. Double-cliquez sur Auditer les événements de connexion puis cliquez sur Essais ayant réussi et Essais ayant échoué. Des entrées du journal des événements sont ajoutées sous Journal de sécurité. Vous pouvez déterminer le type d'ouverture de session au niveau du détail des événements sous Type d'ouverture de session :
2=Interactif
3=Réseau
4=Lot
5=Service

Références

Pour plus d'informations sur la sécurité réseau, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
124184 Un service fonctionnant avec le compte système ne parvient pas à accéder au réseau
180362 Services et lecteurs redirigés
158229 Ramifications de sécurité pour les applications IIS
319067 Comment faire pour exécuter des applications hors du contexte du compte système
280383 Recommandations de sécurité IIS lors de l'utilisation d'un partage UNC
Pour plus d'informations sur la synchronisation automatique du mot de passe dans IIS, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
190005 Un site configuré pour un accès anonyme demande le mot de passe de l'utilisateur
259353 Obligation d'entrer manuellement un mot de passe après avoir opté pour la synchronisation du mot de passe

Propriétés

Numéro d'article: 207671 - Dernière mise à jour: lundi 23 janvier 2006 - Version: 5.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Information Server 3.0
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Server Application Programming Interface 4.0
  • Microsoft Internet Information Services 5.0
Mots-clés : 
kbhowtomaster kbhttp KB207671
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.

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