連携運用: SharePoint 2010 と SQL Server 2008 R2 Reporting Services の統合

Alan Le Marquand

これまで、SQL Server と SharePoint は、常に連携して有効に運用されてきました。SharePoint Server 2010 と SQL Server 2008 R2 のリリースでは、SharePoint と SQL Server 2008 R2 Reporting Services (SSRS) 間の統合を大幅に強化する機能が追加されています。今月の記事では、この最新の強化機能を構成して使用する方法について説明します。

サーバー統合のアーキテクチャ

SharePoint 用 SQL Server 2008 Reporting Services アドインが、SQL Server と SharePoint 間の統合を促進する機能です。このアドインは、Microsoft ダウンロード センターから無料でダウンロードすることが可能で、レポート サーバーと統合する必要があるすべての SharePoint 2010 Web フロント エンド (WFE) サーバーにインストールします。図 1 に、統合コンポーネントのアーキテクチャを示します。

このアドインによって、SharePoint 2010 の WFE に 3 つのコンポーネントがインストールされます。インストールされるのは、SSRS プロキシ、レポート ビューアー Web パーツ、および SharePoint サイトやファームのレポート サーバー コンテンツを表示、保存、および管理するためのアプリケーション ページです。SSRS プロキシにより、WFE とレポート サーバー間の通信が容易になります。SharePoint のサーバーの全体管理の Reporting Services のページで、アクセスするレポート サーバーのほか、サーバーへのアクセスに使用する認証方法と資格情報をプロキシに構成します。統合が機能するには、SharePoint 統合モードで稼働するようにレポート サーバーを構成する必要があります。

サーバー統合のアーキテクチャ

図 1 サーバー統合のアーキテクチャ

図 1 で注目すべきコンポーネントは、レポート サーバーの SharePoint オブジェクト モデル コンポーネントです。レポート サーバーが SharePoint に保存されているレポート情報を理解して、セキュリティで保護できるようにするには、SharePoint サイトまたはファームの構成およびコンテンツ データベースと通信する必要があります。そのためには、最小構成の SharePoint をレポート サーバーにインストールし、これをファームに参加させます。

レポート サーバーにインストールする SharePoint のバージョンは、ファーム全体で使用しているバージョンと同じものにする必要があります。この作業が必要なのは、1 台のコンピューターでレポート サーバーを単独で実行している場合のみです。SharePoint と Reporting Services を 1 台のコンピューターで運用している場合、必要な作業はアドインをインストールするだけです。

統合を構成する

概して、統合の構成は、SharePoint 2010 と SQL Server 2008 R2 を使用すると簡素化されます。構成を行う順序は、既にインストールされているものによって決まります。新規にサーバーを準備する場合でも、既存のインストールを基にする場合でも、SharePoint で SSRS プロキシを構成する前に、すべての主要コンポーネントをインストールしておくことが重要です。新規にサーバーを準備する場合、SQL Server Reporting Service 2008 R2 と SharePoint 2010 の統合で最高の結果を得るうえで推奨されるインストールの順序は次のとおりです。

  1. SharePoint 2010 の必須コンポーネントのインストーラーを実行します。このインストーラーを実行すると、SharePoint 用 SSRS 2008 R2 アドインがインストールされます。
  2. ファーム構成で SharePoint 2010 をインストールして構成します。
  3. レポート サーバーと SharePoint WFE を個別のコンピューターにインストールする場合は、レポート サーバーのコンピューターで手順 1. と 2. を再度実行し、手順 2. で作成した SharePoint ファームに参加するようにレポート サーバーのコンピューター構成します。
  4. SQL Server Reporting Services を SharePoint 統合モードでインストールします。
  5. [Reporting Services 統合] ページで SSRS プロキシを構成し、Reporting Services の機能をアクティブにします。

[ドキュメント] メニューの [新規作成] にサイトの Reporting Services のコンテンツ タイプが表示されない場合は、これを手動で追加する必要があります。レポート サーバーのコンテンツ タイプを追加する方法については、この記事の後のセクション「レポート ビルダー 3.0 との統合」で説明します。

