Excel Services のデータ ソースと外部接続を計画する

 

適用先: Excel Services (SharePoint 2010), SharePoint Server 2010

トピックの最終更新日: 2011-10-18

Excel Services アプリケーションに読み込まれたブックで外部データを最新の情報に更新できるように Microsoft SharePoint 2010 製品を構成するには、SharePoint Server 2010 と Excel Services アプリケーションとの依存関係を理解する必要があります。

ここでは、以下の SharePoint Server 2010 アプリケーション サーバー コンポーネントを構成するのに役立つガイダンスを示します。

  • Excel Services

  • Secure Store Service

この記事の内容

  • 接続と Excel ブック

  • データ プロバイダー

  • 外部データに対する認証

  • データ接続ライブラリとマネージ接続

  • Excel Services のセキュリティと外部データ

接続と Excel ブック

外部データを使用する Excel ブックには必ず、データ ソースへの接続が含まれています。接続は、外部データ ソースとの通信を確立してデータを読み込むために必要なすべての要素によって構成されます。その内容は次のとおりです。

  • 接続文字列 (接続先のサーバーと接続方法を指定する文字列)

  • クエリ (取得するデータを指定する文字列)

  • その他データ取得に必要な詳細情報

埋め込み接続とリンク接続

Excel ブックに含まれる接続には、埋め込み接続とリンク接続があります。埋め込み接続はブックの一部として内部に保存され、リンク接続はブックから参照可能な別ファイルとして外部に保存されます。

埋め込み接続とリンク接続は同じように機能します。どちらの接続でも、データに正常に接続するのに必要なすべてのパラメーターが正確に指定されます。リンク接続のファイルは、中央に保存して、セキュリティで保護し、管理および再利用ができます。外部データに接続するユーザーの数が多いときは、この方法が適しています。詳細については、「データ接続ライブラリとマネージ接続」を参照してください。

同じ接続について、ブックに接続情報を埋め込むと共に、外部接続ファイルへのリンクを同じブックに入れることもできます。データを最新の情報に更新するために外部データ ソースからデータを取り込むときは必ず外部接続ファイルを使用するように、接続を構成できます。この例では、外部接続ファイルを取得できない場合、またはデータ ソースへの接続を確立できない場合に、ブックにデータを取り込むことができなくなります。外部接続ファイルのみを使用するように接続が構成されていない場合、Excel は埋め込まれた接続の使用を試みます。埋め込まれた接続を使用できない場合は、Excel は接続ファイルを使用して外部データ ソースへの接続を試みます。外部データ ソースへの通信リンクを確立するときに接続ファイルのみを使用することを指定できる機能によって、「データ接続ライブラリとマネージ接続」に記載されているマネージ接続のシナリオがサポートされます。

Excel Services では、外部接続ファイルからの接続と、ブックに埋め込まれた接続を使用できます。外部接続ファイルに関しては、いくつかの制限があります。詳細については、「Excel Services のセキュリティと外部データ」を参照してください。両方の種類の接続がサーバーで許可されている場合の動作は、上で説明した Excel の動作と同様です。

セキュリティのために、接続ファイルからの接続のみを許可するように Excel Services アプリケーションを構成できます。この構成では、サーバー上で読み込まれたブックに埋め込まれた接続はすべて無視され、サーバー管理者によって信頼されている有効な接続ファイルへのリンクが存在するときにのみ接続が試行されます。詳細については、「信頼できるデータ接続ライブラリ」を参照してください。

注意

接続ファイルには多くの種類がありますが、Excel Services アプリケーションで使用できるのは Office データ接続ファイル (.odc) のみです。

データ プロバイダー

