SharePoint アドイン アーキテクチャと開発環境に関する重要な要素
この記事では、記事「SharePoint アドイン」の情報を補足します。
SharePoint アドイン モデルには、SharePoint アドインのコンポーネントをホストするために次の方法が用意されています。
プロバイダーホスト: 少なくとも 1 つのリモート コンポーネントを含み、SharePoint コンポーネントも含むアドイン。 SharePoint 以外のコンポーネントは、ロジックによってハードウェアまたはクラウド アカウントに展開されるか、インストール プログラムと指示を使用して顧客のハードウェアまたはクラウド アカウントにデプロイされます。
SharePoint ホスト型: SharePoint コンポーネントとクライアント上で実行されるロジックのみが含まれているアドイン。
ホスティング オプションの詳細とそれらの選択方法のガイダンスについては、「SharePoint アドインを開発およびホスティングするためのパターンを選択する」を参照してください。
アドイン内のアドイン Web、ホスト Web、フィーチャー、および SharePoint コンポーネント
SharePoint アドインのインストール先の Web サイトをホスト Web サイトと呼びます。 ただし、SharePoint アドインの重要なパーツである SharePoint コンポーネントと外部コンポーネントは、どちらもホスト Web には展開されません。 外部パーツは外部のサーバーまたはクラウド アカウントに展開されます。 SharePoint コンポーネントは、専用のドメインが備わった特別な Web サイトに展開されます。 これは、アドイン Web と呼ばれています。
ホスト Web には、アドインの他のコンポーネントにアクセスする手段をユーザーに提供する少数の UI 要素のみを展開します。 このようなホスト Web 内の UI コンポーネントは、ホスト Web フィーチャーの一部として展開されます。これは、.wsp ファイル内ではなくアドイン パッケージで解放されるフィーチャーです。 アドイン Web に展開されるコンポーネントは常に .wsp ファイル内のフィーチャーです。 どちらの種類のフィーチャーも Web スコープを持つ必要があります。 その他のスコープは SharePoint アドインのフィーチャーでは使用できません。
一般に、SharePoint サーバーで実行されるカスタム コードを含まない SharePoint コンポーネントは、SharePoint アドインに含めることができます (また、アドイン Web に展開できます)。 ただし、コンポーネントを展開する方法と場所については、いくつかの例外と細かい相違点があります。 このような細かい相違点とホスト Web、分離されたアドイン Web、およびアドインのフィーチャーの詳細については、「SharePoint のホスト Web、アドイン Web、および SharePoint コンポーネント」を参照してください。
UI からアドインへのアクセス
SharePoint アドインが Web サイトにインストールされると、アドインはホスト Web の [サイト コンテンツ] ページに一覧表示されます。 ユーザーはこのページからアドインを起動できます。 このようにして開くと、アドインは全画面表示モードで実行されます。
その他にアドイン パーツで SharePoint アドインを表示する方法があります。このアドイン パーツは、ClientWebPart クラスで表される Web パーツの一種です。 この種の Web パーツは、実質的にはアドインのページをホストする IFrame のラッパーです。 最も単純なケースでは、Web パーツの重要なプロパティはページを指し示す URL のみです。
ただし、Web パーツにはユーザーがツール パーツで設定できるカスタム プロパティを含めることができます。 こうしたプロパティは、たとえばユーザーの郵便番号などのコンテキスト情報の設定に利用できます。 このようなアドイン パーツをアドインに含めるには、アドイン内にホスト Web フィーチャーを作成して、宣言型の Web パーツ マークアップを追加します。 その他の Web パーツと同様に、アドイン パーツは SharePoint UI に表示され、そこからユーザーは Web パーツを追加できます。 それ以上のバリエーションが必要な場合は、アドインで複数のアドイン パーツを展開できます。 たとえば、天気予報のアドインには、現在の天気を表示するアドイン パーツと、週間予報を表示する 2 つ目のアドイン パーツを含めることができます。 2 つのパーツのサイズと機能は異なっていても構いません。
注:
アドイン Web にアドイン パーツを展開することもできます。 これを実装するために、Web パーツのマークアップは、ホスト Web フィーチャーではなく、アドイン パッケージ内の .wsp ファイル内のフィーチャーの一部になります。
アドインは可能な範囲で SharePoint の外観に合わせることをお勧めしますが、これは必須ではなく、最善の選択であるとも限りません。 ユーザー エクスペリエンスのガイドラインの詳細については、「SharePoint アドインの UX 設計」を参照してください。
たとえば、app.master という名前の特殊なマスター ページがあります。 このページは、アドインのページで使用するために最適化されています。app.master ページは、SharePoint に含まれる新しいサイト定義の一部です。
アドインの外観が SharePoint との一貫性を保つようにするために使用できるツールがもう 1 つあります。それは、SharePoint に付属するクロム コントロールです。 このコントロールにより、アドイン ページ (外部でホストされるページを含む) に SharePoint ナビゲーション ヘッダー領域を追加できるようなります。 SharePoint アドインの UX デザインの詳細については、「SharePoint アドインの UX 設計」を参照してください。クロム コントロールの詳細については、「SharePoint アドインのクライアント クロム コントロールを使用する」を参照してください。
アドイン パッケージの構造
SharePoint アドイン パッケージは拡張子 ".app" を持つファイルで、Open Packaging Conventions (OPC) に準拠しています (ファイル名に追加拡張子として ".zip" を追加すると、エクスプローラーでファイルを開くことができます)。 パッケージには、アドインの特定のプロファイルの指定や SharePoint インストール インフラストラクチャへの指示を行うアドイン マニフェストが含まれています。 アドイン マニフェストとパッケージの詳細については、「SharePoint アドインのアプリ マニフェスト構造とパッケージについて調べる」を参照してください。
SharePoint アドインのアクセス許可、認証、および承認
SharePoint には、新しいアドインのアクセス許可とセキュリティのシステムが導入されています。
アドインのアクセス許可
SharePoint アドインには、ユーザーやグループと同じようにアクセス許可があります。 これによりアドインは、アドインを実行したユーザーのアクセス許可とは異なる一連のアクセス許可を保持できます。
アドイン マニフェスト ファイルで、アドインの実行に必要なアクセス許可を要求する必要があります。 アドインを追加するユーザーはこれらの要求を付与する必要があり、ユーザーはユーザーとして持っているアクセス許可のみを付与できます。 ユーザーと開発者のアクセス許可の管理を簡略化するには、要求されたすべてのアクセス許可に対して付与する必要があります。 (アドイン プリンシパルには常にアドイン Web に対する完全な制御権限があるため、ホスト Web 内の SharePoint リソースやアドイン Web の外部の他の場所にのみアクセス許可を要求する必要があります)。
アドインのアクセス許可の詳細については、「SharePoint でのアドインのアクセス許可」を参照してください。
委任と承認の選択
アドインを起動するユーザーと、リソースにアクセスする権限をアドインに付与するリソース所有者は、どちらも資格情報またはパスワードをアドインに指定する必要はありません。 その代わりに、SharePoint では、ユーザーおよびリソース所有者は、アドインが要求する特定のアクセス許可のみを付与できます。 これは、SharePoint でトランザクション プロトコル OAuth 2.0 を使用することで可能になります。 SharePoint の OAuth の詳細については、「SharePoint のアドインのコンテキスト トークン OAuth フロー」を参照してください。
クロスドメイン アクセス
データ アクセス ロジックに JavaScript を使用するリモート Web アプリケーションが含まれている SharePoint アドインは、アドインがインストールされているテナンシー内の SharePoint データへの承認されたアクセスのために JavaScript クロス ドメイン ライブラリを使用できます。 詳細については、「クロスドメイン ライブラリを使用してアドインから SharePoint のデータにアクセスする」を参照してください。
アドイン ライフサイクル
SharePoint アドインのライフサイクルには、発行、インストール、アップグレード、アンインストールが含まれます。 これらの詳細については、「SharePoint アドインの発行」、「SharePoint アドインの展開とインストール: 方法とオプション」、および「SharePoint アドインの更新プロセス」を参照してください。
テナントの管理者が複数の Web サイトに SharePoint アドインを一括インストールできるメカニズムもあります。 詳細については、「SharePoint アドインのテナントと展開スコープ」を参照してください。
SharePoint アドインのデータ ストレージ
SharePoint アドインは、構造化データ、ドキュメント、マルチメディア ファイルなど、あらゆる種類のデータを作成してアクセスできます。 これらのデータは、SharePoint 内または外部に保存できます。
構造化データ ストレージ オプション
SharePoint アドインでは、SharePoint の内部と外部のどちらでも、Microsoft プラットフォーム上にあるかどうかにかかわらず、ほとんどすべての種類の構造化データ ストレージを使用できます。 次に、SharePoint アドインの構造化データを格納できる場所の一部を示します。
- アドイン Web の SharePoint リスト
- SQL Azure
- Microsoft Business Connectivity Services (BCS) によって SharePoint に接続された外部データ ソース
- Microsoft 以外のクラウド サービス
- 独自のサーバー上のデータベース
ヒント
ほとんどの場合、ある時点で SharePoint アドインをアップグレードすることになります。 SharePoint アドインに、アドイン Web 上の SharePoint コンポーネントが含まれていると、アップグレード プロセスでアドイン Web の完全なコピーが作成されます。 このため、アドイン Web に巨大な SharePoint リストがあると、アップグレード プロセスに時間がかかるようになり、コンテンツ データベース サーバーのプロセッサに負担をかけることになります。 アドイン Web の SharePoint リストには "ビッグ データ" を配置しないようにする必要があります。
非構造化データ ストレージ オプション
SharePoint アドインによって生成または使用されるドキュメント、画像、ビデオ、オーディオ ファイル、およびその他の種類の非構造化データは、SharePoint 内または外部に格納できます。 ドキュメント ライブラリはドキュメントに適しており、SharePoint 検索を使用して検索できます。 サイト アセット ライブラリは、多くの場合、マルチメディア ファイルに適しています。
その他のオプションには、Microsoft Azure アカウントまたは独自のサーバー上の BLOB ストレージがあります。 Microsoft 以外のプラットフォームまたはクラウド サービスにファイルを格納できる場合もあります。
アドインの設定とその他のメタデータ ストレージ オプション
ユーザー設定や位置情報などの SharePoint アドインのメタデータは、複数の場所に格納できます。 非表示の SharePoint リストが適切な選択になることもあります。 また、アドイン Web のプロパティ バッグを使用することもできます。 プロバイダー向けのホスト型アドインの場合は、Azure のテーブル ストレージを使用することも 1 つの選択肢になります。
セキュリティで保護されたデータ アクセスのオプション
当然ながら、セキュリティで保護されたデータ アクセスのオプションは、ストレージの選択によって異なります。 データ アクセスと検索については、他のいくつかの記事で詳しく説明されています。 詳細については、「SharePoint アドインのセキュリティで保護されたデータ アクセスとクライアント オブジェクト モデル」を参照してください。
アドインを管理する
サイト コレクションの管理者およびテナントの管理者は、アドインを監視してアドインに割り当てられるリソースを変更できます。 さらに、アドイン ストアの Microsoft 担当者は、アドインにフラグを設定して無効にすることができます。
アドインを管理に関する詳細については、TechNet の「SharePoint 2013 用アプリをインストールおよび管理する」を参照してください。
アドインを監視する
SharePoint には、アドインの稼働状況の監視機能があります。この情報は、Web サイト所有者、テナント管理者、ファーム管理者が UI で利用できるようになっています。 監視システムのほとんどのドキュメントは TechNet に掲載されています (たとえば、「SharePoint Server 2013 の SharePoint 用アプリを監視する」など)。このセクションでは販売するアドインの監視方法の概要について簡単に説明します。
一部の種類のデータはアプリごとに報告され、その他の種類はアプリ インスタンスごとに報告されます。 監視フレームワークが報告する主な項目には次のものがあります。
- アドインのインストール回数 (新しいインスタンスの作成数) などのアドインの使用状況。
- アドイン インスタンスごとのサーバー リソース使用量。
- アドイン インスタンスごとのインストール、アップグレード、実行時のエラー。
- 緑色、黄色、赤色を使用した、アドイン インスタンスごとの全体的な稼働状況の指標。
アドインに Azure Web サイト コンポーネントが含まれている場合、監視フレームワークはエラー データについて 1 時間ごとに Azure をポーリングして、SharePoint UI に重大なエラーとストレージ クォータ データを表示します。 Azure SQL データベースのエラーは報告されません。
管理者は、監視フレームワークから提供される情報によってアドイン購入予算の支出が賢く行われているか、より多くのリソースをアドインに展開する必要があるか、正常に動作していないアドインを無効にする必要があるかを判断できます。
アドインの依存関係を登録する
SharePoint アドインが、使用できない SharePoint 機能に依存しており、アドイン Web で使用できない場合、正常に動作せず、顧客に苦情が表示されます。 アドインの依存関係をアドイン マニフェストに登録することによって、必須のサービスとフィーチャーが利用できない場所にアドインがインストールされるのを防ぐことができます。 SharePoint アドインのインストール インフラストラクチャでは、これらの前提条件がチェックされ、いずれかのアドインが使用できない場合はアドインのインストールがブロックされます。
Excel Services、Access Services、Visio Services などのサービスに関しては、そのサービスがインストールされていて、ライセンスされているかどうかが確認されます。
タスク リストなどのフィーチャーに関しては、インフラストラクチャによってフィーチャーが展開されているかどうかと、次のいずれかが確認されます。
- ファーム、WebApplication、またはサイト (サイト コレクション) スコープでアクティブ化
または
- アドインのインストール時に作成されるアドイン Web 上で、Web スコープでアクティブ化可能になっている。
注:
このようなフィーチャーは、アドイン Web の作成時に、アドイン インストール インフラストラクチャによってアドイン Web 上で自動的にアクティブ化されます。
以下のセクションで、必須コンポーネントの登録に必要な詳細について説明します。
アクセス許可要求によって依存関係を暗黙的に登録する
アドインがアドイン Web の外部にある SharePoint コンポーネントにアクセスする必要がある場合は、アドイン マニフェストの AppPermissionRequests セクションでこれらのリソースのアクセス許可を要求する必要があります。 これらのアクセス許可要求は前提条件の登録としても機能します。これは、アドインがアドインが特定の SharePoint 機能を使用できるようにする必要があるとアドインが要求するアクセス許可から SharePoint が推論するためです。 多くの場合、SharePoint では、アドインに必要なすべての機能と、このトピックの残りのセクションは必要ありません。 ただし、冗長な依存関係の登録は有害ではありません。
AppPrerequisites によって依存関係を明示的に登録する
アドインの依存関係がアクセス許可要求から推測できない場合は、アドイン マニフェストの AppPrerequisite 要素で各依存関係を登録します。 この要素には、Type、ID、および (オプションの) MinimumVersion という 3 つの属性があります。
Type に指定可能な前提条件の値は、Feature
、Capablility
、および AutoProvisioning
の 3 つです。 フィーチャー前提条件は、アドイン Web またはアドイン Web を含むより広いスコープで展開およびアクティブ化する必要がある SharePoint フィーチャーです。 機能は、アドイン Web で利用できるようにする必要がある関連フィーチャーとサービスのセットです (AutoProvisioning
については次のセクションで説明します)。
オプションの MinimumVersion には、アドインに必要なフィーチャーまたは機能の最小バージョンを指定します。 属性値は n.n.n.n という形式です。たとえば 15.0.0.0
、 です。
ID では、どのフィーチャーまたは機能が必要になるかを指定します。 Type が Feature
の場合、ID は、かっこで囲まれたハイフン付きのフィーチャーの GUID になります (例: {151D22D9-95A8-4904-A0A3-22E4DB85D1E0}
)。 Type が Capability
の場合、ID は、機能の GUID になります。 各機能は、次のリストに示します。 機能の GUID を調べるには、「AppPrerequisite 要素 (AppPrerequisiteCollection complexType) (SharePoint アドイン マニフェスト)」を参照してください。
- Access Services 2010
- Access Services
- Managed Metadata Web Service
- PowerPoint Services
- Secure Store Services
- Machine Translation Service
- ユーザー プロファイル サービス
- Visio Graphics Service
- Work Management Service
- Duet
- ワークフロー
- 検索
- EDU
次に示すのは、ワークフロー機能を登録する生の AppPrerequisites マークアップの例です。 Visual Studio を使用している場合は、デザイナー ツールでアドイン マニフェストを編集します。
<AppPrerequisites>
<AppPrerequisite Type="Capability" ID="{CDD8F991-B459-4512-8048-03D5A03FF27E}" MinimumVersion="15.0.0.0" />
</ AppPrerequisites>