エクストラネット/インターネット配置の計画

SQL Server Reporting Services は、エクストラネット/インターネット レポート配置シナリオ用に明確に設計されてはいませんが、Reporting Services をインターネットに接続された Web サーバーに正常に配置して、一般情報を広く公開したり、承認および認証されたユーザーに対して企業の内部データを提供することができます。

注意

インターネットに接続された Web サーバーに Reporting Services を配置する場合は、慎重な評価を行う必要があります。ネットワークおよびセキュリティのソフトウェア、ネットワーク トポロジ、ドメインの構成などの変動要素があるため、レポート サーバーを配置するための手順を正確に規定するのは困難です。レポート サーバーをインターネット アクセスに対して評価する際には、使用する予定の機能をすべてテスト シナリオに含めてください。また、テストでは、常にセキュリティ保護された接続を使用してください。

エクストラネット/インターネットのアーキテクチャの図

次の図は、エクストラネット/インターネット配置のベスト プラクティスの配置構成の例を示しています。

インターネットまたはエクストラネットのレポート サーバー配置

この図の以下の点に注目してください。

  • 3 つのファイアウォールによって配置全体の多層防御が実現されています。ファイアウォールの構成に関する推奨事項については後ほどこのトピックで説明します。

  • エントリ ポイントは、ReportViewer コントロールを含むカスタム インターネット アプリケーションです。ReportViewer コントロールは、2 つ目のファイアウォール内にあるレポート サーバーで実行されるレポートをホストします。

  • レポートで使用されるデータは、レポート用に作成された読み取り専用のデータ ソースから取得されます。このデータ ソースに含まれているデータは他のソースからコピーされたものですが、レポートでは使用されない機密データの値は含まれていません。

  • 企業データ サーバーには機密データが含まれており、厳密な権限と制限の厳しいファイアウォール設定によって保護されています。レポート サーバー データベースをこのセキュリティ ゾーンに配置することも検討する必要があります。そうすれば、読み取り/書き込みアクセスを必要とするすべてのデータベース サーバーを 3 つ目のファイアウォールで保護できます。

一般的なガイドライン

このトピックで取り上げているトポロジに Reporting Services を配置するための大まかなガイドラインを以下に示します。このガイドラインは、独自の配置計画を作成するための出発点として使用できます。使用しているネットワーク トポロジの構成によっては、ここで説明されていない追加の手順が必要になる場合もあります。

テスト環境で構成を配置して、すべての要件、設定、手順、およびそれらの手順の最適な順序について理解できていることを確認する必要があります。

  1. ファイアウォールをインストールし、サーバー、アカウント、および権限を指定します。

  2. SSL 接続のためのサーバー証明書を作成または取得します。サーバー コンポーネントをホストするすべてのコンピューターに証明書をインストールします。ワイルドカードの設定を使用して証明書をインストールした場合は、同じ証明書を複数の URL に対して使用できます。

  3. 企業データを別のレポート用データ ソースにコピーするための方法を設計および実装します。レプリケーション、SQL Server Integration Services、サード パーティ製品などのテクノロジを使用できます。

  4. 外部アクセスに対して有効な設定で構成できるように、Reporting Services をファイルのみのインストール モードでインストールします。SQL Server インストール ウィザードでは、[サーバーを構成せずにインストールする] がこのオプションです。

  5. セットアップが完了した後、Reporting Services 構成ツールを実行して、レポート サーバーを構成します。

    1. サービスが最小特権アカウントで実行されることを確認します。ローカル システム アカウントは使用しないでください。ローカル システム アカウントが選択されている場合は、NetworkService かドメイン ユーザー アカウントを使用するように変更します。

    2. レポート サーバーとレポート マネージャー (オプション) の URL を定義します。

      外部ユーザーが使用する完全修飾ドメイン名 (FQDN) によるアクセスと、ネットワーク名を使用する別の URL によるアクセスをサポートするために、複数の URL を作成する必要があります。2 つの異なる URL を使用すると、インターネット接続が無効な場合やオフラインの場合にもレポート サーバーに接続できるようになります。

      FQDN URL を定義する際には SSL 証明書を選択する必要があります。

    3. レポート サーバー データベースを作成します。SQL Server のインスタンスが別のドメインにあり、Kerberos 5.0 が有効になっていない場合は、レポート サーバー データベースの接続に SQL Server 認証を使用します。 SSL または IPSec を使用して、レポート サーバー コンピューターと SQL Server データベース エンジン インスタンスの間の接続をセキュリティで保護します。

  6. カスタム認証拡張機能を作成して配置します。ISAPI フィルターとして実装されるシングル サインオン テクノロジを使用する場合は、ISAPI フィルターをサポートするために ISA Server を使用する必要があります。Reporting Services の HTTP リスナーは ISAPI フィルターをサポートしていません。

  7. カスタム認証拡張機能のセキュリティ プリンシパルを使用するロールの割り当てを構成して、レポート サーバーの操作に対する権限を与えるロールにマップします。

  8. ReportViewer Web サーバー コントロールを使用するインターネット フロントエンド アプリケーションを作成して配置します。

  9. レポートやその他の種類のコンテンツをレポート サーバーにパブリッシュします。

  10. ファイアウォール設定を構成します。ファイアウォールの設定で、下流のコンピューターおよびアプリケーションへの最小限のアクセスのみが許可されていることを確認します。

