Share via


方法 : フォーム テンプレートを評価および承認する

この記事の内容 :

  • フォーム テンプレートの評価について

  • フォーム テンプレートの評価時に考慮すべき要素

この記事では、Microsoft Office SharePoint Server 2007 ファームの管理者を対象に、管理者承認用フォーム テンプレートを評価して承認する方法を詳しく説明します。この記事の目的は、考慮する必要がある要素をすべて説明することではありません。環境によっては、この記事に記載されていない要素も考慮しなければならない場合があります。

フォーム テンプレートの評価について

Office InfoPath 2007 フォーム テンプレートを承認し、InfoPath Forms Services を使用するファームにアップロードする管理者は、承認を行うフォーム テンプレートで発生する可能性のある問題の識別方法を知っておく必要があります。フォーム テンプレートには、サーバーのリソースを使用する機能やファーム外のデータ ソースに接続する機能が含まれる (フォーム開発者によって追加されるマネージ コードなど) ので、フォーム テンプレートがファームのパフォーマンスとセキュリティにどのような影響を及ぼすかは慎重に評価しなければなりません。

Office InfoPath 2007 では、フォーム テンプレートの承認ワークフローに管理者がかかわります。フォーム テンプレートの承認の責任者である管理者が、慎重に承認を行わなければ、次のような結果が生じる可能性があります。

  • セキュリティが侵害され、ネットワーク侵入やデータ損失が発生する。

  • ファームのパフォーマンスに悪影響を与える。

  • フォーム テンプレートで障害が発生し、ユーザー データが失われる。

  • Office SharePoint Server ファーム全体で障害が発生する。