この記事のシナリオでは、既定で使用される SharePoint 付属のデータベースではなく、SQL Server を SharePoint データベースとして使用します。すべてのコンポーネントを 1 台のコンピューターにインストールする場合は、手順 5. は不要です。手順 1. と 2. は、SQL Server のインストール プロセスに組み込むことができます。

既に SharePoint をインストールされている場合は、いつでもアドインをダウンロードしてインストールできます。アドインのインストール プロセスでは、必要なページが SharePoint サーバーの全体管理に追加され、ビジネス インテリジェンス (BI) センター サイト テンプレートを使用するサイトの既存の SharePoint ライブラリに、新しいレポート サーバーのコンテンツ タイプが追加されます。

SharePoint 側では、SharePoint Server 2010 または SharePoint Foundation 2010 で統合を構成できます。どちらも、Reporting Services アドインのインストールをサポートしています。SharePoint と Reporting Services を個別のコンピューターにインストールする場合は、同じバージョンの SharePoint をレポート サーバーにインストールする必要があります。たとえば、SharePoint Server 2010 を Web フロント エンドとして使用している場合は、SharePoint Foundation 2010 をレポート サーバーにインストールすることはできません。

アドインのインストールは非常に簡単で、ユーザーの名前と会社名を入力する以外の構成は必要ありません。SharePoint を初めてインストールする場合は、SharePoint の前にアドインをインストールします。これは、SharePoint 2010 の必須コンポーネントのインストーラーを実行すると、自動的に処理されます。

レポート サーバーの構成は、簡単です。主な注意点は次のとおりです。

  • SQL Server のエディションは、Standard、Enterprise またはそれ以上である必要があります。
  • レポート サーバー データベースは、SharePoint 統合モード用に作成する必要があります。
  • SharePoint とレポート サーバーを個別のコンピューターにインストールする場合は、SharePoint の最小インストールが必要です。また、この SharePoint はレポート サーバーのファームに参加させる必要があります。

レポート サーバーは、組み込みのアカウントか、ローカルまたはドメインの Windows ユーザー アカウントで実行される単一の Windows サービスとして実装されます。SharePoint 統合モードでは、レポート サーバーのサービス アカウントが、SharePoint の構成およびコンテンツ データベースと、SharePoint オブジェクト モデル リソースにアクセスできるように、適切にプロビジョニングされます。このプロビジョニングは、[Reporting Services 統合] ページで Reporting Services と SharePoint の統合を構成するときに処理されます。

認証モードが "Windows 統合" の場合、WFE からレポート サーバーに接続するときに、SharePoint にログインしている Windows ユーザーが偽装されます。認証モードが信頼済みアカウントの場合は、SharePoint にログインしているユーザーの SharePoint ユーザー コンテキストが、SharePoint ユーザー トークンの形でレポート サーバーに渡されます。SharePoint WFE のアプリケーション プール アカウントは、WFE からレポート サーバーに接続するときに使用されます。サービス アカウント構成の概要については、TechNet の記事「SharePoint 2010 統合用の Reporting Services の構成」を参照してください。

既定の設定で Reporting Services がインストールされている場合、Reporting Services データベースはネイティブ モードになります。SharePoint 統合モードで運用するには、Reporting Services 構成ツールを使用して、[データベースのセットアップ] ページでモードをネイティブから SharePoint 統合に変更する必要があります。

レポート サーバーのモードはいつでもネイティブから SharePoint 統合に変更できますが、レポート サーバーのモードを変更しても、既存のデータベースのモードは切り替わりません。モードを切り替えるたびに、新しいデータベースを作成するか、既存のデータベースに接続する必要があります。

SharePoint で Reporting Services プロキシのオプションを構成する前に、構成が必要な設定が 1 つあります。Web アプリケーションで、匿名アクセスが有効になっていないことを確認してください。匿名アクセスが有効になっていても、Reporting Services プロキシの設定を構成することはできますが、ユーザーがレポートを実行するときにエラーが発生します。Windows 認証または他の認証プロバイダーのクレームベース認証を使用することが可能で、レポート サーバーと SharePoint ファーム間の統合を構成する場合は、ファーム内の SharePoint Web アプリケーションは、それぞれ異なる認証プロバイダーを使用するように構成できます。

