Web パーツを構成および展開する (SharePoint Server 2010)
適用先: SharePoint Foundation 2010, SharePoint Server 2010
トピックの最終更新日: 2016-11-30
ここでは、安全な Web パーツをサーバーの Bin ディレクトリまたは .NET Framework グローバル アセンブリ キャッシュ (GAC) に構成および展開するために必要な情報と手順を示します。
この記事の内容
Microsoft SharePoint Server には、製品をインストールした後で追加できる一連の Web パーツが含まれています。カスタムの Web パーツが必要とされる場合は、開発者によってカスタムの ASP.NET Web パーツが作成され、SharePoint Server 展開へのインストールが依頼されることがあります。通常、このプロセスでは、完全に信頼される環境に Web パーツを展開する前にコードをテストし、承認する必要があります。Visual Studio 2010 を使用する開発者は、プロジェクトを右クリックし、[展開] をクリックして Web パーツを SharePoint Server に展開できます。Web パーツの展開先は、開発者がプロジェクトを Visual Studio 2010 で作成したときに SharePoint サーバーに対して確立された信頼レベルによって決定されます。
Microsoft SharePoint Server 2010 では、サンドボックス環境を構成できます。この環境では、サイト コレクション管理者、サイト管理者、またはインフォメーション ワーカーが、部分的に信頼された Web パーツとソリューションをサンドボックス ワーカー プロセスで展開および実行できます。サンドボックス環境で実行する Web パーツとソリューションは、サーバーのオペレーティング システムとハードウェアにアクセスする権限が制限され、Web アプリケーションの他の部分から分離されます。
サンドボックス ソリューションの使用の詳細については、「サンドボックス ソリューションの管理 (SharePoint Server 2010)」を参照してください。
SharePoint Server では、Microsoft .NET Framework によって提供される構成管理設定の一部が使用されます。これらの設定の中には、XML 構成ファイルに格納され、サーバー管理者が Web アプリケーションとその環境を管理できる広範囲の設定が用意されているものがあります。ASP.NET 構成ファイルについては、MSDN ライブラリ オンラインの「ASP.NET アプリケーションと Web サービスをセキュリティ保護する」の中の「Machine.Config と Web.Config について」(https://go.microsoft.com/fwlink/?linkid=103450&clcid=0x411) を参照してください。
構成オプション
システム管理者は、SharePoint Server 展開内の次のどちらかの場所に ASP.NET Web パーツを展開できます。
Bin ディレクトリ Web アプリケーションのルート ディレクトリ内の bin フォルダーに格納します。
グローバル アセンブリ キャッシュ (GAC) 標準的なすべての Web パーツは GAC に自動的にインストールされます。GAC の場所は %windir%\assembly であり、ここには .NET Framework の共通言語ランタイムも配置されています。GAC に保存することにより、多数のアプリケーションで Web パーツを共有できます。
次の表に、それぞれの場所の利点と欠点について説明します。
展開場所 | 利点 | 欠点 |
---|---|---|
Bin ディレクトリ |
部分的に信頼できる場所。既定では、このディレクトリから実行されるコードには、低レベルのコード アクセス セキュリティ権限があります。Web パーツが複数のアプリケーションにアクセスしたり、許可された既定の権限を超えるレベルのアクセスを必要とする場合、管理者は、Web パーツに許可されている権限を明示的に昇格させて、正しく機能できるようにする必要があります。管理者は、必要なコード アクセス セキュリティ権限が既知の最小セットに限定されることから、Bin ディレクトリでアセンブリを実行することを好む傾向があります。 Bin ディレクトリは Web アプリケーションに固有なので、この方法はコードを 1 つの Web アプリケーション用に分離する目的にも使用できます。 |
Web パーツをどこででも実行できるようにするには、アセンブリを各サーバーの Bin ディレクトリに展開する必要があります。 |
GAC |
署名されたアセンブリを展開できるグローバルな場所。既定で、アセンブリは高い信頼性を付与されて動作します。アセンブリはグローバルにインストールされるため、どの Web アプリケーションからでも使用できます。 |
一般的に、GAC にインストールされたコードにはコード アクセス セキュリティの制限が適用されないため、多層防御セキュリティの利点は失われます。 また、GAC 内のアセンブリにプログラム データベース (.pdb) ファイルを展開することが難しい場合があります。 |
セキュリティ属性の設定
Bin ディレクトリに格納される ASP.NET Web パーツには、セキュリティ属性が追加されます。Web パーツの使用方法に応じて、これらのセキュリティ属性を設定するかどうかを選択できます。
Bin ディレクトリは部分的に信頼できる場所です。したがって、実行時に完全な信頼レベルのコード アクセス権限が、Web パーツに対して自動的に付与されることはありません。Web パーツに呼び出されるコードに対しては部分的に信頼できるレベルのアクセス権限のみが付与されるので、Web パーツ開発者が ASP.NET Web パーツに AllowPartiallyTrustedCallers 属性を設定する必要があります。
コンポーネントに AllowPartiallyTrustedCallers 属性を設定して "安全" を示すということは、開発者チームが安全な実装に関して責任を負うという意味です。
既定で、Bin ディレクトリのコード アクセス セキュリティの権限は非常に低く設定されます。Web パーツを慎重にテストして割り当てる権限の正確なレベルを決定し、Web パーツが環境のセキュリティ リスクとならないようにしてください。
次の 2 つの方法のどちらかで権限を昇格させることができます。
(推奨) 信頼ポリシー ファイルを作り、その中で Web.config ファイルを指定する方法。手順はより複雑ですが、Web パーツに正確な権限を設定できます。信頼ポリシー ファイルの詳細については、MSDN ライブラリ オンラインの「Microsoft Windows SharePoint Services およびコード アクセス セキュリティ」(https://go.microsoft.com/fwlink/?linkid=103436&clcid=0x411) を参照してください。
Bin ディレクトリ全体の信頼レベルを上げる方法。Web アプリケーションのルート ディレクトリ内の Web.config ファイルに記載されている
trust
要素を探します。trust
要素のlevel
属性の既定値は WSS_Minimal です。このレベルを WSS_Medium に変更できます。これは信頼ポリシー ファイルの作成より簡単ですが、必要以上に権限を付与することになるため安全性の面で劣ります。
安全なコントロールのリスト
SharePoint 製品とテクノロジは基本的に、SharePoint Server が実行されているシステム内に、信頼されていないユーザーが .aspx ページをアップロードおよび作成することもあり得ると想定して、設計されています。信頼されていないユーザーが .aspx ページ内にサーバー側コードを追加することを防ぐ必要がありますが、これらの信頼されていないユーザーが使用できる承認済みコントロールのリストが必要です。SharePoint Server では、これは、安全なコントロール リストによって提供されます。
安全なコントロール リストとは、サイト内の任意の .aspx ページを安全に呼び出すためにサーバー管理者が指定できる、SharePoint サイト専用のコントロールおよび Web パーツを示したリストです。このリストは、Web アプリケーション ルートの Web.config ファイルの一部です。
Web パーツの展開と構成
新しい Web パーツを展開する方法は、開発者が提供する完成済みのパッケージの種類によって異なります。開発者が Web パーツを 1 つのダイナミック リンク ライブラリ (DLL) ファイルとして提供した場合、DLL ファイルを Web アプリケーションの Bin フォルダーにコピーして手動で展開できます。開発者が Web パーツを収めた CAB ファイルを提供した場合は、Windows PowerShell を使用して Web パーツを展開できます。
Web パーツを手動で展開および構成するには
次に示す管理者の資格情報があることを確認します。
- SharePoint Server をホストするサーバーのローカル Administrators グループのメンバーである必要があります。
プロジェクトの Bin ディレクトリ内の <YourWebPartName>.dll アセンブリを、Web アプリケーションのルート ディレクトリの Bin ディレクトリにコピーします (たとえば、C:\inetpub\wwwroot\wss\VirtualDirectories\80\)。
アプリケーション ルート ディレクトリ内で Web.config ファイルを探し、編集するために開きます。
カスタム アセンブリの次の安全なコントロール エントリを Web.config ファイルに追加します。
<SafeControl Assembly="<YourWebPartName>, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="<YourWebPartNamespace>" TypeName="*" Safe="True" AllowRemoteDesigner="True"/>
ここで、
<YourWebPartName> は、展開している Web パーツの名前です。
<YourWebPartNamespace> は、Web パーツに関連付けられている名前空間です。
Web パーツを Bin フォルダーに手動でインストールする、または Web.config ファイルを手動で変更する代わりに、Windows PowerShell を使用して Web パーツ パッケージをインストールすることもできます。このプロセスを実行するために、開発者またはシステム管理者は、Web パーツに対応する CAB ソリューション パッケージを作成する必要があります。CAB パッケージの作成方法については、MSDN ライブラリ オンラインのドキュメント「ソリューションおよび Web パーツ パッケージ」(https://go.microsoft.com/fwlink/?linkid=95855&clcid=0x411)」を参照してください。CAB ファイルの作成後、次の手順を実行します。
Windows PowerShell を使用して Web パーツを展開するには
次の最小要件を満たしていることを確認します。Add-SPShellAdmin を参照してください。
[スタート] メニューの [すべてのプログラム] をクリックします。
[Microsoft SharePoint 2010 製品] をクリックします。
[SharePoint 2010 管理シェル] をクリックします。
Windows PowerShell コマンド プロンプト (PS C:\>) で、次のコマンドを入力して Enter キーを押します。
Install-SPWebPartPack -LiteralPath "<PathToCabFile>" -Name "<WebPartName>"
ここで、
<PathToCabFile> は、展開している CAB ファイルへの完全パスです。
<WebPartName> は、展開している Web パーツの名前です。
注意
前の手順は、Install-SPWebPartPack を使用して Web パーツを展開する一般的な方法を示しています。他のパラメーターを指定して、Web パーツを展開する方法を変更できます。詳細については、「Install-SPWebPartPack」を参照してください。
注意
コマンドライン管理タスクを実行するときには Windows PowerShell を使用することが推奨されています。Stsadm コマンドライン ツールは推奨されていませんが、製品の以前のバージョンとの互換性をサポートするために含まれています。
コンポーネントを Web パーツ ギャラリーに追加する
Web パーツごとに、その内容を XML 形式で記述した .webpart ファイルが必要です。これには、Web パーツ ギャラリーに Web パーツが表示されるようにする働きもあります。次の手順は、Web パーツを展開して安全なコントロール リストに登録した後に, .webpart ファイルを作成する最も簡単な方法です。
コンポーネントを Web パーツ ギャラリーに追加するには
次に示す管理者の資格情報があることを確認します。
- Farm Administrators グループのメンバーである必要があります。
.webpart ファイルを作成するには、http://<MyServer>/_layouts/newdwp.aspx に移動します。ここで <MyServer> は、SharePoint サイトを展開するサーバーの名前です。
<YourWebPartNamespace>.<YourWebPartName> の横のチェック ボックスをオンにします。
[ギャラリーに追加] をクリックして、<YourWebPartName> Web パーツをチーム サイト ギャラリーに追加します。
Web パーツ ギャラリーで、[編集] を選択して Web パーツを編集してから、[インポート] をクリックします。
.webpart ファイルの場所を指定するように求められます。ASP.NET Web パーツをエクスポートして、SharePoint サイトにインポートすることもできます。