そのため、管理者承認用の各フォーム テンプレートは、ファームにアップロードする前に厳密に評価しなければなりません。フォーム テンプレートを正しく評価するには、フォーム テンプレートの構造とロジックを理解している必要があります。Office InfoPath 2007 フォーム テンプレートの詳細については、「InfoPath 2007 のヘルプと使い方」(https://go.microsoft.com/fwlink/?linkid=91423&clcid=0x411) を参照してください。

フォーム テンプレートの評価時に考慮すべき要素

フォーム テンプレートを評価する際に考慮すべき重要な要素には、次のようなものがあります。

  • マネージ コード フォーム テンプレートのコードを記述する際の適切なガイドラインおよびベスト プラクティスを規定します。マネージ コードが含まれるフォーム テンプレートの場合、セキュリティ レベルがドメインまたは完全信頼に設定されるため、セキュリティ上のリスクが発生する可能性があります。したがって、フォーム テンプレートに含まれるコードを確認して、フォームが機能するために必要なコードかどうかを判断する必要があります。コードを使用せずに必要な機能を実装できる場合は、フォーム テンプレートを再設計し、可能な限り制限の厳しいセキュリティ レベルを設定します。フォーム テンプレートのコードを評価するには、開発者レベルのスキルが求められる場合があります。

    次に、フォーム テンプレートのコードを評価する際に考慮が必要となる重要な要素をいくつか挙げます。

    • フォーム テンプレートに含まれる .NET アセンブリは、悪意のある改ざんを防ぐため、厳密な名前で署名される必要があります。詳細については、「方法 : 厳密な名前でアセンブリに署名する」(https://go.microsoft.com/fwlink/?linkid=91429&clcid=0x411) を参照してください。

    • データベースや Web サービスなどの外部のリソースにアクセスするための呼び出しは、慎重に検討する必要があります。外部リソースに対する要求の中には、ファーム環境で Kerberos 認証が展開されていなければ機能しないものがあります。また、他のドメインのコンピュータに保存されているデータが、そのデータを表示するアクセス許可を持たないユーザーによって要求され、共有される可能性もあります。

    • FxCop を使用して, .NET アセンブリのコード ポリシーを自動的に検証することを検討してください。FxCop は, .NET マネージ コード アセンブリが Microsoft .NET Framework の設計ガイドラインに従っているかどうかをチェックする Microsoft のコード分析ツールです。詳細については、「FxCop Team Page (英語)」(https://go.microsoft.com/fwlink/?linkid=91446&clcid=0x411) を参照してください。

  • パフォーマンスおよび容量計画 フォーム テンプレートの設計および使用方法は、ファームのパフォーマンスに大きな影響を与える可能性があります。そのため、それぞれの運用環境で計画を行う必要があります。フォームがファームへのデータ送信に使用される場合は、データを保存する十分なファーム容量があることを確認してください。容量が不足すると、ユーザー データが失われる場合があります。詳細については、「パフォーマンスと容量を計画する (Office SharePoint Server)」を参照してください。

  • フォーム テンプレートの確認 サーバーの全体管理 Web サイトでフォーム テンプレートをアップロードする前に、[フォーム テンプレートのアップロード] ページで [確認] ボタンをクリックしてください。フォーム テンプレートを手動で確認しない場合は、アップロード プロセス中に自動的に確認されます。ただし、問題がある場合、手動の確認ではメッセージとエラーの両方が返されますが、自動的な確認ではエラーのみが返されます。フォーム テンプレートの確認とアップロードの詳細については、「管理者承認済みフォーム テンプレートを展開する (Office SharePoint Server)」を参照してください。

  • 認証 NTLM 認証を使用する場合は、NTLM によって認証できるのがクライアント コンピュータのみであることに注意してください。フォームに呼び出された Web サービスがデータベースにデータを送信する場合など、認証トークンが第 3 のリソースに渡されるシナリオでは、そのリソースに対する NTLM 認証は失敗します。この場合は、認証トークンを渡すよう設計されている Kerberos 認証など、別の認証方法の使用を検討してください。外部データ ソースに接続する場合、フォーム テンプレートでは、可能な限り一元的に管理されたデータ接続の格納場所にあるデータ接続ファイルを使用するようお勧めします。データ接続の詳細については、この記事で後述される「データ接続」を参照してください。

  • セキュリティ レベル フォーム テンプレートのセキュリティ レベルが、そのフォームの目的に応じて適切に設定されていることを確認してください。たとえば、ドメイン認証を必要とするデータ接続を使用しないフォーム テンプレート、マネージ コードが含まれないフォーム テンプレート、あるいは他のドメインにあるリソースのデータを要求しないフォーム テンプレートには、完全信頼セキュリティ レベルを設定しないようにする必要があります。詳細については、「InfoPath フォームのセキュリティ レベル」(https://go.microsoft.com/fwlink/?linkid=91447&clcid=0x411) を参照してください。

  • パスワード パスワードなどの認証情報がフォーム テンプレートでハードコーディングされていないことを確認してください。認証を要求するフォーム テンプレートの機能は、フォームの入力時にユーザーによって認証されるか、認証済みのデータ接続を使用して認証される必要があります。加えて、パスワードをフォーム テンプレートのデータ ソースに格納したり、プレーン テキスト形式で送信したりしないようにする必要があります。

  • アクセス許可 フォーム テンプレートの作成者は、稼動フォーム テンプレートへのアクセスを制限する必要があります。つまり、フォーム ユーザーには読み取り専用のアクセス許可を、フォームのメンテナンス スタッフには書き込みアクセス権を割り当て、その他のユーザーには一切アクセス権を与えないようにします。ログオン スクリプトによってフォーム テンプレートがユーザーのコンピュータにインストールされている場合でも、そのユーザーが管理者として実行されていない限り, .xsn ファイルへのアクセスは制御できます。.xsn ファイルへのアクセスを制御するには、テンプレート ファイルへのユーザー アクセスを読み取り専用に設定します。

  • 機密性の高いデータ Office InfoPath 2007 のフォーム テンプレートは、プレーン テキスト形式の XML ドキュメントなので、ユーザーに公開したくないデータを含めないようにする必要があります。読み取りアクセス権を持つ悪意のあるユーザーは、認証ロジックを迂回し、メモ帳などのテキスト エディタを使用して Office InfoPath 2007 XML フォームの内容を読むことができます。

  • ビジネス ロジック Office InfoPath 2007 はフォーム テンプレートを使用して、すべてのフォーム ロジックを格納します。フォーム テンプレートに基づく任意のフォームを開けるように、ユーザーにはそのフォーム テンプレートへのアクセス権が与えられます。したがって、作成者が設定する制限を迂回すれば、ユーザーはフォーム テンプレートに変更を加えることができます。そのため、クライアント側で行われる認証や承認は、安全であるとはいえません。セキュリティを確保するには、サーバー側で演算やデータ検証を実行する必要があります。

    次の例は、サーバー側の演算および認証を使用するように、フォーム テンプレートを設計する方法を示しています。

    • XML ファイルには、機密データを格納しないでください。XML ファイルには機密データの代わりにキーを格納しておき、データベース接続または Web サービスを使用して残りのデータを取得するクエリを実行します。ユーザーが承認されていない場合は、空のデータセットが返されます。承認の状況はクライアント側で検出できるので、承認されていないユーザーがフォーム データを表示しようとしている場合には、わかりやすいエラー メッセージを表示することができます。

    • 提出時に、データを Web サービスに送信し、サーバー側で実行可能な検証をすべて行います。たとえば、100 ドルを超過する経費明細書は承認者を指定しなければ提出できないという条件が設定されている場合は、データを提出する前に、Web サービスにデータセットを処理させて、この条件が満たされていることを確認できます。

  • データ接続 フォーム テンプレート作成者は、可能な限り、データ接続ファイルを一元的に格納し、そのデータ接続設定を使用して、フォーム テンプレートから外部リソースに接続するようにしてください。一元的に管理されたデータ接続ファイルを使用すると、次のような利点があります。

    • 1 つのデータ接続ファイルを複数のフォームで使用できるので、フォームごとにデータ接続を新規作成する必要がありません。

    • 外部データ ソースの場所や接続設定が変更される場合、データ接続ファイルのみを更新すれば、各フォーム テンプレートを更新する必要はありません。

    • データ接続ファイルには、ユーザーがブラウザを使用してフォームに入力する際にサーバーで使用できる代替認証情報を格納できます。

    • 完全信頼セキュリティ レベルがない状態のブラウザを使用してフォームに入力する場合、そのフォームのすべてのデータ接続でデータ接続ファイルが使用されていれば、他のドメイン内のコンピュータに接続することができます。詳細については、「データ接続の概要」(https://go.microsoft.com/fwlink/?linkid=91449&clcid=0x411) を参照してください。

  • 外部への依存 フォーム テンプレートでは、データ接続、Web サービス、データベース、およびドキュメント ライブラリなどの外部リソースを使用できます。フォーム テンプレートを使用できるようにする前に、すべての外部リソースが有効であり、利用可能であることを確認してください。

  • Information Rights Management IRM (Information Rights Management) を使用して、ブラウザ対応フォーム テンプレートを保護することはできません。

関連項目

その他のリソース

フォーム テンプレートおよびフォームのセキュリティに関する注意事項
InfoPath フォームのセキュリティ レベル
InfoPath 2007 のヘルプと使い方
データ接続の概要
フォーム テンプレートで必要なセキュリティ レベルを設定する
Secure Coding Guidelines (英語)
FxCop Team Page (英語)
方法 : 厳密な名前でアセンブリに署名する