Partager via


Configuration du protocole FTP avec l’authentification d’appartenance .NET dans IIS 7

Auteur : Robert McMurray

Compatibilité

Version Notes
IIS 7.5 Le service FTP 7.5 est fourni en tant que fonctionnalité pour IIS 7.5 dans Windows 7 et Windows Server 2008 R2.
IIS 7.0 Les services FTP 7.0 et FTP 7.5 ont été expédiés hors bande pour IIS 7.0, ce qui nécessite le téléchargement et l’installation du service à partir de l’URL suivante : https://www.iis.net/downloads/microsoft/ftp.

Introduction

Microsoft a créé un service FTP entièrement réécrit pour Windows Server® 2008. Ce nouveau service FTP intègre de nombreuses nouvelles fonctionnalités qui permettent aux auteurs web de publier du contenu mieux qu’auparavant et offre aux administrateurs Web davantage d’options de sécurité et de déploiement.

Ce document vous guide tout au long de la configuration de votre site web par défaut pour l’authentification basée sur l’appartenance FTP.

Remarque

Ce document a été écrit à l’aide d’une instance de SQL Server installée sur le serveur web local.

Prérequis

Les éléments suivants sont nécessaires pour effectuer les procédures décrites dans cet article :

  1. IIS 7.0 doit être installé sur votre serveur Windows 2008, et les éléments suivants doivent être configurés :

    • Le site web par défaut créé par l’installation IIS 7.0 doit toujours exister.
    • Le Gestionnaire Internet Information Services doit être installé.
  2. Le nouveau service FTP doit être installé. Vous pouvez télécharger et installer le service FTP à partir du https://www.iis.net/ site web à l’aide de l’un des liens suivants :

    • FTP 7.5 pour IIS 7.0 (x64)
    • FTP 7.5 pour IIS 7.0 (x86)
  3. Définissez les autorisations de contenu pour autoriser l’accès au processus COM d’extensibilité qui gère l’authentification :

    • Ouvrez une invite de commandes.

    • Tapez la commande suivante :

      ICACLS "%SystemDrive%\inetpub\ftproot" /Grant "Network Service":M /T
      
    • Fermez l'invite de commande.

Ajout de la publication FTP au site web par défaut

Dans cette première section, vous ajoutez la publication FTP au site web par défaut, puis vous ajoutez les paramètres requis pour permettre au compte d’administrateur local de modifier le contenu.

  1. Dans le Gestionnaire IIS 7.0, dans le volet Connexions, développez le nœud Sites de l’arborescence, puis cliquez sur le Site web par défaut.

  2. Cliquez sur Ajouter une publication FTP dans le volet Actions.
    Screenshot of the I I S Manager Window displaying the Default Website page. Add F T P Publishing is circled in the Actions menu.

  3. Lorsque l’Assistant Ajouter une publication de site FTP s’affiche :

    • Choisissez une adresse IP pour votre site FTP dans la liste déroulante Adresse IP, ou choisissez d’accepter la sélection par défaut de « Tous non attribués. » Pour cette procédure pas à pas, entrez l’adresse IP de bouclage locale de votre ordinateur en tapant « 127.0.0.1 » dans la zone Adresse IP .

      Remarque

      Si vous utilisez IPv6, vous devez également ajouter la liaison localhost IPv6 de « ::1 ».

    • Normalement, vous devez normalement entrer le port TCP/IP du site FTP dans la zone Port. Pour cette procédure pas à pas, choisissez d’accepter le port par défaut 21.

    • Pour cette procédure pas à pas, vous n’utiliserez pas de nom d’hôte. Vérifiez donc que la zone Hôte virtuel est vide.

    • Vérifiez que la liste déroulante Certificat SSL est définie sur « Non sélectionné » et que l’option Autoriser SSL est sélectionnée.

    • Une fois ces éléments terminés, cliquez sur Suivant.

      Screenshot of the Add F T P Site dialog box.

  4. Dans la page suivante de l’assistant, vous ne configurerez aucun paramètre d’authentification ou d’autorisation, car ces paramètres seront configurés ultérieurement. Cliquez sur Terminer pour terminer l’Assistant.
    Screenshot of the Add F T P Publishing dialog box.

Résumé

Pour récapituler les éléments que vous avez terminés dans cette section -- nous avons ajouté la publication FTP sur le « site web par défaut » en :

  • Ajoutant une liaison FTP pour le site Web pour l’adresse IP de bouclage local sur le port 21
  • Choisissant de ne pas utiliser SSL (Secure Sockets Layer) pour le site FTP.

Remarque

Vous n’avez pas encore activé les paramètres d’authentification ou d’autorisation.

Configuration d’ASP.NET pour l’authentification d’appartenance

Configurer votre server SQL Server local pour l’appartenance à ASP.NET

Cette section décrit le processus de base permettant de configurer ASP.NET pour l’authentification d’appartenance. Pour plus d’informations, consultez la section « Configurer ASP.NET pour l’appartenance » dans la rubrique Guide pratique : utiliser l’authentification par formulaires avec SQL Server dans ASP.NET 2.0 sur le site web MSDN.

