SharePoint アドイン モデルでのサイト プロビジョニング

新しい SharePoint アドイン モデルで サイト コレクションとサブ サイトを作成する方法は、完全信頼コードの場合とは異なります。 一般的な完全信頼コード (FTC)/ ファーム ソリューション シナリオでは、サイト定義と Web テンプレートを使用してサイト コレクションとサブサイトを作成し、その後宣言型コードを使用してサイトを構成し、カスタマイズを適用します。 このモデルで一般的に宣言型コードを使用してサイト列、コンテンツ タイプは、XML で定義されたリストを作成し、その後 SharePoint の機能フレームワーク要素を使用してそれらをパッケージ化および展開します。

SharePoint アドイン モデル シナリオでは、SharePoint クライアント側オブジェクト モデル (CSOM) を使用してサイト コレクションとサブサイトを作成および構成できます。 このパターンは、一般的に リモート プロビジョニング パターン と呼ばれます。

大まかなリモート プロビジョニング パターンは、次のようになります。

1) リモート タイマー ジョブは、2) すぐに使用できるサイトに基づいた初期プロビジョニングに向けられています。通常は、チーム サイトまたは発行サイトです。アセットは、CSOM/REST を使用してプロビジョニング エンジンからアップロードされます。3) プロジェクト サイト、組織サイト、またはワークグループ サイトのいずれを作成するかについてのユーザーの選択に基づいた、すぐに使用できるサイトのトップに必要な変更 (構成など) を適用します。これは特殊な部分ですが、OOB サイトが起点になるため、このサイトはベース ラインとして常に最新の改良が加えられています。

基本ガイドライン

サイト コレクションとサブサイトの作成については、大まかに次のような基本ガイドラインが提供されています。

  • SharePoint に付属している標準のサイト テンプレートに基づいてサイト コレクションとサブ サイトのプロビジョニングを行います。
    • SharePoint CSOM を使用してサイト コレクションとサブ サイトを作成します。
  • 標準のサイト コレクションとサブ サイトにカスタマイズと設定を適用し、要件を満たします。
    • SharePoint CSOM を使用してカスタマイズと設定を適用します。
  • サイト コレクションとサブ サイトを作成するとき、機能フレームワーク要素を使用しないでください。
    • このガイドラインの唯一の例外は、アドイン Web に対する宣言型 XML ベースのプロビジョニングを、SharePoint ホスト型 SharePoint アドインで使用している場合です。 これは、SharePoint ホスト型 SharePoint アドインで CSOM を利用できないためです。

サイト コレクションとサブ サイトの作成に関する課題

Web ブラウザーを使用して作成する場合とコードを使用して作成する場合

Web ブラウザーを使用した場合とコードを使用した場合ではサイト コレクションとサブ サイトの作成方法が異なることを、理解しておくことが重要です。 このリストでは、さまざまなオプションについて説明しています。

  • Web ブラウザーを使用して作成する
    • このオプションでは、ユーザーは Web ブラウザーを使用して SharePoint サイトにアクセスし、管理ページを使用して、サイト コレクションとサブ サイトを作成します。
    • 通常、Web ブラウザーを使用してサイト コレクションとサブ サイトを手動で作成するのは、他のサイト コレクションやサブサイトが含まれるように拡張する計画のない単一の SharePoint サイトを試作または変更するときです。
  • コードを使用して作成する場合
    • このオプションでは、SharePoint CSOM コードを実行してサイト コレクションとサブ サイトを作成します。
    • この記事の後半では、SharePoint CSOM のコードの実行に使用できるいくつかのアプローチについて説明します。

Web ブラウザーを使用して作成する場合は、次の点を考慮してください。

  • Web ブラウザーを使用したサイト コレクションと サブ サイトの作成は通常、複雑で時間のかかるプロセスです。
    • これらの要因により、Web ブラウザーを使用したサイト コレクションとサブ サイトの作成ではエラーが発生する傾向があります。
  • Web ブラウザーを使用して作成されたサイト コレクションとサブ サイト (およびそれらに含まれるコンポーネント) を反復可能な方法で再作成することはできません。
    • これにより、開発からテスト、本番へと移行しながら、サイト コレクションとサブ サイトを異なる環境に迅速かつ一貫して展開するのは困難になります。

コードを使用して作成する場合は、次の点を考慮してください。

  • コードを使用してサイト コレクションとサブ サイトを作成する場合、通常、カスタム ユーティリティ ライブラリを使用して SharePoint CSOM コードを実行します。
    • これらのライブラリは、OfficeDev PnP GitHub リポジトリの多くのプロジェクトで利用できます。 それらは記事のあらゆる場所および巻末で参照されています。
    • これらの要因により、コードを使用したサイト コレクションとサブ サイトの作成は成功する傾向があります。
  • コードを使用して作成されたサイト コレクションとサブ サイトは、粒度の細かい方法で容易かつ一貫してレプリケートできます。
    • 開発からテスト、本番へと移行しながら、サイト コレクションとサブ サイトを異なる環境に容易に展開して参照できます。

すばやく実行する

