Reporting Services セキュリティ ポリシー ファイルの使用

Reporting Services は、セットアップ時にファイル システムにコピーされる 3 つの構成ファイルにコンポーネントのセキュリティ ポリシーを格納します。これらの構成ファイルには、Reporting Services のコード アセンブリについて、内部用セキュリティ ポリシーとユーザー定義セキュリティ ポリシーの組み合わせを含めることができます。3 つの構成ファイルは、セキュリティ保護可能な Reporting Services の 3 つのコンポーネント (レポート サーバーと Windows サービス、レポート マネージャ Web アプリケーション、レポート デザイナ プレビュー ウィンドウ) に対応しています。

注意注意

レポート デザイナには 2 種類のプレビュー モードがあります。1 つは [プレビュー] タブ。もう 1 つは、レポート プロジェクトを DebugLocal モードで開始したときに起動されるポップアップ プレビュー ウィンドウです。[プレビュー] タブはセキュリティ保護可能なコンポーネントではなく、セキュリティ ポリシー設定が適用されません。レポート サーバー機能のシミュレーションを目的としているプレビュー ウィンドウには、ポリシー構成ファイルが備わっています。レポート デザイナでカスタム アセンブリやカスタム拡張機能を使用する場合、ユーザーまたは管理者はこの構成ファイルを変更する必要があります。

セキュリティ ポリシー構成ファイルには、セキュリティ クラス情報、一部の既定の名前付き権限セット、および Reporting Services のアセンブリで使用するコード グループが含まれています。Reporting Services のポリシー構成ファイルは Security.config ファイルと似ており、.NET Framework のコンピュータ レベル ポリシーおよびエンタープライズ レベル ポリシーに基づいてコード グループ階層と権限セットを決定します。このファイルの場所は、C:\WINDOWS\Microsoft.NET\Framework\v1.2.21213\CONFIG\security.config です。

Reporting Services のポリシー ファイル

次の表は、Reporting Services のポリシー構成ファイル、既定インストールでの場所、および各機能を示しています。

ファイル名

場所 (既定インストール)

説明

rssrvpolicy.config

C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer

レポート サーバーのポリシー構成ファイル。これらのセキュリティ ポリシーは、レポートがレポート サーバーに配置された後のレポートの式とカスタム アセンブリに主に影響します。このポリシー ファイルは、カスタム データ、配信、表示、およびレポート サーバーに配置されるセキュリティ拡張機能にも影響します。

rsmgrpolicy.config

C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportManager

レポート マネージャのポリシー構成ファイル。これらのセキュリティ ポリシーは、カスタム配信用のサブスクリプション ユーザー インターフェイス拡張機能など、レポート マネージャを拡張するすべてのアセンブリに影響します。

rspreviewpolicy.config

C:\Program Files\Microsoft SQL Server\80\Tools\ReportDesigner

レポート デザイナのスタンドアロン プレビュー ポリシー構成ファイル。これらのセキュリティ ポリシーは、プレビューおよび開発中にレポートに使用するカスタム アセンブリとレポートの式に影響します。これらのポリシーは、レポート デザイナに配置されるデータ処理拡張機能などのカスタム拡張機能にも影響します。

構成ファイルの変更

構成設定は、XML 要素または XML 属性のいずれかとして指定されます。XML ファイルおよび構成ファイルを理解している場合は、テキスト エディタまたはコード エディタを使用して、ユーザーが定義可能な設定を変更できます。セキュリティ構成ファイルには、コード グループ階層構造に関する情報と、Reporting Services のポリシー レベルに関連付けたアクセス許可セットを含めます。最初に Security.config ファイルのセキュリティ ポリシーを変更する場合は、.NET Framework 構成ユーティリティ (Mscorcfg.msc) またはコード アクセス セキュリティ ポリシー ユーティリティ (Caspol.exe) を使用して、ポリシーの変更をポリシー ファイルの有効な XML 構成要素に対応させることをお勧めします。その後で、新しいコード グループと権限セットを Security.config から切り取って、コードと権限追加先のコンポーネントのポリシーに貼り付けることができます。

重要な注意事項重要

ポリシー構成ファイルをバックアップした後で変更を行ってください。

この方法を実行すると、2 つの結果が得られます。まず、仮想ツールを使用して Reporting Services にコード グループと権限セットを構築できます。最初から XML 構成ファイル要素を記述するよりもこの方がはるかに簡単です。次に、不適切な形式の XML 要素と属性によってセキュリティ ポリシー構成ファイルが破損することがありません。コード アクセス セキュリティ ポリシー ユーティリティの詳細については、Microsoft Web サイトを参照してください。

ポリシー構成ファイルを変更する前に、このセクションおよび関連項目で入手できるすべての情報を読んでおく必要があります。Reporting Services のポリシー構成ファイルを変更すると、Reporting Services コンポーネントによる外部コード モジュール実行にセキュリティ上の重大な影響を及ぼす可能性があります。

拡張機能の CodeGroup 要素の配置

セキュリティ ポリシー ファイル内の CodeGroup 要素の配置は重要です。開発した拡張機能とカスタム アセンブリの場合は、次のように URL メンバシップ "$CodeGen$/*" の既存エントリのすぐ下にカスタム コード グループを配置することをお勧めします。

<CodeGroup
    class="UnionCodeGroup"
    version="1"
    PermissionSetName="FullTrust">
    <IMembershipCondition 
        class="UrlMembershipCondition"
        version="1"
        Url="$CodeGen$/*"
    />
</CodeGroup>
<CodeGroup 
    class="UnionCodeGroup"
    version="1"
    PermissionSetName="FullTrust"
    Name="MyCustomCodeGroup"
    Description="Code group for my custom extension">
        <IMembershipCondition class="UrlMembershipCondition"
        version="1"
        Url="C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin\MyAssembly.dll"
        />
</CodeGroup>

コード グループを順次追加できます。