データ プロバイダーは、クライアント アプリケーション (Excel、Excel Services アプリケーションなど) が特定のデータ ソースに接続するために使用するドライバーです。たとえば、Microsoft SQL Server 2008 Analysis Services への接続には、特別な MSOLAP データ プロバイダーが使用されます。データ プロバイダーは、接続の一部として接続文字列の中で指定されます。この記事を読むうえでは、データ プロバイダーについての広範な知識は不要ですが、以下の概念については理解する必要があります。

  • データ プロバイダーとは、外部データへの接続に使用できるライブラリの集まりで、通常は十分なテストを経ており、安定しています。

  • Excel Services で使用するすべてのデータ プロバイダーは、サーバー管理者によって明示的に信頼されている必要があります。信頼できるプロバイダーのリストに新しいデータ プロバイダーを追加する方法の詳細については、「Excel Services 接続を管理する」を参照してください。

    注意

    既定では、既知の安定したデータ プロバイダーの多くが Excel Services アプリケーションによって信頼されています。ほとんどの場合、新しいデータ プロバイダーを追加する必要はありません。データ プロバイダーを追加するのは一般に、カスタム ソリューションの場合です。

  • データ プロバイダーは、クエリ、接続文字列の解析、および接続固有のその他のロジックを処理します。これは、Excel Services アプリケーションの機能の一部ではありません。Excel Services アプリケーションがデータ プロバイダーの動作を制御することはできません。

外部データに対する認証

データ サーバーを利用するには、ユーザーは認証を受ける必要があります。つまり、サーバーに対して自らの身元を明らかにする必要があります。次に行われる手順は承認です。そのユーザーに関連付けられて許可されている操作がサーバーに伝えられます。認証は、データ サーバーが承認を実行するために必要です。つまり、承認を受けたユーザー以外にデータが公開されるのを防ぐセキュリティ制限を適用するために必要です。

Excel Services アプリケーションは、どのユーザーがデータを要求しているかをデータ ソースに伝える必要があります。ほとんどのシナリオでは、これはブラウザーで Excel レポートを表示しようとしているユーザーのことです。このセクションでは、Excel Services アプリケーションと外部データ ソースの間の認証について説明します。このレベルの認証を次の図に示します。右側の矢印は、Excel Calculation Services を実行しているアプリケーション サーバーから外部データ ソースへの認証リンクを表しています。

Excel Services - 外部データに対する認証

注意

Excel Services アプリケーション は、委任された Windows ID を使用して外部データ ソースにアクセスします。したがって、外部データ ソースが SharePoint Server 2010 ファームと同じドメイン内に存在するか、または Excel Services アプリケーション が Secure Store Service を使用するように構成されている必要があります。Secure Store Service が使用されていず、外部データソースが同じドメイン内に存在しない場合は、外部データソースに対する認証が失敗します。詳細については、「サービス アーキテクチャの計画」の「外部データ ソースにアクセスするサービスに対する考慮を計画する」を参照してください。

認証の実装方法は多数あります。ここでは、Excel Services アプリケーションがサポートする次の 3 つの方法について説明します。

  • 統合 Windows 認証

  • Secure Store Service

  • なし

Excel Services アプリケーションは、接続のプロパティに基づいて認証の種類を決定します。このプロパティは明示的に設定されている必要があり、Microsoft Excel 2010 クライアントを使用して設定できます。認証の種類が見つからない場合は、既定の認証である Windows 認証が試行されます。

統合 Windows 認証

SharePoint Server 2010 はクレーム ベース認証を使用します。したがって、Excel Services アプリケーションもクレーム ベース認証を使用します。統合 Windows 認証は、SharePoint Server 2010 の IIS 認証の設定でのみ使用されるようになりました。また、Excel Services アプリケーションが接続するデータ ソースが、Excel Services アプリケーションをホストするサーバーとは別のサーバーでホストされている場合には、制限付きの Kerberos 委任を構成する必要があることに注意してください。つまり、Excel Services アプリケーションが外部データ ソースに接続するときには、Kerberos の制限付き委任を構成および展開する必要があります。

この方法では、Windows ユーザー ID を使用してデータ ソースに対する認証を行います。この認証を行うためにオペレーティング システムが使用する具体的な機構 (NTLM や制限付き委任) の説明は、この記事の範疇ではありません。Excel クライアントを使用して SQL Server 2008 Analysis Services などのデータ ソースに接続するときには、通常は Windows 認証が外部データ アクセスの既定の方法となっています。

