SharePoint Online における InfoPath ブラウザー フォームの制限事項について

こんにちは、SharePoint サポートの森 健吾 (kenmori) です。今回の投稿では、InfoPath Web ブラウザー フォームを SharePoint Online で使用する際における制限事項について、検討段階であらかじめ認識できるよう下記にまとめさせていただきます。

InfoPath ブラウザー フォームは On-Premise 環境を前提に開発が進められ、開発経験がなくてもフォーム テンプレートを直感的かつ効率的に作成できる点で多大な人気を集めた製品です。ただし、クラウドが前提になった場合、その技術的な特性上、インターネット経由のデータ アクセスや、テナント形式による共通のサーバー リソースの使用制限、ファーム レベルの設定変更不可など、環境面の相違により様々な制限があります。

今回の投稿では、一般的に SharePoint Online において、InfoPath ブラウザー フォームを採用するにあたり、あらかじめどのような点を注意すべきかについて記載します。

 

制限事項 1. 完全信頼フォームは使用できません。

SharePoint Online では、カスタムのファーム ソリューション (完全信頼ソリューション) を展開することができません。ファーム ソリューションを導入すれば、ファーム上のあらゆるデータにアクセスできるだけでなく、すべての種類のコードをサーバー上で実行することが可能です。

このような仕組みを許可した場合、複数の顧客がテナントと呼ばれる区画を使用するサーバーに共存するモデルにおいて、セキュリティを維持することは不可能です。

InfoPath フォームを完全信頼フォームとして発行した場合、内部的にはソリューション パッケージに変換され、ファームソリューションとして展開されます。この技術的な機構に起因し、SharePoint Online では管理者承認用フォーム テンプレートを使用できません。

上記画面のように InfoPath 側で管理者承認用フォーム テンプレートとして発行操作できても、SharePoint Online には、その発行によって生成されたフォーム テンプレートをアップロードできる場所がありません。 

制限事項 2. データ接続 (Web サービス接続 ) について

Web サービスに対するデータ接続については、現実的に匿名認証で公開された Web サービスに限定されます。

SharePoint Online からインターネット経由でデータアクセスを実施する場合、異なる場所のネットワークに接続することが前提となりますため、Web アプリケーションの認証方式として、匿名認証、フォーム認証、フェデレーション認証などが前提となります。

しかしながら、InfoPath フォームのデータ接続時の偽装は Windows 認証か SQL 認証しか対応しておりません。InfoPath はアプリとして公開されていませんので、OAuth を使用した一時アクセス許可を得ることもできません。結果的に、InfoPath ブラウザー フォームのデータ接続は SharePoint Online においては実質上匿名認証でホストされたサービスに対してしか使用できません。

また、制限事項 1. にも記載した通り、完全信頼フォームを使用できないため、Visual Studio Tools for Application (VSTA) で実装されたコード ビハインドから認証情報を付与してデータ接続することもできません。

タイトル : ユニバーサル データ接続 v2.0 リファレンスおよびスキーマ
アドレス : https://msdn.microsoft.com/ja-jp/library/office/ms772017(v=office.14).aspx

 

制限事項 3. セッション状態のサイズの上限

SharePoint Online 上で InfoPath ブラウザー フォーム上であまり大きなデータを扱うことはできません。

InfoPath ブラウザー フォームは、各ユーザー セッションごとにフォームに関連するすべてのデータ (入力データ、データ接続で取得したデータなど) をセッション状態の上に管理します。

セッション状態は、ユーザー (Cookie で識別) ごとに利用できるサーバー側のデータ領域です。SharePoint 製品ではステートサービスという構成によりデータベース上でセッション データを管理します。

タイトル : State Service を管理する (SharePoint Server 2010)
アドレス : https://technet.microsoft.com/ja-jp/library/ee704548(v=office.14).aspx

ASP.NET セッション状態 (SQL Server モード) に類似した実装ですが、同一のものではありません。

