次の方法で共有


既定の FTP 匿名認証設定 <anonymousAuthentication>

概要

<anonymousAuthentication> 要素は、匿名アクセスの設定を指定します。 この形式の認証を使うと、サーバーまたはドメイン上にユーザー アカウントがなくても FTP サイトにアクセスできます。パブリック FTP サイトに最もよく使われます。

匿名ユーザーは通常、ftp または anonymous というユーザー名を使ってログインします。ほとんどのユーザーは自分のメール アドレスをパスワードとして使いますが、これは必須ではありません。

互換性

バージョン メモ
IIS 10.0 <anonymousAuthentication> 要素は IIS 10.0 では変更されませんでした。
IIS 8.5 <anonymousAuthentication> 要素は IIS 8.5 では変更されませんでした。
IIS 8.0 <anonymousAuthentication> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <authentication> 要素の <anonymousAuthentication> 要素は、IIS 7.5 の機能として付属しています。
IIS 7.0 <authentication> 要素の <anonymousAuthentication> 要素が、IIS 7.0 用の別個のダウンロードとして FTP 7.0 で導入されました。
IIS 6.0 <ftpServer> 要素とその子要素は、LM/MSFTPSVC メタベース パスにある IIS 6.0 の FTP 設定を置き換えます。

Note

FTP 7.0 サービスと FTP 7.5 サービスは IIS 7.0 とは別に出荷され、次の URL からモジュールをダウンロードしてインストールする必要がありました。

https://www.iis.net/expand/FTP

Windows 7 と Windows Server 2008 R2 では、FTP 7.5 サービスは IIS 7.5 の機能として付属しているため、FTP サービスのダウンロードは必要なくなりました。

段取り

Web サーバーの FTP 公開をサポートするには、FTP サービスをインストールする必要があります。 そのためには、次のステップに従います。

Windows Server 2012 または Windows Server 2012 R2

  1. タスク バーで [サーバー マネージャー]をクリックします。

  2. [サーバー マネージャー] で、[管理] メニューを選択し、[役割と機能の追加] を選択します。

  3. [役割と機能の追加] ウィザードで、[次へ] をクリックします。 インストールの種類を選択し、[次へ] をクリックします。 対象サーバーを選択し、[次へ] をクリックします。

  4. [サーバーの役割] ページで、[Web サーバー (IIS)] を展開して、[FTP サーバー] を選びます。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP Service] に加えて[FTP 拡張] も選択する必要があります。
    Windows Server 2012 インターフェイスで選択された F T P サービスと F T P 拡張機能のスクリーンショット。 .

  5. [次へ] をクリックし、[機能の選択] ページで再度 [次へ] をクリックします。

  6. [インストール オプションの確認] ページで、[インストール] をクリックします。

  7. [結果] ページで、 [閉じる]をクリックします。

Windows 8 または Windows 8.1

  1. [スタート] 画面で、ポインターを左下隅まで移動し、[スタート] ボタンを右クリックし、[コントロール パネル] をクリックします。

  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。

  3. [インターネット インフォメーション サービス] を展開し、[FTP サーバー] を展開します。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
    Windows 8 インターフェイスで選択された F T P サービスと F T P 拡張機能のスクリーンショット。

  4. OK をクリックします。

  5. 閉じるをクリックします。

Windows Server 2008 R2

  1. タスク バーで [スタート] をクリックし、[管理ツール] をポイントして、[サーバー マネージャ] をクリックします。

  2. [サーバー マネージャ] 階層ウィンドウで [役割] を展開し、[Web サーバー (IIS)] をクリックします。

  3. [Web サーバー (IIS)] ウィンドウで、[役割サービス] セクションまでスクロールし、[役割サービスの追加] をクリックします。

  4. [役割サービスの追加] ウィザード[役割サービスの選択] ページで [FTP サーバー] を展開します。

  5. [FTP Service] を選択します。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
    Windows Server 2008 インターフェイスで選択された F T P サービスと F T P 拡張機能のスクリーンショット。

  6. 次へ をクリックします。

  7. [インストール オプションの確認] ページで、[インストール] をクリックします。

  8. [結果] ページで、 [閉じる]をクリックします。

Windows 7

  1. タスク バーで、[スタート][コントロール パネル] の順にクリックします。

  2. [コントロール パネル][プログラムと機能] をクリックし、[Windows の機能の有効化または無効化] をクリックします。

  3. [インターネット インフォメーション サービス][FTP サーバー] の順に展開します。

  4. [FTP Service] を選択します。

    Note

    FTP サービスに対して ASP.NET メンバーシップ認証または IIS マネージャー認証をサポートするには、[FTP 拡張] も選択する必要があります。
    Windows 7 インターフェイスで選択された F T P サービスと F T P 拡張機能のスクリーンショット。

  5. OK をクリックします。

