次の方法で共有


SharePoint Server で Web パーツを構成および展開する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

SharePoint Server には、製品をインストールした後にユーザーがページに追加できる Web パーツのセットが含まれています。 組織がカスタムの Web パーツを必要とする場合、カスタムの ASP.NET Web パーツを開発者が作成し、管理者がインストールします。 このプロセスでは通常、完全に信頼できる環境に Web パーツを展開する前に、コードをテストして承認することが必要になります。 Visual Studio を使用する開発者は、プロジェクトを右クリックして [展開] を選択することにより、Web パーツを SharePoint Server に展開できます。 Web パーツの追加先は、開発者が Visual Studio でプロジェクトを作成したときに SharePoint サーバーに設定した信頼レベルによって決まります。

SharePoint Server では、Microsoft .NET Framework によって提供される構成管理設定の一部が使用されます。 これらの設定の一部は XML 構成ファイルに格納され、サーバー管理者が Web アプリケーションとその環境を管理するために使用する幅広い設定が提供されます。 ASP.NET 構成ファイルの詳細については、「ASP.NET アプリケーションと Web サービスのセキュリティ保護」で 説明されているMachine.Config と Web.Config を参照してください。

構成オプション

ASP.NET Web パーツは、SharePoint Server の bin ディレクトリまたはグローバル アセンブリ キャッシュ (GAC) に展開されます。

  • Bin ディレクトリ Web アプリケーションのルート ディレクトリの下の bin フォルダーに格納されます。

    この場所の利点:

    部分的に信頼された場所です。 既定では、このディレクトリから実行されるコードは低レベルのコード アクセス セキュリティのアクセス許可を持ちます。 Web パーツに複数のアプリケーション間でのアクセス許可が必要な場合や、既定のアクセス許可で可能なものよりも広いアクセス権が必要な場合、管理者は Web パーツに付与されるアクセス許可を明示的に拡張して、それが正しく機能できるようにする必要があります。 管理者は、必要なコード アクセス セキュリティのアクセス許可を既知の最小セットにして、アセンブリが Bin ディレクトリで実行されるようにすることもできます。

    この場所の欠点:

    Web パーツをどこでも実行できるようにするためには、MinRole フロントエンドとアプリケーション サーバーの役割を持つ各 SharePoint Server 2016 サーバーと、Web およびアプリケーションの役割がインストールされた各 SharePoint 2013 サーバーの Bin ディレクトリに、アセンブリを展開する必要があります。

  • グローバル アセンブリ キャッシュ (GAC) すべての標準 Web パーツは, .NET Framework の共通言語ランタイムが存在する GAC (%windir%\assembly) に自動的にインストールされます。 GAC に格納された Web パーツは、複数のアプリケーション間で共用できます。

    この場所の利点:

    署名されたアセンブリを展開し、既定で完全に信頼して実行できるグローバルな場所です。 アセンブリはグローバルにインストールされるので、任意の 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 パーツに正確なアクセス許可を設定することが可能になります。 信頼ポリシー ファイルについて詳しくは、「Microsoft Windows SharePoint Services およびコード アクセス セキュリティ」を参照してください。

  • Bin ディレクトリ全体の信頼レベルを上げます。 Web アプリケーションのルート ディレクトリの Web.config ファイルで、 trust 要素を見つけます。 trust要素のlevel属性の既定値はWSS_Minimal。 このレベルを WSS_Medium に変更できます。 このオプションはより簡単ですが、不必要な新しいアクセス許可が自動的に付与される可能性があり、信頼ポリシー ファイルを作成する方法よりもセキュリティーが低くなります。

    注意

    Web.config ファイル内の WSS_Minimal および WSS_Medium 項目は、大文字小文字を区別します。

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

安全なコントロール リストには、サーバー管理者がサイト内の任意の .aspx ページで安全に使用できるものとして指定できる、SharePoint サイトに固有のコントロールや Web パーツの名前が含まれています。 このリストは、Web アプリケーションのルートにある Web.config ファイルの一部です。

Web パーツの展開と構成

新しい Web パーツを展開する方法は、開発者が提供する完了したパッケージによって異なります。 開発者が Web パーツを単一のダイナミック リンク ライブラリ (DLL) ファイルとして提供する場合、DLL を Web アプリケーションの Bin フォルダにコピーすることによって手動で展開できます。 開発者が Web パーツを含む CAB ファイルを提供する場合、Microsoft PowerShell を使用して Web パーツを展開できます。

Web パーツを手動で展開して構成するには

  1. 次の管理者の資格情報を持っていることを確認します。

    • SharePoint Server をホストするサーバーでローカル Administrators グループのメンバーである必要があります。
  2. プロジェクトの Bin ディレクトリにある <YourWebPartName>.dll アセンブリを Web アプリケーションのルート ディレクトリの Bin ディレクトリにコピーします。 例: C:\inetpub\wwwroot\wss\VirtualDirectories\80。

  3. アプリケーションのルート ディレクトリの Web.config ファイルを見つけて、編集のために開きます。

  4. カスタム アセンブリの次のセーフ コントロール エントリを 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 ファイルを手動で変更したりする代わりに、PowerShell を使用して Web パーツ パッケージをインストールすることもできます。 このプロセスを行うためには、開発者またはシステム管理者が Web パーツ用 CAB ソリューション パッケージを作成する必要があります。 CAB ファイルを作成した後に、以下の手順に従って Web パーツを展開します。

Microsoft PowerShell を使用して、Web パーツを展開するには

  1. 次の最小要件を満たしていることを確認します。「Add-SPShellAdmin」を参照してください。

  2. SharePoint 管理シェル を開きます。

  3. 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 ファイルが必要です。 さらに, .webpart ファイルにより、Web パーツが Web パーツ ギャラリーに表示されるようになります。 次の手順は、Web パーツを展開して安全なコントロール リストに登録した後に webpart ファイルを作成する最も簡単な方法です。

Web パーツ ギャラリーにコンポーネントを追加するには

  1. 次の管理者の資格情報を持っていることを確認します。

    • Farm Administrators グループのメンバーである必要があります。
  2. .webpart ファイルを作成するには、http://<MyServer>/_layouts/newdwp.aspx にアクセスします。ここで、<MyServer> は SharePoint サイトを展開するサーバーの名前です。

  3. [ <YourWebPartNamespace>.< の横にあるチェック ボックスをオンにします。YourWebPartName>

  4. [ ギャラリーの設定] をクリックして、 YourWebPartName Web パーツをチーム サイト ギャラリーに追加します。

  5. Web パーツ ギャラリーで、 [編集] を選択して Web パーツを編集してから、 [インポート] をクリックします。

    .webpart ファイルの場所を指定するように求められます。 ASP.NET Web パーツをエクスポートしてから SharePoint サイトにインポートすることもできます。

関連項目

概念

SharePoint Server の Web パーツの管理

その他のリソース

方法: リモート サーバー上で SharePoint ソリューションを配置、発行、およびアップグレードする