エンド ユーザーは、自分たちの新しい SharePoint サイトのプロビジョニングが完了するまで数時間待機する必要があることを受け入れられません。

一貫して完璧に実行する

サイト コレクションとサブ サイト、およびサイト列、コンテンツ タイプ、リスト、マスター ページ、JavaScript ファイル、画像などを含む様々なコンポーネントは、最も低いレベルで情報アーキテクチャを定義する基礎となります。それらは完璧でなければなりません

不適切なサイト コレクションとサブ サイトのプロビジョニングは、それらがプロビジョニングされた SharePoint サイト内の基幹業務アプリケーション全体、また、SharePoint サイトの他の部分や、SharePoint サービスにアクセスする他の基幹業務アプリケーションに影響を与える可能性があります。

例:社内でプロジェクトの管理に使用される SharePoint サイトがある場合、それらすべてに共通のリスト スキームを作成する可能性が高くなります。 これには、サイト列とコンテンツ タイプを作成する必要があります。 SharePoint の検索ページからこれらのサイト内の情報を検索するときは、コンテンツ タイプまたはタグ (サイト列) で結果をフィルターします。 サイト列とコンテンツ タイプがすべてのプロジェクト サイト間で完全に一貫していない場合、正確な検索結果は得られません。

この例は、コンテンツ検索 Web パーツ、SharePoint アドイン、モバイル アプリ、および SharePoint サイト内の情報にアクセスするその他のシステムにも当てはめることができます。

サイト コレクションとサブ サイトを作成するオプション

新しい SharePoint アドイン モデルで サイト コレクションとサブ サイトを作成するには、いくつかのオプションがあります。 これらのオプションはすべて、上記のコードを使用して作成する方法に該当します。

  • サイトの作成リンクを上書きする
  • サブ サイトの作成リンクを上書きする
  • プロバイダー ホスト型 SharePoint アドインを使用する
  • .NET/Java/Objective-C アプリケーションまたは PowerShell スクリプトを使用する

このパターンでは、サイト コレクションを作成するリンクは、プロバイダー ホスト型 SharePoint アドインを示すリンクで上書きされます。 プロバイダー ホスト型 SharePoint アドインで実行される CSOM コードは、サイト作成プロセスの一部としてリモート プロビジョニング パターンを使用して実行されます。

  • このパターンは、サイト コレクションの作成を対象とした場合にのみ使用され、サブ サイトの作成には使用できません。
  • 上書き URL は、SharePoint 管理センターで構成されます。 この URL はプロバイダー ホスト型 SharePoint アドインを示します。
  • プロバイダー ホスト型 SharePoint アドインは、CSOM API を使用してサイト コレクションを作成します。
    • また、プロビジョニング プロセス中に、サイトの他の側面を構成するため、CSOM/REST API を使用することもできます。
  • この方法は、Office 365 のテナントとオンプレミスの SharePoint で使用できます。
  • SharePoint サイト コレクションの作成と構成において、非常に高い柔軟性が得られます。
  • 短期および長期にわたって、容易かつ安価に実装および維持できます。

構成

サイトの作成リンクを上書きするには、SharePoint 管理センターの設定ページを開きます (以下を参照)。

[設定] メニュー オプションが強調表示されている [SharePoint 管理センター] メニュー。

次に、この URL チェック ボックスで [フォームの使用] をオンにし、サイト作成機能を実装するプロバイダー ホスト型 SharePoint アドインへの URL を入力します(以下を参照)。

