SharePoint のホスト Web、アドイン Web、および SharePoint コンポーネントHost webs, add-in webs, and SharePoint components in SharePoint

SharePoint コンポーネントが含まれているアドインが Web サイトにインストールされると、サイト コンテンツ ページに一覧表示され、そこからアドインを起動できます。When an add-in that includes SharePoint components is installed on a website, it is listed on the Site Contents page from which it can be launched. Web サイトに追加する必要があるのはこの一覧だけであり、これがアドインの起動ポイントになります。ただし、カスタム アクションやアドイン パーツなど、他の特定のものを必要に応じて追加できます。That listing, which is the launch point of the add-in, is the only required addition to the website, although certain other things can optionally be added, such as a custom action or an add-in part. これらのオプションについては、「UI からアドインへのアクセス」を参照してください。For information about these options, see Accessing the add-in from the UI.

ホスト Web、アドイン Web、分離ドメインHost webs, add-in webs, and the isolated domain

これらの UI 要素以外の SharePoint アドイン コンポーネントやコンテンツ (リスト、コンテンツ タイプ、ワークフロー、ページなど) は、特別な分離ドメイン内の別の Web サイトに展開されます。Other than these UI elements, the SharePoint Add-in components and content, such as lists, content types, workflows, and pages, are deployed to a different website in a special isolated domain. この事実は、ユーザーにはほとんど知られていません。This fact is largely hidden from the user. アドインが展開される特別な Web サイトは、アドイン Web と呼ばれます。The special website to which the add-in is deployed is called an add-in web. アドインがインストールされる Web サイトは、ホスト Web と呼ばれます。The website to which the add-in is installed is called the host web. アドイン Web は独自の分離ドメインを使用しますが、ホスト Web と同じサイト コレクション内に存在しますAlthough the add-in web has its own isolated domain, it is in the same site collection as the host web. (このルールの 1 つの例外は、テナント スコープを使用してアドインがインストールされる場合です。(One exception to this rule is when the add-in is installed with tenant scope. このシナリオでは、アドイン Web は会社のアドイン カタログのサイト コレクション内に存在します)。In that scenario, the add-in web is in the site collection of the corporate add-in catalog.)

図 1 は 1 つのホスト Web に 2 つの SharePoint アドインがインストールされている状態を示しています。Figure 1 shows a host web with two SharePoint Add-ins installed. アドイン 1 はリモート コンポーネントを含んでいますが SharePoint コンポーネントは含んでいません。Add-in 1 has remote components, but no SharePoint components, so it has no add-in web. アドイン 2 はリモート コンポーネントは含んでいませんが、2 つの SharePoint リストと、ワークフローを含んでいます。Add-in 2 has no remote components, but it has two SharePoint lists and a workflow. これらは分離されたサブサイトに展開されています (1 つの SharePoint アドインが、リモート コンポーネントと、SharePoint がホストするコンポーネントの両方を含むこともあります。ただし、この図では両方を含むアドインは記載していません)。These have been deployed to an isolated subsite (a SharePoint Add-in can have both remote and SharePoint-hosted components, although neither add-in in this diagram has both).

図 1: プロバイダー向けのホスト型アドインと、SharePoint ホスト型アドインを持つホスト WebFigure 1: Host web with a provider-hosted add-in and a SharePoint-hosted add-in

ホスト Web、アプリ Web、およびそのコンポーネント

1 つのアドインを例に考えましょう。このアドインはホスト Web に展開できる単純な UI 要素の他に、SharePoint コンポーネントを含んでいるとします。アドインは、以下の URL でホスト Web サイトにインストールされます。For example, suppose that an add-in, with SharePoint components beyond just the UI elements that can be deployed to a host web, is installed on a host website at the following URL:

`https://www.fabrikam.com/sites/Marketing`

この SharePoint アドインは、新しく作成される以下のような URL の Web サイトに展開されます。The SharePoint Add-in will be deployed to a newly created website with a URL like the following:

`http://add-in-bdf2016ea7dacb.fabrikamadd-ins.com/sites/Marketing/Scheduler`

