IISには、静的、あるいはWebアプリケーションによって生成する動的なWebコンテンツを公開するサーバとしての機能に加え、HTTP(HyperText Transfer Protocol)を用いてファイル共有を実現するWebDAV(Web-based Distributed Authoring and Versioning)サーバの機能もある。WebDAVに関する規定はRFC2518にある。

Windows Server 2008は当初、WebDAVサーバ機能は別途ダウンロードして追加する形をとっていた。しかし、Windows Server 2008 R2は最初から、IISを構成するコンポーネントの一員に加わっているので、WebDAVを利用するならR2のほうがラクだ。なお、Windows Server 2003にもIISのコンポーネントとしてWebDAVサーバ機能があったので、Windows Server 2008だけが割を食った格好になっている。

WebDAVのメリット

ファイルの送受信だけならHTTPでも実現できるが、それだけだとファイル共有に不可欠な排他制御などの機能を実現できない。こうした点をフォローするのがWebDAVということになる。WebDAVを利用するメリットとしては、以下のものが挙げられる。

狙われやすいWindowsファイル共有を使わずに済む

WebDAVはHTTPベースで動作するので、プロトコル単位で通過の可否を許可する場合も、既定値ではHTTPと同じTCPポート80番を使用することになる。何かと攻撃者に狙われやすいWindowsのファイル共有機能(TCP/UDPポート137~139番)やダイレクトホスティングSMB(TCPポート445番)は遮断して、それでいてファイル共有を実現できるわけだ。

ただし、ユーザー認証やアクセス権管理の設定が必要になる点は変わらない。あくまで、狙われやすいプロトコルを通さずに済むという意味である。

利用可能なクライアントの幅が広い

最近はWindows以外のOSでもWindowsファイル共有に対応しているものが多いが、すべてのOSが対応しているとは限らない。そういう意味では、さまざまなOSでクライアントが提供されているWebDAVのほうが、マルチプラットフォーム環境におけるファイル共有に向いているかもしれない。

SSLによる暗号化が可能

WebDAVはHTTP上で動作するため、HTTPのトラフィックと同様にSSLで暗号化して、安全なファイルのやり取りを実現できるのも長所と言える。

WebDAVの導入[W2K8R2]

Windows Server 2008 R2では、IISの役割サービスとしてWebDAVサーバ機能を用意しているので、サービスを追加するだけでWebDAVの利用が可能になる。ただし、サービスの追加のあとにいくつかの作業が必要で、Windows Server 2003と比較すると導入手順が複雑になっている。かいつまんでまとめると、以下の通りだ。

  1. WebDAVの役割サービスを追加する
  2. 必要なら、WebDAV用にWebサイトを追加する(WebDAV専用サーバを利用する場合は既定のWebサイトを流用してもよい)
  3. WebDAVのオーサリング規則を設定する
  4. 認証方法の設定を変更してWindows認証の有効化と匿名認証の無効化を行う

WebDAVオーサリング規則や認証に関する設定は、Webサイト単位でもその下のディレクトリ単位でも設定できるが、WebDAVの有効化はWebサイト単位でしか行えない。このため、結局のところはWebDAV用にWebサイトを用意する必要があるだろう。本稿の画面例では、WebDAV専用ということで既定のWebサイトをそのまま使っている。

IIS管理ツール左側のツリー画面で[Default Web Site]、あるいはその他のWebサイトを選択すると、画面中央に設定項目一覧が現れる。その中から[WebDAVオーサリング規則]をダブルクリックする。最初、オーサリング規則の一覧画面は空白になっているので、一覧の空白部分で右クリックして、メニューから[オーサリング規則の追加]を選択する。

続いて、表示するダイアログでオーサリング規則を追加するのだが、その際に、対象となるユーザー/グループと読み取り・書き込みの許可を指定する。全ユーザーに対して利用を許可することもできる。

WebDAVを利用するため、オーサリング規則の追加を指示する

オーサリング規則を追加する際に使用する画面。特定のユーザー、あるいはグループに対象を限定することもできる

続いて、同じ画面でもう一度右クリックメニュー、あるいは画面右側のアイテム一覧にある[WebDAVの有効化]を選択して、WebDAVサーバ機能を有効化する。これを忘れると、他の設定が正しくてもWebDAVサーバ機能が動作しないので注意したい。

IIS 7.5では、WebDAVは明示的に有効化を指示するまで動作しない

最後に、認証方式の変更を行う。IIS管理ツール左側のツリー画面で[Default Web Site]、あるいはその他のWebサイトを選択すると、画面中央に設定項目一覧が現れる。その中から[認証]をダブルクリックする。続いて表示される画面には、利用可能な認証方式の一覧を表示しているので、[Windows認証]は右クリックメニューを使って有効化する一方、[匿名認証]は無効化する。

匿名認証は無効化して、Windows認証を有効化する

これで、WebDAVサーバ機能の利用が可能になる。

WebDAVの導入[W2K3]

参考までに、Windows Server 2003におけるWebDAVサーバ機能の追加手順についてもまとめておこう。

Windows Server 2003の場合、WebDAVサーバ機能は[サーバーの役割管理]ツールでは追加できないので、コントロールパネルの[プログラムの追加と削除]でコンポーネントの追加を行う。WebDAVのサーバのコンポーネントは、[アプリケーション サーバー]-[インターネット インフォメーション サービス(IIS)]-[WWW(World Wide Web)サービス]-[WebDAV発行]だ。

WebDAVサーバは、コントロールパネルでIISのコンポーネントを追加する方法で組み込む

コンポーネントを追加した後で、IIS管理ツール左側のツリー画面で[Webサービス拡張]を選択する。すると、右側に表示されている[WebDAV]を選択した際に状態を確認できるので、[状態]の表示が「許可」になっていることを確認する。

IIS管理ツールで、WebDAVが「許可」になっているかどうかを確認する

最後に、WebDAV公開用のフォルダを仮想ディレクトリ機能によって追加する。「C:\Inetpub\wwwroot」以下のフォルダに対しては、フォルダに設定されている既定のアクセス権の関係からWebDAVが使用できないためだ。

仮想ディレクトリの追加手順そのものは、WebDAVだからといって違いがあるわけではない。ポイントはアクセス権の選択で、[読み取り][書き込み][参照]の中から必要なものを有効にすればよい。WebDAVで公開する仮想ディレクトリでアプリケーションを公開することはないだろうから、[ASPなどのスクリプトを実行する]と[ISAPIアプリケーションやCGIなどを実行する]についてはチェックを外しておく。

仮想ディレクトリをWebDAVで使用する際のアクセス権設定例。プログラムの実行は必要ないが、書き込みは必要になる場合が多い

こうしてWebDAV用に追加した仮想ディレクトリは、通常のWebサーバの仮想ディレクトリと同様に、「http://<サーバ名>/<仮想ディレクトリ名>/」という名前でアクセスできる。