ほとんどのエンタープライズ環境では、Excel Services アプリケーション はファームの一部として設定されます。ファームには、フロントエンド Web サーバー、バックエンド Excel Services アプリケーション サーバー、およびデータ ソースがあり、「外部データに対する認証」の図に示すように、それぞれ異なるコンピューターで実行されています。したがって、Windows 認証を使用するデータ接続を可能にするには、委任つまり Kerberos プロトコル (制限付き委任を推奨) が必要になります。コンピューター間のユーザー ID の送受信が、信頼できる安全な方法で行われるようにするには、委任が必要であるからです。ファーム展開では、Kerberos プロトコルが正しく構成されていなければ、この種の接続は Excel Services アプリケーションに対して機能しません。Excel Services アプリケーション用に Kerberos の制限付き委任を構成する方法の詳細については、Microsoft ダウンロード センターのページ「Configuring Kerberos Authentication for Microsoft SharePoint 2010 Products (英語)」を参照してください。

Secure Store Service

SharePoint Server 2010 は、Windows サービスとセキュリティ保護された資格情報データベースを組み込むことにより、Secure Store Service 認証を使用します。Excel Services アプリケーションがサポートするプラグ可能な Secure Store Service 機能を使用すると、Secure Store Service の独自のプロバイダーを実装できます。SharePoint Server 2010 は Excel Services アプリケーションに既定の Secure Store Service プロバイダーを提供します。

Secure Store Service は、アプリケーションが他のアプリケーションに対して認証を受けるときに使用できる資格情報 (ユーザー ID と対応するパスワードのペア) を保存するためによく使用される、中央データベースです。この場合、Excel Services アプリケーションは、外部データ ソースに対する認証で使用する資格情報の保存と取得を、Secure Store Service に依存して行います。

Secure Store Service の各エントリには、適切な資格情報のセットを取得するためのルックアップとなるアプリケーション ID が含まれます。アプリケーション ID ごとにアクセス許可を設定できるので、そのアプリケーション ID に対して保存されている資格情報に特定のユーザーまたはグループのみがアクセスできるようにすることができます。

アプリケーション ID が与えられると、Excel Services アプリケーションは、ブラウザーまたは Excel Web Services を通じてブックにアクセスするユーザーに代わって Secure Store データベースから資格情報を取得します。Excel Services アプリケーションは、この資格情報を使用してデータ ソースに対する認証を行い、データを取得します。

注意

アプリケーション ID は、接続に対して指定する必要があります。アプリケーション ID を指定する方法の詳細については、「セキュリティで保護されたストアでの Excel サービスの使用 (SharePoint Server 2010)」を参照してください。

なし

この認証方法は、資格情報の取得を行う必要がない、または接続のための認証に関して特別なアクションが行われないことを表します。たとえば、Excel Services アプリケーションが資格情報の委任を試みたり、ユーザーに対応して Secure Store データベースに格納されている資格情報の取得を試みたりすることはありません。認証に [なし] を選択した場合、Secure Store データベースにプロセス アカウントで接続し、使用する資格情報を取得します。この場合、Excel Services アプリケーションは接続文字列をデータ プロバイダーに渡し、プロバイダーが認証を処理します。

より具体的に言うと、この方法では一般に、データ ソースへの接続のためのユーザー名とパスワードを接続文字列の中で指定することになります。ただし、場合によっては、統合セキュリティを使用するよう接続文字列の中で指定することもあります。つまり、データを要求しているユーザーまたはコンピューターの Windows ID が、データ ソースへの接続に使用されることになります。どちらの場合も、無人アカウントがまず偽装されてから、データ ソース接続が行われます。承認の方法は接続文字列およびプロバイダーによって判断されます。さらに、接続文字列に含まれる資格情報、または偽装した無人アカウントの Windows ID のどちらかに基づいて承認が行われる場合もあります。詳細については、「無人アカウント」を参照してください。

データ接続ライブラリとマネージ接続

データ接続ライブラリは、接続ファイルを格納するために設計された SharePoint Server 2010 リストで、Excel Services アプリケーションなどの Office 2010 アプリケーションによって参照できます。

データ接続ライブラリを利用すると、データ接続を中央で管理し、セキュリティで保護して、保存および再利用ができます。

接続を再利用する