この URL は、次のような構造になっています。Note that this URL has the following structure:

`https://` _Add-in_Prefix_ `-` _Add-in_ID_ `.` _Add-in_Base_Domain_ `/` _Domain_Relative_URL_of_Host_Web_ `/` _Add-in_Name_

各プレースホルダーは次のように定義されます。The placeholders are defined as follows:

  • Add-in_Prefix は、サーバーの全体管理でファーム管理者が設定する任意の文字列です。既定値は「default」です。この例では管理者が「add-in」に変更しています。Add-in_Prefix is any string set by the farm administrator in Central Administration. The default is "default." In this example the administrator has changed this to "add-in."

  • Add-in_ID は、アドインがインストールされるときに内部的に生成される 16 進数値です。Add-in_ID is a hexadecimal number generated internally when the add-in is installed.

  • Add-in_Base_Domain は、サーバーの全体管理または SharePoint 管理シェルでファーム管理者が設定する任意の文字列です。Add-in_Base_Domain is any string set by the farm administrator in Central Administration or with SharePoint Management Shell. これを SharePoint Web アプリケーションのサブドメインに設定しないでください。アドインを分離するという目的が大きく損なわれることになります。This should not be set to a subdomain of the SharePoint web application or the purpose of add-in isolation is largely defeated. この例では管理者が「www.」を削除し、In this example, the administrator has removed the "www." 会社名に「add-ins」を追加しています。and added "add-ins" to the company name. そのため、fabrikamadd-ins.com がアドインのベース ドメインになっています。So fabrikamadd-ins.com is the add-in base domain.

  • Domain_Relative_URL_of_Host_Web は、親ホスト Web の相対 URL です。この例では sites/Marketing です。Domain_Relative_URL_of_Host_Web is the relative URL of the parent host web, in this case sites/Marketing.

  • Add-in_Name は、appmanifest.xml ファイルの App 要素の Name 属性の値です。Add-in_Name is the value of the Name attribute of the App element in the appmanifest.xml file.

SharePoint コンポーネントを、ホスト Web ではなくアドイン Web に展開する大きな理由として以下の 2 つがあります。どちらもセキュリティに関係します。There are two primary reasons why SharePoint components are deployed to add-in webs, rather than the host web. Both are related to security.

  • アドインのアクセス許可の強制: SharePoint アドイン用のモデル では、アドインは固有の ID とアクセス許可を持ち、このアクセス許可はアドインを実行するユーザーのアクセス許可とは必ずしも一致しません。このようなアドインのアクセス許可はアドインがインストールされるときに要求され、アドインをインストールする人が、アドインが要求するすべてのアクセス許可を持っている場合、その人によって付与されます (アドインをインストールするユーザーが、アドインが要求するアクセス許可すべてを持っていない場合、そのユーザーはアドインをインストールできません)。各アドインに固有のドメインを提供することにより、SharePoint はアドインが行う要求を確実に識別し、そのアドインのアクセス許可を検証することができます。アドインのアクセス許可の詳細については、「 アドインのアクセス許可」を参照してください。Enforcement of add-in permissions: In the model for SharePoint Add-ins, an add-in has its own identity and it has permissions that are not necessarily the same as the permissions of the user who is executing the add-in. These add-in permissions are requested when the add-in is installed and granted by the person who installs the add-in, as long as person has all the permissions that the add-in requests. (If the user who is installing the add-in does not have all the permissions that are requested by the add-in, the user cannot install the add-in.) By giving each add-in its own domain, SharePoint can reliably identify requests made by the add-in and verify the permissions of the add-in. For more information about add-in permissions, see Add-in permissions.

  • クロスドメイン スクリプティングのセキュリティ: 最新のブラウザーは JavaScript メソッド呼び出しについて "同一生成元ポリシー" をサポートしています。各 SharePoint アドインを個別のドメインに展開することにより、SharePoint はブラウザーの同一生成元ポリシーを活用して、SharePoint アドイン内の JavaScript が他のドメインの JavaScript を実行できないようにすることができます。エンドユーザーから見てアドインがインストールされたドメインも、他のドメインということになります。Cross-domain scripting security: Modern browsers support a "same origin policy" with regard to JavaScript method calls. By deploying each SharePoint Add-in to its own domain, SharePoint takes advantage of the browser's same origin policy to ensure that JavaScript in the SharePoint Add-in cannot execute any JavaScript from any other domain, including the domain in which, from the end-user's perspective, the add-in is installed.

    SharePoint には、このポリシーの制限を安全に迂回する手段もあります。SharePoint also provides a means of safely overcoming the limits of the policy. 特に、これは SharePoint アドインのリモート コンポーネントが、ホスト Web とアドイン Web の共通の親テナントにある任意の Web サイトからのデータを照会できるようにします。Among other things, this enables the remote components of a SharePoint Add-in to query data from any website in the common parent tenancy of the host and add-in webs. 詳細については、「クロスドメイン ライブラリを使用してアドインから SharePoint のデータにアクセスする」を参照してください。For more information, see Access SharePoint data from add-ins using the cross-domain library.

