Utiliser les 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.

Notes

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 quand 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 déployées sur Concepteur de rapports, telles que les extensions de traitement des données.

Modifier les 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. Vous devez utiliser l’utilitaire de configuration .NET Framework (Mscorcfg.msc) ou l’utilitaire de stratégie de sécurité d’accès au code (Caspol.exe) pour modifier d’abord les stratégies de sécurité dans le fichier Security.config. Cette étape garantit que les modifications de stratégie correspondent aux éléments de configuration XML valides pour les fichiers de stratégie. Une fois cela fait, vous pouvez couper et coller les nouveaux groupes de codes et jeux d’autorisations de Security.config dans 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. Cette méthode est plus facile que d’écrire des éléments de configuration XML à partir de zéro. Ensuite, il garantit que vous n’endommagez pas les fichiers de configuration de stratégie de sécurité avec des éléments et attributs XML mal formés. 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 les fichiers de configuration de stratégie, vous devez lire toutes les informations disponibles dans cette section et les articles connexes. La modification de la configuration de stratégie de Reporting Services peut avoir un effet de sécurité significatif sur la façon dont les composants Reporting Services exécutent des modules de code externes.

Positionnement 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, vous devez placer vos groupes de code personnalisés directement sous l’entrée existante pour l’appartenance $CodeGen$/*à l’URL, comme indiqué par l’exemple suivant :

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

Plusieurs groupes de code peuvent être ajoutés l’un après l’autre.