データ接続ライブラリは SharePoint Server 2010 の中の既知の場所にあり、データ接続ライブラリによってフレンドリ ビジネス名と説明が表示されるので、あるユーザーが作成した接続を他のユーザーが再利用でき、自分の目的に合わせて構成できます。専門的知識を持つインフォメーション ワーカーやデータの専門家が接続を作成すれば、他のユーザーは、データ プロバイダー、サーバー名、および認証の詳細を知らなくても接続を再利用できます。データ接続ライブラリの保存場所を Office クライアントに公開すれば、Excel Services アプリケーションや、データ接続ライブラリを利用するその他のクライアント アプリケーションの中でデータ接続が表示されます。詳細については、「Excel Services 接続を管理する」を参照してください。

接続を管理する

ブックにはデータ接続ライブラリのファイルへのリンクが含まれるので、接続に関する情報 (サーバー名や Secure Store アプリケーション ID) が変更されても、更新が必要なのは数百ものブックではなく、1 つの接続ファイルだけです。次回、ブックで Excel または Excel Services アプリケーションから最新の情報に更新するためにその接続ファイルを使用するときに、接続の変更が自動的に取得されます。

接続をセキュリティで保護する

データ接続ライブラリは SharePoint リストで、フォルダー単位、アイテム単位のアクセス許可など、SharePoint Server 2010 が行うすべてのアクセス許可をサポートします。このことによるサーバー上での利点は、データ接続ライブラリが、ロックされた、高度な制御が可能なデータ接続保管場所となることです。たとえば、多くのユーザーに対し、データ接続ライブラリへの読み取り専用のアクセス権を与えてデータ接続の使用を認める一方で、新規接続の追加を禁止できます。アクセス制御リスト (ACL) をデータ接続ライブラリと共に使用し、信頼できる作成者のみに接続のアップロードを許可することによって、データ接続ライブラリには信頼できる接続が保管されることになります。信頼できる接続とは、悪意のあるクエリが含まれていないことが判明している接続のことです。

サーバー管理者によって明示的に信頼されているデータ接続ライブラリからのみ接続ファイルを読み込み、埋め込まれた接続からの読み込みはブロックするように Excel Services アプリケーションを構成できます。この構成では、Excel Services アプリケーションでデータ接続ライブラリを使用することによって、データ接続を取り巻くセキュリティが一段と強化されます。

データ接続ライブラリを、SharePoint Server 2010 で新たに追加された "校閲者" ロールと共に使用することによって、Excel Services アプリケーションに読み込まれたブックの更新のために接続の使用を許可することもできます。校閲者ロールが適用されると、ユーザーは Excel などのクライアント アプリケーションから接続ファイルの内容にアクセスすることはできなくなります。このようにして、接続ファイルの内容は保護されますが、サーバー上でブックを最新の情報に更新するためにこの接続ファイルを使用することはできます。

Excel Services のセキュリティと外部データ

Excel Services アプリケーションは、何層ものセキュリティで保護されています。ここでは、外部データ アクセスに直接関係する概念のみを説明します。

信頼できるファイル保存場所

Excel Services アプリケーションは、信頼できるファイル保存場所からのみブックを読み込みます。基本的に、信頼できるファイル保存場所とは、ブックの読み込み元として管理者によって明示的に許可されているディレクトリ (すべてのサブディレクトリを含む) をいいます。これらのディレクトリは Excel Services アプリケーションが内部的に保持するリストに追加されます。このリストは、信頼できるファイル保存場所リストと呼ばれます。

