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

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

Note

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

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

Reporting Services のポリシー ファイル

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

ファイル名 場所 (既定インストール) 説明
rssrvpolicy.config C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer レポート サーバーのポリシー構成ファイル。 これらのセキュリティ ポリシーは、レポートがレポート サーバーに配置された後のレポートの式とカスタム アセンブリに主に影響します。 このポリシー ファイルは、カスタム データ、配信、表示、およびレポート サーバーに配置されるセキュリティ拡張機能にも影響します。
rsmgrpolicy.config C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager レポート マネージャーのポリシー構成ファイル。 これらのセキュリティ ポリシーは、カスタム配信用のサブスクリプション ユーザー インターフェイス拡張機能など、レポート マネージャーを拡張するすべてのアセンブリに影響します。
rspreviewpolicy.config C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies レポート デザイナーのスタンドアロン プレビュー ポリシー構成ファイル。 これらのセキュリティ ポリシーは、プレビューおよび開発中にレポートに使用するカスタム アセンブリとレポートの式に影響します。 これらのポリシーは、データ処理拡張機能など、レポート デザイナーに展開されるカスタム拡張機能にも影響します。

構成ファイルを変更する

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

重要

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

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

ポリシー構成ファイルを変更する前に、このセクションおよび関連記事で使用可能なすべての情報を読む必要があります。 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>  

さらに多くのコード グループを次々に追加できます。