Compartilhar via


Usar arquivos de diretiva de segurança do Reporting Services

O Reporting Services armazena informações de política de segurança de componentes em três arquivos de configuração que são copiados no sistema de arquivos durante a instalação. Estes arquivos de configuração podem conter uma combinação de políticas de segurança de uso interno e definidas pelo usuário assemblies de código no Reporting Services. Os três arquivos de configuração correspondem a três componentes de segurança do Reporting Services: o servidor de relatório e o serviço do Windows, o aplicativo Web do Gerenciador de Relatórios e a janela de exibição do Designer de Relatórios.

Observação

Há dois modos de visualização do Designer de Relatórios: a guia Visualizar e a janela pop-up Visualizar, que é iniciada quando o Projeto de Relatório é inicializado no modo DebugLocal. A guia Visualizar não é um componente protegível e não aplica as configurações de política de segurança. A janela de exibição foi desenvolvida para simular a funcionalidade do servidor de relatório e, portanto, tem um arquivo de configuração de política que você ou um administrador devem modificar para usar assemblies e extensões personalizadas no Designer de Relatórios.

Os arquivos de configuração de política de segurança contêm informações sobre a classe de segurança, alguns conjuntos nomeados padrão de permissões e os grupos de código para os assemblies do Reporting Services. Os arquivos de configuração de política do Reporting Services são similares ao arquivo Security.config que determina a hierarquia de grupos de código e os conjuntos de permissões associados às políticas do nível corporativo e de máquina do .NET Framework. O local deste arquivo é C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.

Arquivos de política no Reporting Services

A tabela a seguir lista os arquivos de configuração de política do Reporting Services, sua localização (supondo uma instalação padrão) e suas respectivas funções.

Nome do arquivo Local (instalação padrão) Descrição
rssrvpolicy.config C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer O arquivo de configuração de política de servidor de relatório. Estas políticas de segurança afetam principalmente expressões de relatório e assemblies personalizados após um relatório ser implantado em um servidor de relatório. Este arquivo de política também afeta dados personalizados, extensões de entrega, renderização e segurança implantados no servidor de relatório.
rsmgrpolicy.config C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager Arquivo de configuração de política do Gerenciador de Relatórios. Estas políticas de segurança afetam todos os assemblies que estendem o Gerenciador de Relatórios; por exemplo, extensões de interface de usuário de assinatura para entrega personalizada.
rspreviewpolicy.config C:\Arquivos de Programas\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies Arquivo de configuração de política de visualização autônoma do Designer de Relatórios. Estas políticas de segurança afetam assemblies personalizados e expressões de relatório que são usados em relatórios durante a visualização e o desenvolvimento. Essas políticas também afetam extensões personalizadas implantadas no Designer de Relatórios, como extensões de processamento de dados.

Modificar arquivos de configuração

As configurações são especificadas como elementos ou atributos XML. Se você entender de XML e arquivos de configuração, use um editor de texto ou de código para modificar configurações definidas pelo usuário. Os arquivos de configuração de segurança contêm informações sobre a hierarquia de grupos de código e os conjuntos de permissões associados a um nível de política do Reporting Services. Você deve usar o .NET Framework Configuration Utility (Mscorcfg.msc) ou Code Access Security Policy Utility (Caspol.exe) para modificar as diretivas de segurança no arquivo Security.config primeiro. Esta etapa garante que as alterações de diretiva correspondam a elementos de configuração XML válidos para arquivos de diretiva. Depois de fazer isso, você pode cortar e colar os novos grupos de códigos e conjuntos de permissões de Security.config para o arquivo de política do componente ao qual você está adicionando permissões de código.

Importante

Você deve fazer backup dos arquivos de configuração de política antes de fazer alterações.

O uso desse método tem duas vantagens. Primeiro, permite usar uma ferramenta visual para criar grupos de código e conjuntos de permissões para o Reporting Services. Esse método é mais fácil do que escrever elementos de configuração XML do zero. Em segundo lugar, ele garante que você não corrompa os arquivos de configuração de diretiva de segurança com elementos e atributos XML malformados. Para obter mais informações sobre o utilitário de política de Segurança de Acesso do Código, consulte Usando arquivos de política de segurança do Reporting Services no MSDN.

Antes de modificar os arquivos de configuração de política, você deve ler todas as informações disponíveis nesta seção e artigos relacionados. Modificar a configuração de diretiva do Reporting Services pode ter um efeito de segurança significativo sobre como os componentes do Reporting Services executam módulos de código externos.

Posicionamento de elementos CodeGroup para extensões

A colocação de elementos CodeGroup em um arquivo de política de segurança é importante. Para extensões e assemblies personalizados que você desenvolve, você deve colocar seus grupos de códigos personalizados diretamente abaixo da entrada existente para a associação $CodeGen$/*de URL, conforme indicado pelo exemplo a seguir:

<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>  

Mais grupos de códigos podem ser adicionados um após o outro.