ファイアウォールの構成

レポート サーバー アプリケーションの既定の URL では、ポート 80 が有効になっていて、レポート サーバーで使用できることが前提になっています。Windows ファイアウォールを使用している場合は、ポート 80 (またはレポート サーバーの HTTP 要求のために使用できるその他のポート) を開く必要があります。別のポートを使用する場合は、そのポートをレポート サーバーの URL で指定する必要があります。詳細については、「レポート サーバー アクセスに対してファイアウォールを構成する方法」を参照してください。Windows ファイアウォールの既定の設定の詳細と、データベース エンジン、Analysis Services、Reporting Services、および Integration Services に影響する TCP ポートの説明については、「SQL Server のアクセスを許可するための Windows ファイアウォールの構成」を参照してください。

インターネット アプリケーションの ReportViewer Web サーバー コントロール

レポートをインターネット アプリケーションに配置するには、作成して配置するインターネット対応カスタム アプリケーションに ReportViewer Web サーバー コントロールを埋め込むことができます。ReportViewer Web サーバー コントロールは Visual Studio 2005 以降に付属しており、アプリケーションと一緒に自由に配布できます。ReportViewer コントロールを使用すると、リモート サーバー上で実行されたレポートを表示できます。アプリケーションとレポート サーバーの間の接続は、このコントロールによって、Web サービス プログラミング インターフェイスを通じて処理されます。認証および承認はすべてアプリケーションで処理されます。アプリケーションは、単一のユーザー信頼関係接続によってレポート サーバーに接続します。

詳細については、「Visual Studio 2010 の Reporting Services および ReportViewer コントロール」を参照してください。

インターネット/エクストラネットの Web フロントエンドとしてのレポート マネージャー