このアドインにより、SharePoint サーバーの全体管理の [アプリケーションの全般設定] ページに、Reporting Services 用の新しいセクションが作成されます。[Reporting Services 統合] ページで、レポート サーバーの URL と認証の詳細を入力し、ファーム内のすべてまたは一部のサイト コレクションで Reporting Services 機能をアクティブ化します。

Reporting Services プロキシの構成

図 2 Reporting Services プロキシの構成

図 2 のページの構成が完了したら、統合の構成プロセスは完了です。

レポート ビルダー 3.0 との統合

SharePoint と Reporting Services を統合する最大のメリットは、ユーザーが SharePoint からレポートを作成、変更、および発行できるようになることです。Reporting Services には、共有のレポート データ ソース (.rsds) ファイル、レポート ビルダー モデル (.smdl) ファイル、およびレポート ビルダーのレポート定義 (.rdl) ファイルなど、さまざまなファイルの管理に使用できる定義済みのコンテンツ タイプがいくつか用意されています。このような新しいコンテンツ タイプをリボンやコンテキスト メニューから作成および管理できるように統合を構成したら、各ライブラリで新しいコンテンツ タイプを有効にする必要があります。

BI センター サイト テンプレートを使用している場合は、何もする必要はありません。BI センター サイト テンプレートと、このテンプレートを使用して作成されたすべてのサイトでは、これらのコンテンツ タイプが自動的に有効になります。それ以外のサイトとドキュメント ライブラリでは、2 段階の構成プロセスを実行する必要があります。まず、目的のライブラリでコンテンツ タイプの管理を有効にします (既定では無効になっています)。次に、そのライブラリで目的のコンテンツ タイプを有効にします。ドキュメント ライブラリでコンテンツ タイプの管理を有効にするには、TechNet の記事「レポート サーバー コンテンツの種類をライブラリに追加する方法 (Reporting Services の SharePoint 統合モード)」の手順に従ってください。

新しいコンテンツ タイプがライブラリに追加されると、[ドキュメント] タブの [新しいドキュメント] ボックスのドロップ ダウン リストに新しい 3 つのオプションが表示されます。ここで [レポート ビルダー レポート] を選択すると、レポート ビルダー 3.0 がクライアントにダウンロードされて、実行されます。この動作は、SharePoint サーバーの全体管理で変更できます。[Reporting Services サーバーの既定値] を使用すると、このオプションを無効にしたり、別の レポート ビルダーの URL を構成したりできます。

SharePoint サイトでレポート ビューアー Web パーツを使用する

レポート ビューアー Web パーツは、Reporting Services アドインによってインストールされるカスタマイズした Web パーツです。この Web パーツを使用すると、レポート サーバーに保存されているレポートの表示、参照、印刷、エクスポートを実行できます。この Web パーツを追加するには、TechNet の記事「レポート ビューアー Web パーツを Web ページに追加する方法 (Reporting Services の SharePoint 統合モード)」の手順を実行してください。

各レポート ビューアー Web パーツには、"レポート" プロパティに指定されているレポート ファイル (.rdl) の絶対 URL に基づいて、一度に 1 つのレポートが表示されます。この URL は、現在の SharePoint サイトまたは同じ Web アプリケーションかファーム内のレポートの完全修飾パスで指定する必要があります。指定の URL は、ドキュメント ライブラリ、またはレポートを保持しているドキュメント ライブラリ内のフォルダーに解決される必要があります。レポートの URL には、.rdl というファイル拡張子を含める必要があります。レポートがモデルや共有データ ソース ファイルに基づいて作成される場合、これらのファイルを URL に含めて指定する必要はありません。レポートには、必要なファイルへの参照が含まれます。

クレーム認証と Reporting Services

