Uso de archivos de directivas de seguridad de Reporting Services

Reporting Services almacena la información de los componentes de directiva de seguridad en tres archivos de configuración que se copian en el sistema de archivos durante la instalación. Estos archivos de configuración pueden contener una combinación de uso interno y las directivas de seguridad definidas por el usuario para los ensamblados de código en Reporting Services. Los tres archivos de configuración corresponden a tres componentes protegibles de Reporting Services: el servidor de informes y el servicio de Windows, la aplicación web del Administrador de informes y la ventana de vista previa del Diseñador de Informes.

Nota:

Hay dos modos de vista previa para el Diseñador de informes: la pestaña de vista previa y la ventana de vista previa emergente que se inician cuando se inicia su Proyecto de informe en modo DebugLocal. La pestaña Vista previa no es un componente protegible y no aplica la configuración de directiva de seguridad. La ventana de vista previa está pensada para simular la funcionalidad del servidor de informes y por consiguiente, tiene un archivo de configuración de directiva que usted o un administrador debe modificar para utilizar ensamblados y extensiones personalizadas en el Diseñador de informes.

Los archivos de configuración de directivas de seguridad contienen información de clase de seguridad, algunos conjuntos de permisos con nombre predeterminados y los grupos de código para los ensamblados en Reporting Services. Los archivos de configuración de directivas de Reporting Services son similares al archivo Security.config que determina los conjuntos de permisos y la jerarquía de grupos de código asociados a las directivas de nivel de equipos y de empresas de .NET Framework. La ubicación de este archivo es C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.

Archivos de directiva en Reporting Services

La tabla siguiente contiene una lista de los archivos de configuración de directivas en Reporting Services, sus ubicaciones (para una instalación predeterminada) y sus funciones respectivas.

Nombre de archivo Ubicación (instalación predeterminada) Descripción
rssrvpolicy.config C:\Archivos de programa\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer El archivo de configuración de directivas del servidor de informes. Estas directivas de seguridad afectan principalmente a las expresiones de informe y a los ensamblados personalizados una vez que se implementa un informe en un servidor de informes. Este archivo de directivas también afecta a los datos personalizados, entregas, representaciones y extensiones de seguridad que se implementan en el servidor de informes.
rsmgrpolicy.config C:\Archivos de programa\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager Archivo de configuración de directivas del Administrador de informes. Estas directivas de seguridad afectan a todos los ensamblados que abarca el Administrador de informes; por ejemplo, extensiones de interfaz de usuario de suscripciones para entregas personalizadas.
rspreviewpolicy.config C:\Archivos de programa\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies El archivo de configuración de directivas de vista previa independiente del Diseñador de informes. Estas directivas de seguridad afectan a las expresiones de informe y a los ensamblados personalizados que se utilizan en los informes durante la vista previa y el desarrollo. Estas directivas también afectan a las extensiones personalizadas que se implementan en Diseñador de informes, como las extensiones de procesamiento de datos.

Modificación de archivos de configuración

Los parámetros de configuración se especifican como atributos o elementos XML. Si comprende XML y los archivos de configuración, puede utilizar un editor de texto o de código para modificar las opciones de configuración definibles por el usuario. Los archivos de configuración de seguridad contienen información sobre los conjuntos de permisos y la jerarquía de grupos de código asociados a un nivel de directiva en Reporting Services. Debe usar la Utilidad de configuración de .NET Framework (Mscorcfg.msc) o la Utilidad de directivas de seguridad de acceso al código (Caspol.exe) para modificar primero las directivas de seguridad en el archivo Security.config. Este paso garantiza que los cambios de directiva se correspondan con los elementos de configuración XML válidos para los archivos de directiva. Una vez hecho esto, puede cortar y pegar los nuevos grupos de código y conjuntos de permisos de Security.config en el archivo de directiva del componente al que va a agregar permisos de código.

Importante

Debería hacer una copia de seguridad de los archivos de configuración de directivas antes de realizar cualquier modificación.

De esta manera se logran dos cosas. Primero, permite utilizar una herramienta visual para construir grupos de código y conjuntos de permisos para Reporting Services. Este método es más fácil que escribir elementos de configuración XML desde cero. En segundo lugar, garantiza que no se dañan los archivos de configuración de la directiva de seguridad con elementos y atributos XML con formato incorrecto. Para obtener más información acerca de la utilidad de la directiva de seguridad de acceso del código, vea la sección sobre los archivos de directivas de seguridad de Reporting Services en MSDN.

Antes de modificar los archivos de configuración de directivas, debe leer toda la información disponible en esta sección y artículos relacionados. La modificación de la configuración de directiva de Reporting Services puede tener un efecto de seguridad significativo en la forma en que los componentes de Reporting Services ejecutan módulos de código externo.

Colocación de elementos CodeGroup para extensiones

La colocación de los elementos CodeGroup en un archivo de directiva de seguridad es importante. En el caso de las extensiones y los ensamblados personalizados que desarrolle, debe colocar los grupos de código personalizados directamente debajo de la entrada existente para la pertenencia $CodeGen$/*a direcciones URL, como se indica en el ejemplo siguiente:

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

Se pueden agregar más grupos de código una después de otra.