WebDAV でカスタム プロパティを使用する方法
作成者 : Robert McMurray
発行日 : 2008 年 2 月 14 日 (作業者 : robmcm(英語))
更新日 : 2009 年 3 月 18 日 (作業者 : robmcm(英語))
はじめに
Microsoft は、Windows Server® 2008 のインターネット インフォメーション サービス 7.0 (IIS 7.0) 用に完全に書き換えられた、新しい WebDAV 拡張モジュールをリリースしました。この新しい WebDAV 拡張モジュールには多くの新機能が組み込まれており、Web 作成者にはコンテンツの発行がしやすくなる環境を、Web 管理者にはより優れたセキュリティおよび構成オプションを提供します。また Microsoft は、Windows Server® 2008 用 WebDAV 拡張モジュールに対して、上書きによって更新内容が失われることを防ぐための共有ロックと排他的ロックをサポートする更新プログラムをリリースしました。
WebDAV の優れた機能の 1 つとして、コンテンツのカスタム プロパティを格納できることが挙げられます。これは多くの場合、コンテンツの追加のメタデータ用に使用されます。これらのカスタム プロパティに格納される情報は WebDAV クライアントによって異なりますが、新しい WebDAV モジュールを使用すると、発行クライアントはこららのプロパティを単純なプロパティ ストアに保存して、後で取得することができます。
このドキュメントでは、新しい WebDAV モジュールを構成して、カスタム プロパティを格納する方法について説明します。これらのカスタム プロパティは、WebDAV クライアントによって使用されます。
このチュートリアルの内容
- IIS マネージャーを使用したカスタム プロパティの有効化
- AppCmd を使用したカスタム プロパティの有効化
前提条件
この記事の手順を完了するには、次の項目を満たしている必要があります。
- サーバーに IIS 7.0 がインストールされ、以下が構成されている必要があります。
- IIS 7.0 のインストールで作成される既定の Web サイトがまだ存在する。
- インターネット インフォメーション サービス マネージャーがインストールされている。
- 新しい WebDAV 拡張モジュールがインストールされている必要があります。新しい WebDAV モジュールのインストールについては、次のドキュメントを参照してください。
注 : このドキュメントの手順は、完全な管理アクセス許可を使用して実行する必要があります。そのためには、次のいずれかの方法を使用することをお勧めします。
- ローカルの "administrator" アカウントを使用してコンピューターにログインします。
- ローカルの "administrator" アカウント以外の管理アクセス許可を持つアカウントを使用してログインする場合は、IIS マネージャーおよびすべてのコマンド プロンプト セッションを "管理者として実行" オプションを使用して開きます。
Windows Server 2008 では、ユーザー アカウント制御 (UAC) セキュリティ コンポーネントにより、IIS 7.0 の構成設定への管理者としてのアクセスが制限されるため、上記の条件が必要となります。UAC の詳細については、次のドキュメントを参照してください。
追加情報
- 単純なプロパティ ストアでは、各フォルダーにある "properties.dav" という名前の非表示のシステム ファイルにプロパティが格納されます。要求のフィルタリングの設定で、このファイルを拒否対象のファイルの種類の一覧に追加する必要があります。詳細については、「WebDAV と要求のフィルタリングを構成する方法(英語)」を参照してください。
- プロパティには、次のような制限があります。
- 個々のプロパティの値は 32,000 文字に制限されています。
- ファイルあたりのプロパティの合計サイズは 500,000 文字に制限されています。
IIS マネージャーを使用したカスタム プロパティの有効化
IIS 7.0 マネージャーの [接続] ウィンドウで、ツリー内の [サイト] ノードを展開し、[Default Web Site] をクリックします。
次の図で示すように、[WebDAV Authoring Rules] 機能をダブルクリックします。
[WebDAV Authoring Rules] ページが表示されたら、[操作] ウィンドウの [WebDAV Settings] タスクをクリックします。
[WebDAV Settings] ページが表示されたら、次のオプションを指定します。
- [Allow anonymous property queries] を [False] に設定します。
- [Allow custom properties] を [True] に設定します。
- [Allow property queries with infinite depth] を [False] に設定します。
[...] ボタンをクリックして、名前空間コレクション エディターを起動します。
[Add] をクリックし、ドロップダウン リストから [webdav_simple_prop] を選択します。
XmlNameSpace に対して '*' を指定し、[OK] をクリックします。
上記の手順を完了したら、[操作] ウィンドウの [適用] タスクをクリックします。
AppCmd を使用したカスタム プロパティの有効化
AppCmd.exe は、IIS 7.0 を管理するための新しいコマンドライン ツールです。このユーティリティを IIS および WebDAV で使用する方法についての追加情報は、次のドキュメントにあります。
次の手順は、AppCmd ユーティリティを使用して WebDAV のプロパティ設定を構成する方法を示しています。
注 : AppCmd.exe ユーティリティは %WinDir%\System32\InetSrv フォルダーにあります。
プロパティの動作の構成
カスタム プロパティの使用
カスタム プロパティを使用するには、最初に機能を有効にする必要があります。これを行うには、次のような構文を使用して、"authoring" セクションの "properties" コレクションで "allowCustomProperties" 属性を "true" に設定します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowCustomProperties:true /commit:apphost
カスタム プロパティを無効にするには、次の例の構文を使用します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowCustomProperties:false /commit:apphost
匿名のプロパティ クエリ
セキュリティ上の理由から、プロパティへの匿名アクセスは既定では無効になっていますが、特定の WebDAV クライアントがメタデータにアクセスできるように、それらの WebDAV クライアントに対して匿名アクセスを有効にすることが必要になる場合があります。これを行うには、次のような構文を使用して、"authoring" セクションの "properties" コレクションで "allowAnonymousPropfind" 属性を "true" に設定します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowAnonymousPropfind:true /commit:apphost
匿名アクセスを無効にするには、次の例の構文を使用します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowAnonymousPropfind:false /commit:apphost
無限の深さのプロパティ クエリ
WebDAV クライアントはプロパティ クエリを再帰的に実行できます。これにより、クライアントは 1 回の要求で Web サイト全体のプロパティを取得できます。この操作を処理するには大量のサーバー リソースが必要となる場合があるため、既定では無効になっています。一部の WebDAV クライアントでは、Web サイトのすべてのコンテンツのプロパティを取得する必要がある場合があります。これを行うには、次のような構文を使用して、"authoring" セクションの "properties" コレクションで "allowInfinitePropfindDepth" 属性を "true" に設定します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowInfinitePropfindDepth:true /commit:apphost
無限の深さのプロパティ クエリを無効にするには、次の例の構文を使用します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.allowInfinitePropfindDepth:false /commit:apphost
プロパティ プロバイダーの管理
WebDAV モジュールは、構成可能な一連のプロパティ プロバイダーと連携するように設計されていますが、現在開発されているのは "webdav_simple_prop" という名前のプロバイダー 1 つだけです。将来的には、追加のプロパティ プロバイダーが開発される予定であり、さまざまなプロパティ プロバイダーを使用してカスタム プロパティ用に異なる XML 名前空間を利用できるようになります。
注 : 現時点で構成可能なのは、既定の名前空間である "*" のみです。
プロパティ プロバイダーの構成
Web サイトのプロパティ プロバイダーを指定するには、次のような構文を使用します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /+properties.[xmlNamespace='*',propertyStore='webdav_simple_prop'] /commit:apphost
プロパティ プロバイダーの編集
Web サイトのプロパティ プロバイダーを変更するには、次のような構文を使用します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /properties.[xmlNamespace='*'].propertyStore:"webdav_simple_prop" /commit:apphost
プロパティ プロバイダーの削除
Web サイトのプロパティ プロバイダーを削除するには、次のような構文を使用します。
AppCmd set config "Default Web Site/" /section:system.webServer/webdav/authoring /-properties.[xmlNamespace='*'] /commit:apphost
まとめ
このドキュメントでは、次の方法を使用して WebDAV のプロパティ設定を構成する手順について説明しました。
- IIS マネージャーの使用
- AppCmd の使用
詳細情報
WebDAV の使用の詳細については、次の記事を参照してください。