SharePoint Server 2010 で導入された新機能の 1 つは、クレームベース認証のサポートです。クレーム対応アプリケーションでは、クライアントによって "クレーム" がアプリケーションに渡されます。このクレームは、ユーザーの名前、電子メール アドレス、マネージャー名など、ユーザーについての情報です。クレームベース認証では、Kerberos を使用する場合よりも多くの情報がアプリケーションに提供されます。たとえば、購買アプリケーションの場合、アプリケーションに渡されるクレームの 2 つを、ユーザーの上司の電子メール アドレスとユーザーの購買制限にすることができます。クレームに対応していないアプリケーションでは、これらの情報はアプリケーションで管理される必要があります。

SharePoint の場合は、クレーム認証によって、SharePoint サイトを組織全体で共有するという問題が解消されます。Active Directory フェデレーション サービス (AD FS) などの製品を使用して、認証方法が異なる 2 つの組織に、SharePoint がユーザーを識別し、正しいアクセス許可を付与できるようにするクレームを設定できます。

この機能は SharePoint 2010 製品に組み込まれているため、Reporting Services でも、この認証モデルを利用できます。Reporting Services はクレームに対応していませんが、信頼済みアカウントを利用して SharePoint と通信します。SQL Server 2008 R2 アドインのプロキシ サーバーでは、SharePoint オブジェクト モデルを使用して、クレーム トークンを対応する SharePoint ユーザー コンテキストに変換します。これにより、レポート サーバーが理解でき、SharePoint データベースに基づいた検証に使用できる SharePoint ユーザー トークンが生成されます。まとめると、このプロセスは次のようになります。

  1. SharePoint が、SharePoint Security Token Service を使用して、適切なクレーム認証を実行し、クレーム トークンを Reporting Services プロキシに渡します。
  2. Reporting Services プロキシは、渡されたクレーム トークンを使用して、SharePoint オブジェクト モデルにアクセスして、対応する SharePoint ユーザー トークンを生成し、これをレポート サーバーに転送します。
  3. レポート サーバーは SharePoint ユーザー トークンを使用してローカルの SharePoint オブジェクト モデルに基づいて、正しい SharePoint ユーザー コンテキストを生成します。
  4. ユーザーに必要なアクセス許可がある場合、レポート サーバーは、通常どおり適切な SharePoint ユーザー コンテキストを使用して、要求された情報を SharePoint に返します。

ネイティブ リスト レポート

SQL Server 2008 R2 Reporting Services では、データ ソースとして SharePoint リストがサポートされるようになりました。このサポートを利用すると、SharePoint Foundation 2010、SharePoint Server 2010、Windows SharePoint Services 3.0、Office SharePoint Server 2007 のリスト データを取得できます。このリスト データにアクセスできるかどうかは、SharePoint 用 SQL Server 2008 Reporting Services アドインの有無や、レポート サーバーの実行モード (ネイティブまたは SharePoint 統合) には左右されません。この機能はレポート サーバーに組み込まれています。構成が異なる場合に変わるのは、アクセス方法です。

SharePoint リスト データにアクセスする方法は 2 とおりあります。1 つは lists.asmx Web サービスを利用する方法で、もう 1 つは SharePoint オブジェクト モデル API を利用する方法です。どのような SharePoint インストールであっても、「http://<SharePoint サーバー名>\lists.asmx」という URL を入力すると、アクセスできる SharePoint サイトにあるすべてのリストの一覧を XML 形式で取得できます。この方法を使用して、レポート ビルダー 3.0 ではリストを取得できます。ネイティブ モードで構成されているレポート サーバーでも、この方法が使用されます。

SharePoint オブジェクト モデル API を使用する方法は、2 つのシナリオで使用できます。1 つはレポート サーバーが SharePoint 統合モードで構成され、Reporting Services の統合先と同じ SharePoint ファームにリストが存在する場合で、これらすべてが 1 台のコンピューターにインストールされている場合です。このシナリオでは、レポート サーバーで SharePoint を実行しており、この SharePoint によってレポート サーバーに SharePoint オブジェクト モデル API へのアクセスが提供されます。もう 1 つのシナリオは、SharePoint 2010 とアドインはインストールされていても、レポート サーバーがない場合です。これは "ローカル モード" と呼ばれるシナリオで、後のセクション「Reporting Services を使用せずにレポートを生成する」で説明します。

