Usando arquivos de diretiva de segurança do Reporting Services
O Reporting Services armazena informações de diretiva 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 diretivas 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 exibição para o 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 de segurança e não aplica configurações de diretiva 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 diretiva 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 diretiva 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 diretiva 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 diretivas do nível corporativo e de máquina do .NET Framework. O local deste arquivo é C:\WINDOWS\Microsoft.NET\Framework\v1.2.21213\CONFIG\security.config.
Arquivos de diretiva do Reporting Services
A tabela a seguir lista os arquivos de configuração de diretiva 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:\Arquivos de Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer |
O arquivo de configuração de diretiva de servidor de relatório. Estas diretivas 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 diretiva também afeta dados personalizados, extensões de entrega, renderização e segurança implantados no servidor de relatório. |
rsmgrpolicy.config |
C:\Arquivos de Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportManager |
Arquivo de configuração de diretiva do Gerenciador de Relatórios. Estas diretivas 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 SQL Server\80\Tools\ReportDesigner |
Arquivo de configuração de diretiva 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. Estas políticas também afetam extensões personalizadas, como extensões de processamento de dados, que são implantadas no Designer de Relatórios. |
Modificando 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 diretiva do Reporting Services. É recomendado usar o utilitário de configuração do .NET Framework (Mscorcfg.msc) ou o utilitário de diretiva de segurança de acesso ao código (Caspol.exe) para modificar diretivas de segurança no arquivo Security.config primeiro, de modo que as alterações de diretiva correspondam a elementos válidos de configuração XML para arquivos de diretiva. Feito isso, você pode recortar e colar os novos grupos de código e conjuntos de permissões do Security.config para o arquivo de diretiva do componente ao qual estão sendo adicionadas permissões de código.
Importante |
---|
Você deve fazer backup dos arquivos de configuração de diretiva 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. Isto é muito mais fácil do que gravar elementos de configuração XML a partir do zero. Em segundo lugar, esse método assegura que os arquivos de configuração de diretiva de segurança não sejam corrompidos com elementos e atributos XML mal formados. Para obter mais informações sobre o utilitário de diretiva de segurança de acesso ao código, consulte o site da Microsoft.
Antes de modificar arquivos de configuração de diretiva, leia todas as informações disponíveis nesta seção e os tópicos relacionados. A modificação da configuração de diretiva do Reporting Services pode afetar significativamente a segurança no que diz respeito a como os componentes do Reporting Services executam módulos de código externos.
Colocação de elementos CodeGroup para extensões
A colocação de elementos CodeGroup em um arquivo de diretiva de segurança é importante. Para as extensões e os assemblies personalizados que você desenvolver, é recomendado colocar grupos de código personalizados logo abaixo da entrada existente para a associação "$CodeGen$/*" de URL, conforme indicado 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>
Grupos de código adicionais podem ser adicionados um depois do outro.