Utilisation des fichiers de stratégie de sécurité Reporting Services

Reporting Services stocke les informations de stratégie de sécurité dans trois fichiers de configuration qui sont copiés dans le système de fichiers au cours de l'installation. Ces fichiers de configuration peuvent contenir une combinaison de stratégies de sécurité à usage interne et définies par l'utilisateur pour les assemblys de code dans Reporting Services. Les trois fichiers de configuration correspondent à trois composants sécurisables dans Reporting Services : le service Windows Report Server, l'application Web du Gestionnaire de rapports et la fenêtre d'aperçu du Concepteur de rapports.

Note

Il y a deux modes d'aperçu pour le Concepteur de rapports : l'onglet d'aperçu et la fenêtre d'aperçu contextuelle, qui s'affiche lorsque votre projet de rapport démarre en mode DebugLocal. L'onglet Aperçu n'est pas un composant sécurisable et n'applique pas de paramètres de stratégie de sécurité. La fenêtre d'aperçu est destinée à simuler les fonctionnalités du serveur de rapports ; par conséquent, elle dispose d'un fichier de configuration de stratégie que vous ou un administrateur devez modifier pour utiliser les assemblys et extensions personnalisés dans le Concepteur de rapports.

Les fichiers de configuration de stratégie de sécurité contiennent des informations de classe de sécurité, quelques jeux d'autorisations nommés par défaut et les groupes de codes des assemblys dans Reporting Services. Les fichiers de configuration de stratégie de Reporting Services sont semblables au fichier Security.config qui détermine la hiérarchie des groupes de codes et les jeux d'autorisations associés aux stratégies de niveaux ordinateur et entreprise du .NET Framework. L'emplacement de ce fichier est C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.

Fichiers de stratégie dans Reporting Services

Le tableau suivant répertorie les fichiers de configuration de stratégie dans Reporting Services, leurs emplacements (dans une installation par défaut) et leurs fonctions respectives.

Nom de fichier

Emplacement (installation par défaut)

Description

rssrvpolicy.config

C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportServer

Fichier de configuration de stratégie du serveur de rapports. Ces stratégies de sécurité affectent principalement les expressions de rapport et les assemblys personnalisés, une fois qu'un rapport est déployé sur un serveur de rapports. Ce fichier de stratégie affecte également les extensions personnalisées en matière de données, de remise, de rendu et de sécurité, qui sont déployées sur le serveur de rapports.

rsmgrpolicy.config

C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\ReportManager

Fichier de configuration de stratégie du Gestionnaire de rapports. Ces stratégies de sécurité affectent tous les assemblys qui étendent le Gestionnaire de rapports, par exemple les extensions d'interface utilisateur d'abonnement pour une remise personnalisée.

rspreviewpolicy.config

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies

Fichier de configuration de stratégie de l'aperçu autonome du Concepteur de rapports. Ces stratégies de sécurité affectent les assemblys personnalisés et les expressions de rapport utilisés dans les rapports pendant l'aperçu et le développement. Ces stratégies affectent également les extensions personnalisées, par exemple les extensions pour le traitement des données, qui sont déployées sur le Concepteur de rapports.

Modification des fichiers de configuration

Les paramètres de configuration sont spécifiés soit comme des éléments, soit comme des attributs XML. Si le langage XML et les fichiers de configuration vous sont familiers, vous pouvez modifier les paramètres définissables par l'utilisateur dans un éditeur de texte ou de code. Les fichiers de configuration de sécurité contiennent des informations sur la hiérarchie du groupe de codes et les jeux d'autorisations associés à un niveau de stratégie dans Reporting Services. Il est recommandé d'employer l'utilitaire de configuration du .NET Framework (Mscorcfg.msc) ou l'utilitaire de stratégie de sécurité d'accès du code (Caspol.exe) pour modifier au préalable les stratégies de sécurité dans le fichier Security.config, afin que les modifications de stratégie correspondent aux éléments de configuration XML valides pour les fichiers de stratégie. Une fois que vous avez terminé, vous pouvez couper et coller les nouveaux groupes de codes et jeux d'autorisations de Security.config vers le fichier de stratégie du composant auquel vous ajoutez des autorisations de code.

Important

Sauvegardez vos fichiers de configuration de stratégie avant d'apporter des modifications.

Cette approche présente un double intérêt. En premier lieu, elle vous permet d'utiliser un outil visuel pour générer vos groupes de codes et jeux d'autorisations pour Reporting Services. Cela est beaucoup plus facile que d'écrire entièrement des éléments de configuration XML. En second lieu, vous êtes assuré de ne pas endommager les fichiers de configuration de stratégie de sécurité en utilisant des éléments et attributs XML incorrects. Pour plus d'informations sur l'utilitaire de stratégie de sécurité d'accès du code, consultez Utilisation des fichiers de stratégie de sécurité Reporting Services sur MSDN.

Avant de modifier des fichiers de configuration de stratégie, lisez toutes les informations disponibles dans cette section et les rubriques connexes. La modification de la configuration de stratégie de Reporting Services peut avoir un impact déterminant en matière de sécurité sur la façon dont les composants Reporting Services exécutent des modules de code externes.

Placement des éléments CodeGroup pour les extensions

Le placement des éléments CodeGroup dans un fichier de stratégie de sécurité est important. Pour les extensions et les assemblys personnalisés que vous développez, il est recommandé de placer vos groupes de codes personnalisés directement en dessous de l'entrée existante pour l'appartenance (membership) URL "$CodeGen$/*", comme indiqué ci-après :

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

Les groupes de codes supplémentaires peuvent être ajoutés les uns à la suite des autres.