Si vous n’avez pas accès à un serveur SQL Server existant, vous devez installer SQL Server.

Si vous n’avez pas encore créé de base de données ASP.NET, vous devez générer la base de données ASP.NET sur le serveur SQL Server à l’aide de la commande appropriée dans la liste suivante pour la version de l’infrastructure que vous utilisez :

  • Infrastructure 32 bits :

    "%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql.exe" -S localhost -A all -E
    
  • Infrastructure 64 bits :

    "%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regsql.exe" -S localhost -A all -E
    

Remarque

Pour utiliser un serveur SQL Server distant au lieu de « localhost », comme indiqué dans l’exemple ci-dessus, consultez la section « Considérations relatives au déploiement » dans l’article Guide pratique : Utiliser l’authentification par formulaires avec SQL Server dans ASP.NET 2.0 .

Étant donné que le processus COM pour l’extensibilité FTP s’exécute en tant que « NT AUTHORITY\service réseau », vous devez ajouter le compte « NT AUTHORITY\service réseau » à la base de données ASP.NET sur votre serveur SQL Server. Pour cela, utilisez les étapes suivantes :

  1. Ouvrez le Gestionnaire SQL Server Enterprise.
  2. Créez une connexion SQL Server pour NT AUTHORITY\service réseau.
  3. Accordez l’accès de connexion à la base de données Aspnetdb en créant un utilisateur de base de données.
  4. Ajoutez l’utilisateur de base de données au rôle de base de données aspnet_Membership_FullAccess.

Configurer ASP.NET pour l’appartenance FTP

Les étapes suivantes décrivent le processus de configuration d’ASP.NET pour autoriser l’authentification d’appartenance pour l’accès FTP.

  1. À l’aide d’un éditeur de texte tel que Bloc-notes Windows, ouvrez votre fichier web.config racine, qui doit se trouver sur le chemin approprié pour la version de l’infrastructure que vous utilisez :

    • Infrastructure 32 bits :

      "%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config"
      
    • Infrastructure 64 bits :

      "%SystemRoot%\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config"
      
  2. Faites défiler jusqu’au bas et collez le code suivant avant la balise </configuration> de fermeture :

    <location path="GlobalFtpSite/ftpsvc">
       <connectionStrings>
          <add connectionString="Server=localhost;Database=aspnetdb;Integrated Security=true" name="FtpLocalSQLServer" />
       </connectionStrings>
       <system.web>
          <membership defaultProvider="FtpSqlMembershipProvider">
             <providers>
                <add name="FtpSqlMembershipProvider"
                   type="System.Web.Security.SqlMembershipProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
                   connectionStringName="FtpLocalSQLServer"
                   enablePasswordRetrieval="false"
                   enablePasswordReset="false"
                   requiresQuestionAndAnswer="false"
                   applicationName="/"
                   requiresUniqueEmail="false"
                   passwordFormat="Clear" />
             </providers>
          </membership>
          <roleManager defaultProvider="FtpSqlRoleProvider" enabled="true">
             <providers>
                <add name="FtpSqlRoleProvider"
                   type="System.Web.Security.SqlRoleProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
                   connectionStringName="FtpLocalSQLServer"
                   applicationName="/" />
             </providers>
          </roleManager>
       </system.web>
    </location>
    
  3. Enregistrez et fermez votre fichier web.config racine.

Résumé

Vous avez configuré ASP.NET pour l’authentification d’appartenance. Pour récapituler les éléments que vous avez terminés dans cette section, nous avons configuré votre serveur en :

  • Configurant votre server SQL Server local pour l’appartenance à ASP.NET
  • Configurant ASP.NET pour l’appartenance FTP

Configurant l’authentification d’appartenance FTP

Cette section explique comment configurer une base de données d’appartenance à l’aide du site web par défaut utilisé pour créer des utilisateurs que l’authentification d’appartenance basée sur FTP utilisera ultérieurement. Pour cela, utilisez les étapes suivantes :

Étapes préalables

  1. Ouvrez le gestionnaire Internet Information Services (IIS).
  2. Développez votre ordinateur au niveau du nœud supérieur de l’arborescence Connexions.
  3. Développez le nœud Sites dans l’arborescence.

Configuration des paramètres d’appartenance .NET

Étape 1 : Ajouter une chaîne de connexion

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Chaînes de connexion et procédez comme suit :

  1. Cliquez sur Ajouter... dans le menu Actions.

  2. Configurez les options suivantes :

    • Nom : « FtpLocalSQLServer »
    • Serveur : « localhost »
    • Base de données : « aspnetdb »
  3. Cliquez sur OK.

Étape 2 : Ajouter un fournisseur de rôles

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Fournisseurs et procédez comme suit :

  1. Choisissez Rôles .NET dans la liste déroulante.

  2. Cliquez sur Ajouter... dans le menu Actions.

  3. Choisissez SqlRoleProvider dans la liste déroulante.

  4. Configurez les options suivantes :

    • Nom : « FtpSqlRoleProvider »
    • Nom de chaîne de connexion : « FtpLocalSQLServer »
    • Nom de l'application : "/"
  5. Cliquez sur OK.