SharePoint アドインに含めることができる SharePoint コンポーネントの種類Types of SharePoint components that can be in a SharePoint Add-in

一般的に、SharePoint アドインには、次のリスト内のコンポーネントを 1 つ以上含めることができます。In general, a SharePoint Add-in can contain one or more of the components in the following list. 特定の例外を除き、これらのコンポーネントは、SharePoint ソリューション パッケージ (.wsp) ファイルに含まれる Web スコープのフィーチャーに展開する必要があります。With certain exceptions, these components must be deployed in Web-scoped Features that are inside a SharePoint solution package (.wsp) file.

注意

アスタリスク (*) の付いているコンポーネントについては、この記事で後述する「SharePoint コンポーネントの展開に関する注意事項」でさらに詳しく説明しています。The components that are marked with an asterisk (*) are discussed in more detail in the section Caveats for deploying SharePoint components later in this article.

  • フィーチャー (Web スコープのみ)Features (Web-scoped only)
  • カスタム アクション (ショートカット メニュー項目およびリボンのカスタマイズなど)*Custom actions (including shortcut menu items and ribbon customizations)*
  • リモート イベント レシーバー*Remote event receivers*
  • SharePoint に含まれる (つまり、カスタム Web パーツでない) Web パーツ (およびアドイン パーツ) を参照するマークアップ*Markup that references Web Parts, including add-in parts, that are included in SharePoint (but not custom Web Parts)*
  • SharePoint ページが使用するカスタム カスケード スタイル シート (CSS)Custom cascading style sheets (CSS) files for use by SharePoint pages
  • SharePoint ページが使用するカスタム JavaScript ファイルCustom JavaScript files for use by SharePoint pages
  • モジュール (ファイルのセット)Modules (sets of files)
  • ページPages
  • リスト テンプレートList templates
  • リストとライブラリのインスタンスList and library instances
  • カスタム リスト フォームCustom list forms
  • カスタム リスト ビューCustom list views
  • カスタム コンテンツ タイプCustom content types
  • フィールド (SharePoint に組み込まれたフィールドの種類)Fields (of field types that are built into SharePoint)
  • Microsoft Business Connectivity Services (BCS) モデル (Web スコープのみ)、このモデルに基づく外部コンテンツ タイプ、およびコンテンツ タイプが使用する外部リスト*Microsoft Business Connectivity Services (BCS) models (Web-scoped only), external content types based on the model, and external lists that use the content types*
  • ワークフロー*Workflows*
  • プロパティ バッグProperty bags
  • Web テンプレート (サイト定義ではない)*Web templates (but not site definitions)*

この他の種類の SharePoint コンポーネントは SharePoint アドインでは展開できません。No other kind of SharePoint component can be deployed in a SharePoint Add-in. SharePoint アドインに何を含めることができるのかについて、その制限の詳細は「SharePoint アドインと SharePoint ソリューションの比較」を参照してください。For more information about restrictions on what can be included in a SharePoint Add-in, see SharePoint Add-ins compared with SharePoint solutions.