レポート マネージャーはインターネット アプリケーションとして設計されているわけではありませんが、カスタム インターネット アプリケーションを作成できない場合は、レポート マネージャーを使用してレポートをインターネット接続を介して表示することができます。以下は、配置に関するベスト プラクティスとしての推奨事項です。

  • レポート マネージャーをアプリケーション サーバー上の別のインスタンスとしてインストールすることを検討します。レポート マネージャーはレポート サーバー サービスで実行されます。したがって、レポート マネージャーをインストールするには、Reporting Services をインストールして、Web サービスとスケジュールおよび配信の機能を無効にする必要があります。最適な結果を得るには、ファイルのみのインストール モードを使用して、インターネットに接続された Web サーバーに Reporting Services をインストールします。SQL Server インストール ウィザードでは、[サーバーを構成せずにインストールする] がこのオプションです。

  • フォーム認証やシングル サインオン テクノロジをサポートするカスタム セキュリティ拡張機能を作成して配置します。

  • レポート マネージャーを最小限の権限で構成します。レポートを表示するにはブラウザー ロールとシステム ユーザー ロールで十分です。

  • 別のコンピューターで実行されている別のレポート サーバー インスタンスを指すようにレポート マネージャーを構成するには、レポート マネージャーの URL を構成し、RSReportServer.config ファイルの <ReportServerVirtualDirectory> と <ReportServerUrl> の設定を、レポート マネージャーがそのレポート サーバー インスタンスを指すように変更する必要があります。

  • 接続先のレポート サーバーで、使用しない機能を無効にします。たとえば、個人用レポート、サブスクリプションと配信、レポート ビルダー、クライアント側印刷機能などがあります。

Web.config ファイルのプロキシ設定の構成

レポート マネージャーをインターネット配置のフロントエンド アプリケーションとして使用する場合に、レポート サーバーも同じコンピューターにインストールされている場合は、Web.config の設定で、同じコンピューターにインストールされているローカル レポート サーバーに要求を送信するときにはレポート マネージャーがプロキシ サーバーを使用しないように指定する必要があります。

この Web.config 設定は、System.NET defaultProxy ネットワーク設定です。既定では、レポート マネージャーの Web.config ファイルの defaultProxy は無効になっています。この構成は、レポート マネージャーとレポート サーバーが同じコンピューターに配置されている場合にお勧めします。

以前のバージョンの Reporting Services からアップグレードした場合は、レポート マネージャーの Web.config ファイルに defaultProxy 構成設定が含まれていません。レポート マネージャーとレポート サーバーが同じコンピューターで実行されている環境へのインストールでは、defaultProxy 設定を追加および設定して、プロキシ サーバーが使用されないようにすることができます。以下の構成設定をレポート マネージャーの Web.config ファイルにコピーします。

<configuration>
...
<system.net>
  <defaultProxy enabled="false" />
</system.net>
</configuration>

これらの設定の詳細については、『Microsoft .NET Framework 開発者ガイド』の「インターネット アプリケーションの構成」および「defaultProxy 要素 (ネットワーク設定)」を参照してください。

エクストラネット/インターネット配置のための認証に関する注意点

定義済みの Microsoft Active Directory アカウントからの接続をサポートするエクストラネット シナリオにレポート サーバーを配置するには、既定の Windows 認証セキュリティ拡張機能を使用できます。SSL (Secure Sockets Layer) 接続や基本認証用にサーバーを構成する計画を立ててください。Reporting Services 構成ツールを使用して既存の証明書をレポート サーバーの URL にマップしたり、構成ファイルを変更して認証の種類を指定したりできます。

シングル サインオン技術からの接続をサポートする、またはユーザー ID 情報をデータベースに格納するフォームベースの認証モデルをサポートするエクストラネット シナリオにレポート サーバーを配置するには、カスタム認証拡張機能を作成して、既定の Windows 認証セキュリティ拡張機能と置き換える必要があります。フォームベースの認証は、通常、レポート サーバーを一般に公開するが、認証されたユーザーだけがコンテンツを見られるようにする場合に使用します。既定では、SQL Server Reporting Services はフォームベースの認証モジュールを提供しません。フォームベースの認証モジュールを作成する方法の詳細については、SQL Server オンライン ブックの「セキュリティ拡張機能の実装」を参照してください。

インターネット配置の確認

レポート サーバー接続がアクセスできることを確認するには、「http: (または https:)//<your-web-server-fully-qualified-domain-name>/reportserver」と入力し、インターネット接続を経由してレポート サーバーのフォルダーの名前空間を表示できる必要があります。「/reportserver」は、レポート サーバー仮想ディレクトリの既定の名前です。