[OK キャンセル] ダイアログ ボックス (Web ページからのメッセージ) というタイトルの [Web ページからのメッセージ] というタイトルで、ユーザーがサイトを作成する場所を変更すると、他のサイトにアクセスできるカスタム スクリプトの実行が許可される場合があります (詳細については、「これを防ぐには、次の SharePoint Online 管理シェル コマンドを実行します。Set-SPOsite siteURL <> -DenyAddAndCustomizePages 1 ユーザーがサイトを作成する場所を変更しますか?」を参照してくださいhttp://go.microsoft.com/fwlink/?LinkId=164264).。

SharePoint によってこの方法と関連付られたセキュリティ上の影響についての警告が表示され (下のダイアログ) 、このタイプの機能を無効にするオプションが提供されます。

このページでは、「次の URL のフォームを使用する」というタイトルが付けられたチェック ボックスを矢印で指しています。チェック ボックスはオフになっています。このページにある、その他のテキストとコントロールは次のとおりです。定義された場所に新しいチーム サイトを作成するためのショートカットを提供します。[リンクを非表示にする] ラジオ ボタンはオフになっていて、[リンクを表示する] ラジオボタンはオンになっています。[サイトの分類] フィールドは、[ユーザーに表示しない] になっています。[代理の連絡先] フィールドは、[不要] になっています。

適切な場合

このオプションは、カスタム テンプレートを基にして SharePoint サイト コレクションを作成するセルフサービス機能を、ユーザーに提供する必要がある場合に適しています。

はじめに

次の記事では、サイトの作成リンク パターンの上書きについて説明し、開始するためのコード サンプルを提供します。

このパターンでは、サブ サイト作成リンクは、プロバイダー ホスト型 SharePoint アドインを示すリンクに上書きされます。 プロバイダー ホスト型 SharePoint アドインで実行される CSOM コードは、サイト作成プロセスの一部としてリモート プロビジョニング パターンを使用して実行されます。

  • このパターンは、サブ サイトの作成を対象とした場合にのみ使用され、サイト コレクションの作成には使用できません。
  • 上書き URL は、JavaScript を使用してリンクを変更するカスタム アクションで構成されます。 この URL はプロバイダー ホスト型 SharePoint アドインを示します。
  • プロバイダー ホスト型 SharePoint アドインには、CSOM API を使用してサブ サイトを作成します。
    • また、プロビジョニング プロセス中に、サイトの他の側面を構成するため、CSOM/REST API を使用することもできます。
  • この方法は、Office 365 のテナントとオンプレミスの SharePoint で使用できます。
  • SharePoint サイトの作成と構成において、非常に高い柔軟性が得られます。
  • 短期および長期にわたって、容易かつ安価に実装および維持できます。

適切な場合

このオプションは、カスタム テンプレートを基にして SharePoint サブ サイトを作成するセルフサービス機能を、ユーザーに提供する必要がある場合に適しています。

はじめに

次の記事では、サブ サイトの作成リンク パターンの上書きについて説明し、開始するためのコード サンプルを提供します。

  • Provisioning.Cloud.Sync (O365 PnP サンプル)
    • このソリューションは、実際のサンド ボックス ソリューションや stp ファイルを使用せずにサイト テンプレートのモデルを導入するための、同期サイト コレクションまたはサブ サイト作成エクスペリエンスを提供するモデルを示します。
  • Provisioning.SubSiteCreationApp (O365 PnP サンプル)
    • このソリューションは、リモート プロビジョニング パターンを使用し、可能な限り柔軟なサブ サイト テンプレート システムを提供します。 また、付属のビデオも含まれています。

プロバイダー ホスト型 SharePoint アドインを使用する

このパターンでは、プロバイダー ホスト型 SharePoint アドインで実行される CSOM コードは、サイト作成プロセスの一部としてリモート プロビジョニング パターンを使用して実行されます。

  • このパターンは、サイト コレクションとサブ サイトの作成を対象とした場合に使用できます
  • SharePoint ホスト型アドインに、SharePoint 環境へのフル コントロール アクセス許可を与える必要があります。
    • このパターンではフル コントロール アクセス許可を必要とするため、Microsoft Marketplace で使用することはできません。
  • プロバイダー ホスト型 SharePoint アドインは、CSOM API を使用してサイト コレクションとサブ サイトを作成します。
    • また、プロビジョニング プロセス中に、サイトの他の側面を構成するため、CSOM/REST API を使用することもできます。
  • この方法は、Office 365 のテナントとオンプレミスの SharePoint で使用できます。
  • SharePoint サイトの作成と構成において、非常に高い柔軟性が得られます。
  • 短期および長期にわたって、容易かつ安価に実装および維持できます。

適切な場合

このオプションは、カスタム テンプレートを基にした SharePoint サイト コレクションおよびサブ サイトを作成できるセルフサービス機能を、ユーザーに提供する必要がある場合に適しています。 ユーザーがアクセスできるように、プロバイダーホスト型アプリケーションへのリンクをユーザーに提供する必要があることに注意してください。

.NET/Java/Objective-C アプリケーションまたは PowerShell スクリプトを使用する

このパターンでは、CSOM コードは .NET/Objective-C/iOS アプリケーションまたは PowerShell スクリプトを使用して実行されます。 また、このパターンには、Azure Web ジョブなどのリモート タイマー ジョブを使用した場合も含まれます。

  • このパターンは、サイト コレクションとサブ サイトの作成を対象とした場合に使用できます。
  • SharePoint アドインに、SharePoint 環境へのフル コントロール アクセス許可を与える必要があります。
  • 作成する SharePoint アドインのタイプや、SharePoint のセキュリティ設定によっては認証が困難となる場合があります。
  • プロバイダー ホスト型 SharePoint アドインは、CSOM API を使用してサイト コレクションとサブ サイトを作成します。
    • また、プロビジョニング プロセス中に、サイトの他の側面を構成するため、CSOM/REST API を使用することもできます。
  • この方法は、Office 365 のテナントとオンプレミスの SharePoint で使用できます。
  • SharePoint サイトの作成と構成において、非常に高い柔軟性が得られます。
  • 短期および長期にわたって、容易かつ安価に実装および維持できます。

適切な場合

このオプションは、Dev-Ops のシナリオに適しています。 Dev-Ops プロセスで動作するよう特別に作られたカスタム アプリケーションやスクリプトを作成できます。 このオプションは、ユーザーの介入なしに実行する SharePoint のアドインとスクリプトを作成できるため、最高レベルの自動化を提供します。

PnP サンプル

適用対象

  • Office 365 マルチテナント (MT)
  • Office 365 専用 (D) 一部
  • SharePoint 2013 オンプレミス - 一部

専用およびオンプレミスの場合のパターンは SharePoint アドイン モデル手法と同じですが、使用可能なテクノロジは異なる可能性があります。