レポートで SharePoint リストから取得したデータを使用するには、まず、データ ソースを作成し、このデータ ソースを使用するデータセットを作成する必要があります。レポート ビルダー 3.0 では、[データ ソースのプロパティ] ページに、[Microsoft SharePoint リスト] という新しい接続の種類があります (図 3 参照)。このオプションを選択し、SharePoint サイトの URL を入力します。このとき、URL には lists.asmx を追加する必要はありません。また、SharePoint サーバーへのアクセスに使用するのと異なる資格情報を使用してデータ ソースを構成することもできます。

SharePoint リスト用の接続の種類

図 3 SharePoint リスト用の接続の種類

このデータ ソースを基に新しいデータセットを作成する場合、アクセスできるサイト上のすべての SharePoint リストの一覧が提供されます。SQL Server のデータベース テーブルと同じように、この一覧から特定のリストをドリル ダウンして各リスト アイテムにアクセスしたり、フィルター、パラメーター、およびレポートを作成したりできます。

代替アクセス マッピングのサポート

別の統合の強化機能としては、代替アクセス マッピング (AAM) のサポートがあります。AAM は、SharePoint 2007 で導入された機能ですが、Reporting Services では AAM がサポートされていませんでした。現在は、SharePoint サーバーの全体管理で代替アクセス マッピングを構成すると、Reporting Service アドインによって URL の構造が維持されます。その一例として、図 4 に非常に簡単なレポートを示します。http://sql-01 と https://www.contoso.com のどちらの URL でも、同じレポートが表示されます。

代替アクセス マッピング

図 4 代替アクセス マッピング

Reporting Services を使用せずにレポートを生成する

ここまでは、すべて "接続モード" と呼ばれるものに関連した情報を提供しました。以前バージョンの Reporting Services では、このモードしか使用できませんでした。つまり、SharePoint は、レポート ビューアーを使用してレポートを表示するためには、SharePoint 統合モードで構成されている Reporting Services レポート サーバーに接続する必要がありました。

SQL Server 2008 R2 がリリースされたことで、SharePoint サイトやファームを Reporting Services レポート サーバーに統合しなくても、レポートを表示できるようになりました。データ拡張機能が "ローカル モード" のレポート作成をサポートしている場合、レポート ビューアーを使用して、直接 SharePoint からレポートを表示できます。このモードを既定でサポートしているのは、SharePoint リストと Microsoft Access 2010 レポート拡張機能のみです。

ローカル モードでは、埋め込みデータ ソースや .rsds ファイルの共有データ ソースを使用するレポートも表示できます。ただし、レポートやレポートに関連付けられているデータソースを管理することは、ローカル モードではサポートされていないため、できません。

サポートされる SharePoint アドインとレポート サーバーの組み合わせ

SQL Server 2008 R2 と SharePoint Server 2010 がリリースされたことで、現在、SQL Server のバージョンは 3 種類、SharePoint 用 SQL Server 2008 Reporting Services アドインのバージョンも 3 種類、SharePoint のバージョンは 2 種類になりました。統合コンポーネントは、このうちのどのリリースでも使用できますが、適切なバージョンの組み合わせを使用する必要があります。図 5 に、サポートされる製品の組み合わせを示します。

サポートされる SharePoint アドインとレポート サーバーの組み合わせ

図 5 サポートされる SharePoint アドインとレポート サーバーの組み合わせ

Alan Le Marquand は、英国を拠点に活動しているマイクロソフトの IT プロフェッショナル向けのコンテンツ アーキテクトです。Le Marquand が執筆した他の記事は、本人のブログ「 Alan’s World of IT (Alan の IT の世界、英語)」でご覧いただけます。

関連コンテンツ