サーバーに対して安全な Web パーツを構成および展開する (Office SharePoint Server)

Microsoft Office SharePoint Server 2007 には、製品のインストール後にサイト管理者が Web パーツ ページに追加できる Web パーツが用意されています。ただし、組織で Web パーツをカスタマイズする必要がある場合もあります。その場合、開発者がカスタムビルドの ASP.NET 2.0 Web パーツを作成して、Office SharePoint Server 2007 展開へのインストールを依頼します。

Office SharePoint Server は、Microsoft .NET Framework によって提供される構成管理の設定の一部を使用します。これらの設定の一部は、XML の構成ファイルに保存されていて、サーバーの管理者が Web アプリケーションとその環境を管理する際のさまざまな設定が記載されています。ASP.NET 2.0 構成ファイルの詳細については、MSDN ライブラリ オンラインの「Securing Your ASP.NET Application and Web Services (英語)」内の「Web アプリケーション セキュリティ強化: 脅威とその対策」(https://go.microsoft.com/fwlink/?linkid=103450&clcid=0x411) を参照してください。

構成オプション

システム管理者は、Office SharePoint Server 展開内の次のどちらかの場所に ASP.NET 2.0 Web パーツを展開できます。

  • Bin ディレクトリ   Web アプリケーションのルート ディレクトリに格納します。

  • グローバル アセンブリ キャッシュ (GAC)   標準的なすべての Web パーツが, .NET Framework の共通言語ランタイムと共に自動的にインストールされます。GAC に保存することにより、多数のアプリケーションで Web パーツを共有できます。コンポーネントは、通常、C:\WINNT\Assembly に格納されます。

この 2 つの展開場所には、以下に示すように一長一短があります。

展開場所 利点 欠点

Bin ディレクトリ

部分的に信頼できる場所。既定では、このディレクトリから実行されるコードには、低レベルのコード アクセス セキュリティ権限があります。管理者は、Web パーツに許可されている権限を明示的に昇格させて、正しく機能できるようにする必要があります。このレベルの制御および多層防御のため、管理者は、必要なコード アクセス セキュリティ権限の既知のセットを使用して Bin ディレクトリでアセンブリを実行することを好む傾向があります。

また、Bin ディレクトリも Web アプリケーションに固有です。これにより、コードを特定の Web アプリケーションに分離することができます。

Web パーツをどこででも実行できるようにするには、Bin アセンブリを展開する必要があります。

GAC

署名されたアセンブリを展開できるグローバルな場所。既定では、高い信頼性が確保された状態で動作します。これらはグローバルにインストールされているため、どの Web アプリケーションからも使用できます。

一般的に、GAC にインストールされたコードにはコード アクセス セキュリティの制限が適用されないため、多層防御セキュリティの利点は失われます。

また、GAC 内のアセンブリにプログラム データベース (.pdb) ファイルを展開することが難しい場合があります。

特殊なセキュリティ属性の設定

Bin ディレクトリに格納する ASP.NET 2.0 Web パーツには、セキュリティに関する特殊な制約があります。Web パーツの使用方法に応じて、特殊なセキュリティ属性を設定するかどうかを選択できます。

Bin ディレクトリは部分的に信頼できる場所です。したがって、実行時に完全な信頼レベルのコード アクセス権限が、Web パーツに対して自動的に付与されることはありません。Web パーツに呼び出されるコードに対しては部分的に信頼できるレベルのアクセス権限のみが付与されるので、Web パーツ開発者が ASP.NET 2.0 Web パーツに AllowPartiallyTrustedCallers 属性を設定する必要があります。

注意

コンポーネントに AllowPartiallyTrustedCallers 属性を設定して明確に "安全" を示すということは、開発者が安全な実装に関して責任を負うという意味です。

Bin ディレクトリに対するコード アクセス セキュリティ権限は既定では非常に低く、単に実行することしかできません。アセンブリを正しく動作させるには、ほとんどの場合、これらのアクセス権限を昇格させる必要があります。

アクセス権限は、次の 2 つの方法で昇格できます。

  • (推奨) 信頼ポリシー ファイルを作り、その中で Web.config ファイルを指定する方法。手順はより複雑ですが、Web パーツの権限をより細かく制御できます。信頼ポリシー ファイルの詳細については、MSDN ライブラリ オンラインの「Microsoft Windows SharePoint Services and Code Access Security (英語)」(https://go.microsoft.com/fwlink/?linkid=103436&clcid=0x411) を参照してください。

  • Bin ディレクトリ全体の信頼レベルを上げる方法。アプリケーションのルート ディレクトリ内の Web.config ファイルに記載されている trust 要素を探します。trust 要素の level 属性の既定値は WSS_Minimal です。このレベルを WSS_Medium に変更できます。これは信頼ポリシー ファイルの作成より簡単ですが、必要以上に権限を付与することになるため安全性の面で劣ります。

安全なコントロールのリスト

SharePoint 製品とテクノロジは基本的に、Office SharePoint Server が実行されているシステム内に、"信頼されていないユーザー" が .aspx ページをアップロードおよび作成することもあり得ると想定して、設計されています。信頼されていないユーザーが .aspx ページ内にサーバー側コードを追加することを防ぐ必要がありますが、これらの信頼されていないユーザーが使用できる承認済みコントロールのリストが必要です。Office SharePoint Server では、このリストは、安全なコントロール リストによって提供されます。

安全なコントロールのリストとは、サイト内の任意の .aspx ページを安全に呼び出すためにサーバー管理者が指定できる、SharePoint サイト専用のコントロールおよび Web パーツのリストです。このリストは、Web アプリケーション ルートの Web.config ファイルに格納されます。

作業の要件

この作業の手順を実行するには、次の権限が必要です。

  • Office 2007 リリースのサーバー製品のいずれかがインストールされているサーバー コンピュータの管理者権限。

サーバーに対して安全な Web パーツを構成および展開するには、次の手順を実行します。