信頼できる保存場所から読み込まれるブックに対して、一連の制限が指定されていることもあります。信頼できる保存場所から読み込まれるブックはすべて、その信頼できる保存場所の設定に準拠します。信頼できる保存場所の設定のうち、外部データに影響を与えるものを以下に示します。

  • 外部データにはどのようなアクセスが可能か。以下のオプションがあります。

    • データ アクセスを許可しない (既定)

    • SharePoint Server 2010 のデータ接続ライブラリにある接続ファイルのみ使用可能

    • データ接続ライブラリからの接続ファイルに加えて、ブックに埋め込まれた接続を許可する

  • クエリ更新の警告を表示するかどうか。

  • ブックを開くときに外部データを最新の情報に更新できなかった場合に、ブックの読み込みを中止するかどうか。これは、キャッシュされたデータの結果をブックが保持しており、ブックを表示するユーザーの ID に応じてその内容が変化するという場合に使用されます。目的は、このようなキャッシュされた結果を隠し、ブックを表示するユーザーに固有のデータのみが表示されるようにすることです。この場合、ブックが開かれるときに最新情報への更新が試行されます。接続ごとに、開くときに最新の情報に更新するよう設定できます。この更新に失敗した場合、そのブックを Excel クライアントで開くことができないユーザーには、ブックは表示されません。

    注意

    これは、SharePoint Server 2010 の校閲者ロールが持つアクセス許可によってブックがロックされている場合にのみ機能します。Excel で直接ブックを開くことのできるユーザーは、いつでもキャッシュされたデータの結果を参照できるからです。

  • 外部データ キャッシュの有効期限。スケールおよびパフォーマンスを向上させるために、サーバーの多くのユーザー間でデータが共有されます。また、キャッシュの有効期間は調整できます。クエリの実行に時間がかかることがあるためクエリの実行を最小限にとどめることが要求されるシナリオにも、これによって対応できます。このようなシナリオでは、データの変化する頻度が分単位または 1 時間単位ではなく、日単位、週単位、月単位ということもよくあります。

信頼できるデータ接続ライブラリ

ブック ファイルと同様、Excel Services アプリケーションは SharePoint Server 2010 の信頼できるデータ接続ライブラリの接続ファイルのみを読み込みます。信頼できるデータ接続ライブラリとは、サーバー管理者によって明示的に、内部的な信頼できるリストに追加されたライブラリです。データ接続ライブラリを利用して接続ファイルのセキュリティ保護と管理を行う方法については、「データ接続ライブラリとマネージ接続」を参照してください。Excel Services アプリケーションで使用するデータ接続ライブラリを信頼する方法の詳細については、「Excel Services 接続を管理する」を参照してください。

信頼できるデータ プロバイダー

Excel Services アプリケーションは、内部的な信頼できるプロバイダー リストに追加されている外部のデータ プロバイダーのみを使用します。これは、管理者によって信頼されていないプロバイダーをサーバーが使用することを防ぐためのセキュリティ機構です。データ プロバイダーを信頼する方法の詳細については、「Excel Services 接続を管理する」を参照してください。

無人アカウント

無人アカウントとは、データ ソースが統合 Windows 認証を使用しているかどうかに関係なく、認証に [なし] を選択した場合に、Excel Services アプリケーションが接続を試みるときに偽装する特殊なアカウントです。Excel Services アプリケーションがデータ プロバイダーを制御することはなく、プロバイダー固有の接続文字列を直接解析することもないので、Excel Services アプリケーション自体の ID を使用してデータ ソースに接続することを可能にするセキュリティ脅威の緩和が必要になります。無人アカウントは、このような脅威を緩和するために使用されます。

Excel Services アプリケーションは、高い特権を持つアカウントで実行されることがよくあります。このレベルの権限は、データを表示するだけのユーザーには適切ではありません。外部データ認証が [なし] または [Secure Store Service] に設定されていて、Secure Store Service アプリケーション ID に Windows 資格情報が格納されていないときは、無人アカウントを偽装してからデータへの接続が試行されます。無人アカウントはデータ ソースにアクセスする権限を持たないことになっているので、この方法を利用すれば、特権アカウントのコンテキストで誤って、あるいは悪意を持ってデータ ソースに接続されることを防止できます。

無人アカウントがデータ ソースにアクセスできる場合 (認証の種類が [なし] のとき) は、無人サービス アカウントの資格情報を使用して接続が正常に確立されます。意図的にこのアカウントを使用してデータに接続するソリューションを設計するときは、注意が必要です。この 1 つのアカウントが、サーバー上のすべてのブックで使用される可能性があるからです。Excel Services アプリケーションでブックを読み込むユーザーはだれでも、認証の種類を [なし] に設定すれば、サーバーを使用してデータを参照できる可能性があります。シナリオによっては、このことが必要な場合もありますが、ユーザー単位またはグループ単位ベースでパスワードを管理するには、Secure Store Service を使用することをお勧めします。