Excel への動的データエクスポート – セキュリティは大丈夫?


みなさん、こんにちは


本日は、セキュリティに関係するトピックを紹介します。


Dynamics CRM 4.0 のよく使われる機能である、Excel への動的データエクスポートですが、この機能で
ユーザはエクスポートされた Excel シートを使用して、常に最新のデータを取得することが可能です。


この機能に関してよくある質問は、どのようにしてこのデータを保護するかということです。設置型 CRM の場合、
エクスポートしたExcel からデータを更新する場合には、たとえ CRM の Web サーバーを SSL で保護していても、
Excel からの通信は暗号化されません。なぜなら、パフォーマンスの観点より、SQL サーバーに直接アクセスする
ためです。この通信を暗号化するためには、IPSec 使用などを検討する必要があります。


※IFD (Internet Facing Deployment) を利用している場合には、この問題は検討する必要はありません。IFD の
場合には、直接 SQL サーバーへクエリすることはなく、CRM の Web サービスに対して、FetchXML を投げることで
データの取得を行うためです。よって HTTP 通信が SSL で保護されている環境では、問題がありません。


今回は CRM サイドおよび SQL サイドの、2 つの解決案を紹介します。


解決案 1: CRM – エクスポートした Excel で FetchXML を使用させる


IFD 環境と同様に、設置型でも FetchXML を利用した Web サービス経由のアクセスを強制できます。
※この機能を使用する場合 CRMTicket を利用するため、クライアントで、Outlook 用 CRM クライアントが
必須となりますので、ご注意ください。


以下の手順で、レジストリの設定を行ってください。


1. レジストリエディタを開いてください。


2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM を開いていただき、新規の DWORD 値を
  追加してください。


3. 作成した値の名前を UseWebQueryForLiveExport に変更していただき、値を 1 に設定してください。


4. IISRESET を実行してください。


以上の変更により、以後エクスポートされた動的 Excel シートは、FetchXML を使用するようになります。


また、エクセルへのエクスポートを制限したい場合には、セキュリティーロールより 「Excel にエクスポート」 権限を
調整してください。この権限は、事業部管理タブに存在します。


解決案 2: SQL – サーバーでプロトコル暗号を設定する


2 つ目の解決案は、 SQL サーバー側で実施が可能で、既にエクスポートされた Excel シートにも有効な方法です。
それは SQL サーバーの通信に SSL を利用するという方法です。以下の MSDN 記事を参考にしてください。


http://msdn.microsoft.com/ja-jp/library/ms189067(SQL.90).aspx


この案のメリットは、既にある Excel でも暗号化が可能で、Outlook 用 CRM クライアントを必要としないことです。


※ただし、実装時には SQL サービスの再起動が必要なため、ダウンタイムが発生します。
また、当然 SQL サーバーでのパフォーマンスに影響があります。


もし、自社内のネットワークが十分にセキュアな場合には、これらの検討は不要ですが、不安がある場合には
ご検討ください。


情報元: Dynamic Export to Excel feature – How to protect data over the wire
http://blogs.msdn.com/crm/archive/2009/01/26/dynamic-export-to-excel-feature-how-to-protect-data-over-the-wire.aspx

– Dynamics CRM サポート 中村 憲一郎

Comments (0)