タイトル : ASP.NET セッション状態の概要
アドレス : https://msdn.microsoft.com/ja-jp/library/ms178581(v=vs.100).aspx

 

On-Premises では、InfoPath Forms Services の構成画面において、ユーザー セッションごとの最大サイズを調整することが可能です。しかし、SharePoint Online では、この値はファーム全体に影響する値ですので、変更することは不可能です。
(図. On-Premise - InfoPath Forms Services の構成における “ユーザーセッション” 設定項目)

 

具体的に、SharePoint Online 上で以下のようなフォームを作成する場合、セッション状態のサイズ上限を超えないか、予め十分な注意が必要となります。

・フォーム上で添付ファイルなどを扱う場合
・数千件以上のデータを外部データ接続する場合

タイトル : InfoPath Forms Services を構成する (SharePoint Server 2010)
アドレス : https://technet.microsoft.com/ja-jp/library/cc262263(v=office.14).aspx

 

制限事項 4. サンドボックスソリューション (VSTA コード付きフォーム ) のリソース使用制限について

新規フォーム発行について 2016.09.09 追加

VSTA コード付き フォームの新規発行は、2016 年 7 月末をもちまして提供終了となり、ご利用できなくなりました。
https://blogs.technet.microsoft.com/sharepoint_support/2016/08/04/news-about-sandbox-solution-sharepoint-online/

既存フォームについて
InfoPath ブラウザー フォームでは、VSTA のコードを埋め込むことが可能です。
VSTA コードを一行でも埋め込んだ場合、フォーム テンプレート全体がサンドボックス ソリューション上で動作するアプリケーションに変換されて動作します。

サンドボックス ソリューションの大きな制限としては、以下があります。

サンドボックスの主な制約事項・サーバーに対して使用できるリソースの制限があります。
・部分信頼 (制限されたコード アクセス セキュリティ下) で処理が動作します。

特にリソースの制限は、運用に移行後に発生した場合、深刻な状況となります。サンドボックス ソリューションのリソース使用率制限を超えた場合、最初はユーザー セッションが強制終了されて処理がエラーとなります。
ただし、これが蓄積して日ごとの閾値を超えた場合、翌日まで該当ソリューションを一切使用できません。これは、実務に大きな影響を与えることが想定されます。

タイトル : SharePoint 2010 のサンドボックス ソリューションのリソース使用率制限
アドレス : https://msdn.microsoft.com/ja-jp/library/office/gg615462(v=office.14).aspx

タイトル : SharePoint Online で「サイト コレクションがサーバー リソース クォータを超えました」または「リソースが不足しています」というメッセージが表示される
アドレス : https://support.microsoft.com/kb/2536051/ja

SharePoint Online は、自身が管理していないカスタム ソリューションがサーバーの著しいリソース使用を防ぐために、このように制限された機構でのみカスタム ソリューションをサーバーサイドで実行させることを許可しています。

SharePoint Online でサンドボックス ソリューションを使用することができますが、基本的には現在非推奨なカスタマイズ方法となります。リソース制限付の制約上で業務アプリケーションとして使用することはリスクが伴いますので、サンドボックス ソリューションや VSTA 付のフォーム テンプレートは、徐々に SharePoint アプリに切り替えていくことをお勧めします。

まとめ

InfoPath ブラウザー フォームは、サーバー サイドで自由度の高いソリューションを提供するというテクノロジーの特性上、SharePoint Onlineにおいては様々な制約が生じます。
事前に上記制約について認識し、要件定義等にお役立ていただけますと幸いです。

なお、クライアント フォームについては、今回紹介したような制限事項は該当しないものもあります。フォーム テンプレートを作りこんだ後に制限事項に気づいた際には、緊急の代替案としてもご検討ください。

クライアント フォームに切り替えるには、名前を付けて保存にて Filler フォーム テンプレートを選択して保存した後、再発行します。

今回の投稿は以上になります。