SharePoint コンポーネントの展開に関する注意事項Caveats for deploying SharePoint components

アドインに含まれる特定の種類の SharePoint コンポーネントの展開に関する注意事項と詳細を以下に示します。The following are some caveats and details concerning the deployment of certain kinds of SharePoint components in an add-in:

  • カスタム アクション: カスタム アクションは、アドイン Web に追加するだけでなく、ホスト Web にも追加できます。カスタム アクションをアドイン Web に追加するには、他のコンポーネントをアドイン Web に追加するときと同じように, .wsp ファイルの中の Web スコープ フィーチャーの中にそれを含めます。カスタム アクションをホスト Web に追加するには、(外部ベースのアドインの場合でも) CustomAction マークアップを、アドイン パッケージ内にありながらいずれの .wsp ファイルにも含まれないフィーチャーの中に含めることができます。このような "厳密でない" フィーチャーのコンポーネントは、アドイン Web ではなく、ホスト Web に適用されます。このためこのような種類のフィーチャーはホスト Web フィーチャーと呼ばれます。Custom actions: In addition to adding custom actions to the add-in web, you can add them to the host web as well. To add the custom action to the add-in web, you include it in a Web-scoped Feature that is inside a .wsp file, just as you would include any other component you add to the add-in web. To add a custom action to the host web, you can include (even in an externally based add-in) CustomAction markup in a Feature that is in the add-in package but outside any .wsp file. Components in such a "loose" Feature apply to the host web, not the add-in web, so this type of Feature is called ahost web Feature.

  • Web パーツ: Web パーツの一種であるアドイン パーツは、アドインで展開することができます。アドイン パーツは、アドイン Web またはホスト Web のいずれかに配置できます。他の種類の Web パーツはいずれも、アドイン内で参照することができますが、アドインで展開することはできません。アドイン パーツがホスト Web に展開される場合、それはホスト Web フィーチャーに含まれることになります。Web Parts: One kind of Web Part, an add-in part, can be deployed in an add-in, and an add-in part can go to either the add-in web or the host web. All other types of Web Parts can be referenced in add-ins, but not deployed by them. If an add-in part is deployed to the host web, it should be included in a host web Feature.

  • リモート イベント レシーバー: これは SharePoint の新機能です。従来の SharePoint イベント レシーバーに似ていますが、コードがクラウドで実行される点が異なります。これは SharePoint ホスト型アドインでは使用できません。Remote event receivers: These are new in SharePoint. They resemble classic SharePoint event receivers except that the code runs in the cloud. These are not available in a SharePoint-hosted add-in.

  • ワークフロー: SharePoint のワークフローは、SharePoint の新機能である、Microsoft Azure がホストするワークフロー ランタイムを使用するようになりました。SharePoint がホストするワークフロー ランタイムを使用するようにコーディングされているワークフローは SharePoint アドインに含めることができません。宣言型ワークフロー、または新しいランタイムを使用するワークフローのみ許可されます。Workflows: Workflows in SharePoint use the Microsoft Azure-hosted workflow runtime that is new in SharePoint. Coded workflows that use the SharePoint-hosted workflow runtime cannot be included in a SharePoint Add-in. Only declarative workflows or workflows that use the newer runtime are allowed.

  • Microsoft Business Connectivity Services (BCS) モデル、外部コンテンツ タイプ、外部リスト: Business Data Connectivity (BDC) Service モデルでは通常、サイト コレクションよりも広いスコープが使用されます。Microsoft Business Connectivity Services (BCS) models, external content types, and external lists: Business Data Connectivity (BDC) service models typically have a scope that is wider than a site collection. ただし、BDC Service モデルがアドインに展開される場合、そのスコープはアドイン Web に限定されます。However, when a BDC service model is deployed in an add-in, its scope is limited to the add-in web. BDC Service モデルはアドインに組み込まれる際に、BDC Service 共有サービス ストアには格納されません。When a BDC service model is included in an add-in, it is not stored in the BDC service shared service store. 代わりに、アドイン Web にファイルとして格納されます。Instead, it is stored as a file in the add-in web.

  • Web テンプレート: ほとんどの場合、アドイン Web を使用して、アドイン Web 用に最適化された新しい組み込みサイト定義構成 APP#0 をインスタンス化します。Web Templates: In most cases, you will want the add-in web to instantiate the new built-in site definition configuration APP#0, which is optimized for add-in webs. (詳細については、「UI からアドインへのアクセス」を参照してください)。アドイン パッケージに WebTemplate 要素が含まれない場合、SharePoint は自動的に APP#0 を使用します。(For more information, see Accessing the add-in from the UI.) SharePoint automatically uses APP#0 when the add-in package does not include a WebTemplate element.

    アドイン Web 用にカスタムのサイトの種類を定義することもできます。これには 2 つの主な手順があります。You can also define a custom site type for the add-in web. There are two major steps to doing this:

    • カスタムの WebTemplate 要素 (Web テンプレート)、onet.xml ファイル、およびもしあれば他の関連ファイルを、アドインのアドイン Web フィーチャーに含めます。Include a custom WebTemplate Element (Web Template), an onet.xml file, and possibly other associated files, in the add-in web Feature for your add-in. 通常と同じように、テンプレートをアドイン パッケージ内の .wsp ファイルの Web スコープ フィーチャーに展開します。Deploy the web template in the Web-scoped Feature in a .wsp file inside the add-in package as usual.

    • Web テンプレート要素 (PropertiesDefinition コントロール (SharePoint アドイン マニフェスト)Properties 要素の子としてアドイン マニフェストに追加し、その Id 属性にアドイン Web フィーチャーの GUID と WebTemplate 要素 (Web テンプレート)Name 属性の値を設定します。Add a WebTemplate element (PropertiesDefinition complexType) (SharePoint Add-in Manifest) to the add-in manifest as a child of the Properties element, and set its Id attribute to the GUID of the add-in web Feature and the value of the Name attribute of the WebTemplate Element (Web Template). GUID はハイフネーションされ、中括弧{{}}で囲まれている必要があります。GUID とテンプレート名は「# 」文字で区切られています。Note that the GUID must be hyphenated and wrapped in braces "{}", and the GUID and template name are separated by the "#" character. 例を次に示します。The following is an example:

        <WebTemplate Id="{81dd4ae5-873b-4759-9838-4ad9c3dd2952}#NewSiteType" />
      

      注意

      アドイン マニフェスト用の新しい WebTemplate 要素は、フィーチャーに含めることができる WebTemplate 要素と同じマークアップではありません。The new WebTemplate element for add-in manifests is not the same markup as the WebTemplate element that can be included in Features. フィーチャーに含めることができる WebTemplate 要素はサイトの種類を定義しますが、アドイン マニフェスト用の WebTemplate 要素は単に使用するサイトの種類を識別するだけです。The WebTemplate element that can be included in Features defines a type of site, but the WebTemplate element for add-in manifests simply identifies what type of site to use. SharePoint アドインのアドイン マニフェストの詳細については、「アドイン パッケージの構造」を参照してください。For more information about the add-in manifest of a SharePoint Add-in, see Add-in package structure.

      注意事項

      アドイン マニフェスト内の WebTemplate 要素を使用して、任意の組み込みの SharePoint サイト定義構成をアドイン Web のサイトの種類として指定しないでください。Do not use the WebTemplate element in the add-in manifest to designate any of the built-in SharePoint site definition configurations as the add-in web's site type. アドイン Web に対しては、APP#0 以外の組み込みの SharePoint サイト定義構成の使用はサポートされていません。We do not support using any of the built-in site definition configurations, other than APP#0, for add-in webs.

      サイト定義構成と Web テンプレートの詳細については、「テンプレートおよび定義を使用する」を参照してください。For more information about site definition configurations and web templates, see Working with Site Templates and Definitions.

関連項目See also