Étape 3 : Ajouter un fournisseur d’appartenances

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Fournisseurs et procédez comme suit :

  1. Choisissez Utilisateurs .NET dans la liste déroulante.

  2. Cliquez sur Ajouter... dans le menu Actions.

  3. Choisissez SqlMembershipProvider dans la liste déroulante.

  4. Configurez les options suivantes :

    • Nom : « FtpSqlMembershipProvider »
    • Nom de chaîne de connexion : « FtpLocalSQLServer »
    • Nom de l'application : "/"
  5. Cliquez sur OK.

Étape 4 : Ajouter un rôle pour l’appartenance FTP

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Rôles .NET et procédez comme suit :

  1. Vous pourriez voir une boîte de dialogue d’erreur à propos de la connexion. Dans ce cas, cliquez sur OK pour fermer la boîte de dialogue d’erreur, puis configurez le fournisseur par défaut en procédant comme suit :

    • Cliquez sur Définir le fournisseur par défaut... dans le volet Actions.
    • Choisissez FtpSqlRoleProvider dans la liste déroulante.
    • Cliquez sur OK.
  2. Cliquez sur Ajouter... dans le volet Actions.

  3. Configurez les options suivantes :

    • Nom : « ftprole »
  4. Cliquez sur OK.

Étape 5 : Ajouter un compte d’utilisateur pour l’appartenance FTP

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Utilisateurs .NET et procédez comme suit :

  1. Vous pourriez voir une boîte de dialogue d’erreur à propos de la connexion. Dans ce cas, cliquez sur OK pour fermer la boîte de dialogue d’erreur, puis configurez le fournisseur par défaut en procédant comme suit :

    • Cliquez sur Définir le fournisseur par défaut... dans le volet Actions.
    • Choisissez FtpSqlMembershipProvider dans la liste déroulante.
    • Cliquez sur OK.
  2. Cliquez sur Ajouter dans le volet Actions.

  3. Configurez les options suivantes :

    • Nom d’utilisateur : « ftpuser »
    • E-mail: « ftpuser@localhost.local »
    • Mot de passe : « P@ssw0rd »
  4. Sélectionnez Suivant.

  5. Ajoutez l’utilisateur à « ftprole », puis cliquez sur Terminer.

Activation de l’authentification d’appartenance pour FTP

Configurer FTP pour l’authentification d’appartenance

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Authentification FTP et procédez comme suit :

  1. Cliquez sur Fournisseurs personnalisés... personnalisés dans le volet Actions.
  2. Cochez la case pour AspNetAuth.
  3. Cliquez sur OK.

Vous pouvez maintenant autoriser l’utilisateur FTP à l’aide de l’une des deux méthodes suivantes :

Méthode 1 : Configurer une règle d’autorisation FTP pour un rôle d’appartenance

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Règles d'autorisation FTP et procédez comme suit :

  1. Cliquez sur Ajouter une règle d’autorisation dans le volet Actions.
  2. Sélectionnez les rôles ou groupes d’utilisateurs spécifiés pour l’option d’accès.
  3. Tapez « ftprole » pour le nom du rôle.
  4. Sélectionnez Lecture et Écriture pour l’option Autorisations.
  5. Cliquez sur OK.

Méthode 2 : Configurer une règle d’autorisation FTP pour un utilisateur d’appartenance

Mettez en surbrillance le site web par défaut dans l’arborescence, puis double-cliquez sur Règles d'autorisation FTP et procédez comme suit :

  1. Cliquez sur Ajouter une règle d’autorisation dans le volet Actions.
  2. Sélectionnez Utilisateurs spécifiés pour l’option d’accès.
  3. Tapez « ftpuser » pour le nom d’utilisateur.
  4. Sélectionnez Lecture et Écriture pour l’option Autorisations.
  5. Cliquez sur OK.

Résumé

Pour récapituler les éléments que vous avez terminés dans cette section, nous avons configuré votre serveur en :

  • Configuration des paramètres d’appartenance .NET :

    • Ajout d’une chaîne de connexion
    • Ajout d’un fournisseur de rôles
    • Ajout d’un fournisseur d’appartenances
    • Ajouter un rôle pour l’appartenance FTP
    • Ajouter un compte d’utilisateur pour l’appartenance FTP
  • Activation de l’authentification d’appartenance pour FTP :

    • Configuration de l’authentification FTP pour l’appartenance
    • Configurer une règle d’autorisation FTP pour un utilisateur d’appartenance
    • Configurer une règle d’autorisation FTP pour un rôle d’appartenance

Dépannage

Si vous utilisez des rôles d’appartenance, vous devrez peut-être installer le correctif logiciel décrit dans l’article suivant de la Base de connaissances Microsoft :

https://support.microsoft.com/kb/955136/

Lorsque vous tentez de vous connecter, vous recevez la réponse suivante :

530-User cannot log in.

Win32 error:
Error details: .Net SqlClient Data Provider: An error has occurred while establishing a connection to the server. 
When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server
does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

530 End
Login failed.

Cette erreur est due au fait que vous n’avez pas configuré votre serveur SQL pour accepter les connexions distantes.