Windows Server 2008 または Windows Vista

  1. 次の URL からインストール パッケージをダウンロードします。

  2. 次のチュートリアルの手順に従って、FTP サービスをインストールします。

操作方法

FTP サイトに対する匿名認証を有効または無効にする方法

  1. 次のようにインターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーで、[スタート] ボタンをクリックし、[管理ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ウィンドウでサーバー名を展開し、[サイト] ノードを展開してから、サイトの名前をクリックします。

  3. サイトの [ホーム] ウィンドウで、[FTP 認証] 機能をダブルクリックします。

  4. [FTP 認証] ページで、[匿名認証] を選びます。

  5. [操作] ウィンドウで、[有効にする] をクリックして匿名認証を有効にするか、[無効にする] をクリックして匿名認証を無効にします。
    [F T P 認証] ウィンドウで無効になっている匿名認証のスクリーンショット。


FTP サイト ウィザードを使用して匿名読み取りアクセス権を指定して FTP サイトを作成する方法

  1. 次のようにインターネット インフォメーション サービス (IIS) マネージャーを開きます。

    • Windows Server 2012 または Windows Server 2012 R2 を使用している場合:

      • タスク バーで、[サーバー マネージャー] をクリックし、[ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows 8 または Windows 8.1 を使用している場合:

      • Windows キーを押しながら文字 X を押し、[コントロール パネル] をクリックします。
      • [管理ツール] をクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
    • Windows Server 2008 または Windows Server 2008 R2 を使用している場合:

      • タスク バーで、[スタート] ボタンをクリックし、[管理ツール][インターネット インフォメーション サービス (IIS) マネージャー] の順にクリックします。
    • Windows Vista または Windows 7 を使用している場合:

      • タスク バーで、[スタート][コントロール パネル] の順にクリックします。
      • [管理ツール] をダブルクリックし、[インターネット インフォメーション サービス (IIS) マネージャー] をダブルクリックします。
  2. [接続] ペインで、ツリーにある [サイト] ノードをクリックします。

  3. ツリーの [サイト] ノードを右クリックし、[FTP サイトの追加] をクリックするか、[操作] ペインの [FTP サイトの追加] をクリックします。

  4. FTP サイトの追加ウィザードが表示されたら次の操作を行います。

    • [FTP サイト名] ボックスに「My New FTP Site」と入力します。

    • [物理パス] ボックスには、次のいずれかのオプションを使用してコンテンツ ディレクトリを指定できます。

      • 省略記号 (...) ボタンをクリックし、FTP サイトのコンテンツを含むフォルダーに移動します。
      • ボックスにコンテンツ フォルダーへのパスを入力します。 パスを入力する場合は、パスに環境変数を使用できます。 たとえば、コンテンツ ディレクトリに "%SystemDrive%\inetpub\ftproot" を使用できます。
    • これらの項目が完了したら、[次へ] をクリックします。
      指定された新しい F T P サイト情報オプションのスクリーンショット。

  5. FTP サイトの追加ウィザードの 2 番めのページで、次の操作を行います。

    • [IP アドレス] ドロップダウンから FTP サイトの IP アドレスを選択するか、既定の選択値である [すべて未割り当て] を受け入れます。

    • [ポート] ボックスに FTP サイトの TCP/IP ポートを入力します。 既定では、FTP サイトとクライアントはポート 21 を使用します。 (注: 暗黙的 FTPS を指定するには、ポート 990 を使用する必要があります)。

    • FTP 仮想ホスト名を使用するには、[仮想ホスト名を有効にする] ボックスをオンにし、[仮想ホスト] ボックスに仮想ホスト名を入力します。

    • SSL オプションに、次のいずれかのオプションを選びます。

      • SSL オプションを無効にするには、SSL に [無し] を選びます。
      • FTP クライアントが FTP サーバーに接続するときに、必要に応じて FTP over SSL を使用できるようにするには、SSL に [許可] を選びます。
      • FTP クライアントが FTP サーバーに接続するときに、常に FTP over SSL を使用できるようにするには、SSL に [必要] を選びます。
      • SSL に [許可] または [必要] を選択した場合は、[SSL 証明書] ドロップダウン メニューから証明書を選択します。
    • これらの項目が完了したら、[次へ] をクリックします。
      指定された F T P サイト バインドと S S L 設定のスクリーンショット。

  6. 次のウィザード ページで次の操作を行います。

    • [認証] 設定に [匿名] を選びます。
    • [承認] 設定で、[アクセスの許可] ドロップダウンから [匿名ユーザー] を選びます。
    • [アクセス許可] オプションの [読み取り] をオンにします。
    • これらの項目が完了したら、[終了] をクリックします。
      指定された [認証と承認情報] オプションのスクリーンショット。

構成

属性

属性 説明
defaultLogonDomain 省略可能な文字列属性。

匿名ユーザー アカウント参照の既定のドメインを指定します。

既定値は NT AUTHORITY です。
enabled 省略可能で、 Boolean 型の属性。

匿名認証を有効にするかどうかを指定します。

既定値は false です。
logonMethod 省略可能な列挙型属性。

匿名ユーザーに対して、LogonUser Win32 API が解釈するログオンの種類を指定します。
Value 説明
Interactive 対話型ログオンの種類を指定します。

数値は 0 です。
Batch バッチ ログオンの種類を指定します。

数値は 1 です。
Network ネットワーク ログオンの種類を指定します。

数値は 2 です。
ClearText クリア テキスト ログオンの種類を指定します。

数値は 3 です。
既定値は ClearText です。
password 省略可能な文字列属性。

匿名ユーザー アカウントのパスワードを指定します。

既定値はありません。
userName 省略可能な文字列属性。

匿名ユーザー アカウントのユーザー名を指定します。

既定値は IUSR です。

子要素

なし。

構成サンプル

次の構成サンプルでは、既定で匿名認証を無効にし、基本認証を有効にします。

<siteDefaults>
   <ftpServer>
      <security>
         <authentication>
            <anonymousAuthentication enabled="false" />
            <basicAuthentication enabled="true" />
         </authentication>
      </security>
   </ftpServer>
</siteDefaults>

サンプル コード

次のコード サンプルでは、既定で匿名認証を無効にし、基本認証を有効にします。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.authentication.anonymousAuthentication.enabled:"False" /commit:apphost
appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.ftpServer.security.authentication.basicAuthentication.enabled:"True" /commit:apphost

Note

AppCmd.exe を使用してこれらの設定を構成するときは、commit パラメーターを必ず apphost に設定する必要があります。 これで、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 sitesSection = config.GetSection("system.applicationHost/sites");
         ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");
         ConfigurationElement ftpServerElement = siteDefaultsElement.GetChildElement("ftpServer");

         ConfigurationElement securityElement = ftpServerElement.GetChildElement("security");
         ConfigurationElement authenticationElement = securityElement.GetChildElement("authentication");
         ConfigurationElement anonymousAuthenticationElement = authenticationElement.GetChildElement("anonymousAuthentication");
            anonymousAuthenticationElement["enabled"] = false;
         ConfigurationElement basicAuthenticationElement = authenticationElement.GetChildElement("basicAuthentication");
            basicAuthenticationElement["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 sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
      Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")
      Dim ftpServerElement As ConfigurationElement = siteDefaultsElement.GetChildElement("ftpServer")

      Dim securityElement As ConfigurationElement = ftpServerElement.GetChildElement("security")
      Dim authenticationElement As ConfigurationElement = securityElement.GetChildElement("authentication")
      Dim anonymousAuthenticationElement As ConfigurationElement = authenticationElement.GetChildElement("anonymousAuthentication")
         anonymousAuthenticationElement("enabled") = False
      Dim basicAuthenticationElement As ConfigurationElement = authenticationElement.GetChildElement("basicAuthentication")
         basicAuthenticationElement("enabled") = True

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

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

var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");
var ftpServerElement = siteDefaultsElement.ChildElements.Item("ftpServer");

var securityElement = ftpServerElement.ChildElements.Item("security");
var authenticationElement = securityElement.ChildElements.Item("authentication");
var anonymousAuthenticationElement = authenticationElement.ChildElements.Item("anonymousAuthentication");
   anonymousAuthenticationElement.Properties.Item("enabled").Value = false;
var basicAuthenticationElement = authenticationElement.ChildElements.Item("basicAuthentication");
   basicAuthenticationElement.Properties.Item("enabled").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")
Set ftpServerElement = siteDefaultsElement.ChildElements.Item("ftpServer")

Set securityElement = ftpServerElement.ChildElements.Item("security")
Set authenticationElement = securityElement.ChildElements.Item("authentication")
Set anonymousAuthenticationElement = authenticationElement.ChildElements.Item("anonymousAuthentication")
   anonymousAuthenticationElement.Properties.Item("enabled").Value = False
Set basicAuthenticationElement = authenticationElement.ChildElements.Item("basicAuthentication")
   basicAuthenticationElement.Properties.Item("enabled").Value = true

adminManager.CommitChanges()