次の方法で共有


セキュリティ ポリシーについて

レポート サーバーによって実行されるすべてのコードは、特定のコード アクセス セキュリティ ポリシーの一部である必要があります。 これらのセキュリティ ポリシーは、証拠を一連の名前付きアクセス許可セットにマップするコード グループで構成されます。 多くの場合、コード グループは、そのグループ内のコードに対して許可されるアクセス許可を指定する名前付きアクセス許可セットに関連付けられます。 ランタイムは、信頼されたホストまたはローダーによって提供される証拠を使用して、コードが属するコード グループと、コードに付与するアクセス許可を決定します。 Reporting Services は、Microsoft .NET Framework 共通言語ランタイム (CLR) によって定義されているこのセキュリティ ポリシー アーキテクチャに準拠しています。 次のセクションでは、Reporting Services のさまざまな種類のコードと、それらに関連付けられているポリシー ルールについて説明します。

レポート サーバー アセンブリ

レポート サーバー アセンブリは、Reporting Services 製品の一部であるコードを含むアセンブリです。 Reporting Services は、マネージド コード アセンブリを使用して記述されます。これらのアセンブリはすべて厳密な名前 (つまり、デジタル署名) です。 これらのアセンブリのコード グループは StrongNameMembershipCondition を使用して定義されます。StrongNameMembershipCondition は、アセンブリの厳密な名前の公開キー情報に基づく証拠を提供します。 このコード グループには、 FullTrust アクセス許可セットが付与されます。

レポート サーバー拡張機能 (レンダリング、データ、配信、セキュリティ)

レポート サーバー拡張機能は、ユーザーまたは他のサード パーティが Reporting Services の機能を拡張するために作成するカスタム データ、配信、レンダリング、およびセキュリティ拡張機能です。 拡張する Reporting Services コンポーネントに関連付けられているポリシー構成ファイル内のこれらの拡張機能またはアセンブリ コードに FullTrust を付与する必要があります。 Reporting Services の一部として出荷される拡張機能は、レポート サーバーの公開キーで署名され、 FullTrust アクセス許可セットを受け取ります。

Von Bedeutung

Reporting Services ポリシー構成ファイルを変更して、サードパーティの拡張機能に対して FullTrust を許可する必要があります。 カスタム拡張機能に FullTrust を含むコード グループを追加しない場合、レポート サーバーでは使用できません。

Reporting Services のポリシー構成ファイルの詳細については、「 Reporting Services セキュリティ ポリシー ファイルの使用」を参照してください。

レポートで使用される式

レポート式は、レポート定義言語ファイルの Code 要素に含まれるインライン コード式またはユーザー定義メソッドです。 既定で 設定された実行 アクセス許可をこれらの式に付与するコード グループがポリシー ファイルに既に構成されています。 コード グループは次のようになります。

<CodeGroup  
   class="UnionCodeGroup"  
   version="1"  
   PermissionSetName="Execution"  
   Name="Report_Expressions_Default_Permissions"  
   Description="This code group grants default permissions for code in report expressions and Code element. ">  
    <IMembershipCondition  
       class="StrongNameMembershipCondition"  
       version="1"  
       PublicKeyBlob="002400..."  
    />  
</CodeGroup>  

実行 アクセス許可を使用すると、コードを実行 (実行) できますが、保護されたリソースは使用できません。 レポート内で見つかったすべての式は、コンパイル済みレポートの一部として格納されるアセンブリ ("式ホスト" アセンブリと呼ばれます) にコンパイルされます。 レポートが実行されると、レポート サーバーは式ホスト アセンブリを読み込み、そのアセンブリを呼び出して式を実行します。 式ホスト アセンブリは、すべての式ホストのコード グループを定義するために使用される特定のキーで署名されます。

レポート式は、レポート オブジェクト モデル コレクション (フィールド、パラメーターなど) を参照し、算術演算や文字列演算などの単純なタスクを実行します。 これらの単純な操作を実行するコードには 、実行 アクセス許可のみが必要です。 既定では、 Code 要素およびカスタム アセンブリのユーザー定義メソッドには、Reporting Services の 実行 アクセス許可が付与されます。 したがって、ほとんどの式では、現在の構成では、セキュリティ ポリシー ファイルを変更する必要はありません。 式ホスト アセンブリに追加のアクセス許可を付与するには、管理者はレポート サーバーとレポート デザイナーのポリシー構成ファイルを変更し、レポート式コード グループを変更する必要があります。 これはグローバル設定であるため、式ホストの既定のアクセス許可を変更すると、すべてのレポートに影響します。 このため、追加のセキュリティを必要とするすべてのコードをカスタム アセンブリに配置することを強くお勧めします。 このアセンブリにのみ、必要なアクセス許可が付与されます。

Von Bedeutung

外部アセンブリまたは保護されたリソースを呼び出すコードは、レポートで使用するためにカスタム アセンブリに組み込む必要があります。 これにより、コードによって要求およびアサートされるアクセス許可をより詳細に制御できます。 Code 要素内でセキュリティで保護されたメソッドを呼び出さないでください。 これを行うには、レポート式ホストに FullTrust を付与し、CLR へのフル アクセス権をすべてのカスタム コードに付与する必要があります。

注意事項

レポート式ホストのコード グループに FullTrust を付与しないでください。 その場合は、すべてのレポート式を有効にして、保護されたシステム呼び出しを行います。

レポートで参照されるカスタム アセンブリ

一部のレポート式では、Reporting Services でカスタム アセンブリとも呼ばれるサード パーティのコード アセンブリを呼び出すことができます。 レポート サーバーでは、これらのアセンブリに少なくともポリシー構成ファイルの 実行 アクセス許可が必要です。 既定では、Reporting Services に付属するポリシー ファイルは、"マイ コンピューター" ゾーンから開始するすべてのアセンブリに 実行 アクセス許可を付与します。 必要に応じて、カスタム アセンブリに追加のアクセス許可を付与できます。

場合によっては、レポート式で特定のコード権限を必要とする操作を実行することが必要になる場合があります。 通常、これは、レポート式がセキュリティで保護された CLR ライブラリ メソッド (ファイルやシステム レジストリにアクセスするメソッドなど) を呼び出す必要があることを意味します。 .NET Framework のドキュメントでは、このセキュリティで保護された呼び出しを行うために必要なコードのアクセス許可について説明します。呼び出しを実行するには、呼び出し元のコードにこれらの特定のセキュリティで保護されたアクセス許可が付与されている必要があります。 レポート式または Code 要素から呼び出しを行う場合は、式ホスト アセンブリに適切なアクセス許可を付与する必要があります。 ただし、式ホストにアクセス許可を付与すると、レポート内の任意の式で実行されるすべてのコードにその特定のアクセス許可が付与されるようになります。 カスタム アセンブリから呼び出しを行い、そのカスタム アセンブリに特定のアクセス許可を付与する方がはるかに安全です。

こちらもご覧ください

Reporting Services のコード アクセス セキュリティ
セキュリティで保護された開発 (Reporting Services)