Informazioni sui criteri di sicurezzaUnderstanding Security Policies

Qualsiasi codice eseguito da un server di report deve far parte di criteri di sicurezza dall'accesso di codice specifici.Any code that is executed by a report server must be part of a specific code access security policy. Tali criteri di sicurezza sono costituiti da gruppi di codice che eseguono il mapping dell'evidenza a un insieme di set di autorizzazioni denominati.These security policies consist of code groups that map evidence to a set of named permission sets. I gruppi di codice sono spesso associati a un set di autorizzazioni denominato che specifica le autorizzazioni consentite per il codice appartenente al gruppo specifico.Often, code groups are associated with a named permission set that specifies the allowable permissions for code in that group. In fase di esecuzione l'evidenza viene usata da un host trusted o dal caricatore per determinare i gruppi di codice cui il codice appartiene e, di conseguenza, le autorizzazioni per concedere il codice.The runtime uses evidence provided by a trusted host or by the loader to determine which code groups the code belongs to and, therefore, which permissions to grant the code. Reporting ServicesReporting Servicesrispetti questa architettura di criteri di sicurezza come definito dal MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR). adheres to this security policy architecture as defined by the MicrosoftMicrosoft .NET Framework.NET Framework common language runtime (CLR). Nelle sezioni seguenti vengono descritti i diversi tipi di codice in Reporting ServicesReporting Services e le regole dei criteri associate.The following sections describe the various types of code in Reporting ServicesReporting Services and the policy rules associated with them.

Assembly del server di reportReport Server Assemblies

Gli assembly del server di report contengono codice incluso nel prodotto Reporting ServicesReporting Services.Report server assemblies are those that contain code that is part of the Reporting ServicesReporting Services product. Reporting ServicesReporting Services viene scritto usando assembly del codice gestito. Tutti questi assembly hanno un nome sicuro, ossia sono firmati digitalmente. is written using managed code assemblies; all of these assemblies are strong-named (that is, digitally signed). I gruppi di codice per questi assembly vengono definiti utilizzando il StrongNameMembershipCondition, che fornisce evidenza basata sulle informazioni sulla chiave pubbliche con nome sicuro dell'assembly.The code groups for these assemblies are defined using the StrongNameMembershipCondition, which provides evidence based on public key information for the assembly's strong name. Il gruppo di codice viene concesso il FullTrust set di autorizzazioni.The code group is granted the FullTrust permission set.

Estensioni del server di report (rendering, dati, recapito e sicurezza)Report Server Extensions (Rendering, Data, Delivery, and Security)

Le estensioni del server di report sono estensioni per dati personalizzati, per il recapito, per il rendering e di sicurezza create dall'utente o da terze parti per estendere le funzionalità di Reporting ServicesReporting Services.Report server extensions are custom data, delivery, rendering, and security extensions that you or other third-parties create in order to extend the functionality of Reporting ServicesReporting Services. È necessario concedere FullTrust a queste estensioni o assembly di codice nei file di configurazione dei criteri è associato il Reporting ServicesReporting Services componente si estende.You must grant FullTrust to these extensions or assembly code in the policy configuration files associated with the Reporting ServicesReporting Services component you are extending. Le estensioni fornite come parte di Reporting ServicesReporting Services vengono firmati con la chiave pubblica del server di report e ricevere la FullTrust set di autorizzazioni.Extensions shipped as a part of Reporting ServicesReporting Services are signed with the report server public key and receive the FullTrust permission set.

Importante

È necessario modificare il Reporting ServicesReporting Services file di configurazione di criteri per consentire FullTrust per tutte le estensioni di terze parti.You must modify the Reporting ServicesReporting Services policy configuration files to allow FullTrust for any third-party extensions. Se non si aggiunge un gruppo di codice con FullTrust per le estensioni personalizzate, non possono essere utilizzate dal server di report.If you do not add a code group with FullTrust for your custom extensions, they cannot be used by the report server.

Per ulteriori informazioni sui file di configurazione dei criteri in Reporting ServicesReporting Services, vedere tramite Reporting Services Security Policy Files.For more information about the policy configuration files in Reporting ServicesReporting Services, see Using Reporting Services Security Policy Files.

Espressioni usate nei reportExpressions Used in Reports

Le espressioni di report sono espressioni di codice inline o metodi definiti dall'utente contenuti all'interno di codice elemento di un file di report definition language.Report expressions are inline code expressions or user-defined methods contained within the Code element of a report definition language file. Un gruppo di codice che è già configurata nei file di criteri che concede a tali espressioni il esecuzione autorizzazione impostata per impostazione predefinita.There is a code group that is already configured in the policy files that grants these expressions the Execution permission set by default. Il gruppo di codice è analogo al seguente:The code group looks like the following:

<CodeGroup  
   class="UnionCodeGroup"  
   version="1"  
   PermissionSetName="Execution"  
   Name="Report_Expressions_Default_Permissions"  
   Description="This code group grants default permissions for code in report expressions and Code element. ">  
    <IMembershipCondition  
       class="StrongNameMembershipCondition"  
       version="1"  
       PublicKeyBlob="002400..."  
    />  
</CodeGroup>  

Esecuzione autorizzazioni consente di eseguire codice (esecuzione), ma non per usare risorse protette.Execution permission allows code to run (execute), but not to use protected resources. Tutte le espressioni presenti all'interno di un report vengono compilate in un assembly (denominato assembly "delle espressioni") archiviato come parte del report compilato.All expressions found within a report are compiled into an assembly (called an "expression host" assembly) that is stored as a part of the compiled report. Quando il report viene eseguito, il server di report carica l'assembly delle espressioni ed effettua chiamate in tale assembly per eseguire le espressioni.When the report is executed, the report server loads the expression host assembly and makes calls into that assembly to execute expressions. Gli assembly delle espressioni vengono firmati con una chiave specifica usata per definire il gruppo di codice per tutte le espressioni.Expression host assemblies are signed with a specific key that is used to define the code group for all expression hosts.

Le espressioni del report fanno riferimento a raccolte di modelli a oggetti del report (campi, parametri e così via) ed eseguono semplici attività, ad esempio operazioni aritmetiche e di stringa.Report expressions reference report object model collections (fields, parameters, etc.) and perform simple tasks like arithmetic and string operations. Richiede solo il codice che esegue queste semplici operazioni esecuzione autorizzazione.Code that performs these simple operations only requires Execution permission. Per impostazione predefinita, i metodi definiti dall'utente nel codice elemento e qualsiasi assembly personalizzati vengono concesse esecuzione autorizzazione in Reporting ServicesReporting Services.By default, user-defined methods in the Code element and any custom assemblies are granted Execution permission in Reporting ServicesReporting Services. Di conseguenza, per la maggior parte delle espressioni, non è necessario modificare alcun file di criteri di sicurezza per la configurazione corrente.Thus, for most expressions, the current configuration does not require that you modify any security policy files. Per concedere autorizzazioni aggiuntive agli assembly delle espressioni, è necessario che un amministratore modifichi i file di configurazione dei criteri del server di report e di Progettazione report e il gruppo di codice delle espressioni del report.To grant additional permissions to expression host assemblies, an administrator needs to modify the policy configuration files of the report server and Report Designer, and change the report expressions code group. Poiché è un'impostazione globale, la modifica di autorizzazioni predefinite per le espressioni influisce su tutti i report.Because it is a global setting, changing default permissions for the expression hosts affects all reports. Per tale ragione, è consigliabile posizionare tutto il codice per cui è necessario usare sicurezza aggiuntiva in un assembly personalizzato.For this reason, it is highly recommended that you place all code that requires additional security into a custom assembly. Le autorizzazioni necessarie verranno concesse solo a tale assembly.Only this assembly will be granted the permissions you need.

Importante

Affinché sia possibile usarlo nei report, il codice che effettua chiamate ad assembly esterni oppure a risorse protette deve essere incorporato in un assembly personalizzato.Code that calls external assemblies or protected resources should be incorporated into a custom assembly for use in reports. In questo modo è possibile esercitare maggiore controllo sulle autorizzazioni richieste e asserite dal codice.Doing so gives you more control over the permissions requested and asserted by your code. Non è necessario effettuare chiamate per proteggere metodi all'interno di codice elemento.You should not make calls to secure methods within the Code element. In questo modo è necessario concedere FullTrust all'host di espressione di report e concede l'accesso di tutto il codice personalizzato completo a CLR.Doing so requires you to grant FullTrust to the report expression host and grants all custom code full access to the CLR.

Attenzione

Non concedere FullTrust al gruppo di codice per un host di espressione di report.Do not grant FullTrust to the code group for a report expression host. In caso contrario, a tutte le espressioni del report viene consentito di effettuare chiamate di sistema protette.If you do, you enable all report expressions to make protected system calls.

Assembly personalizzati cui si fa riferimento nei reportCustom Assemblies Referenced in Reports

Alcune espressioni del report possono chiamare assembly del codice di terze parti, denominati assembly personalizzati in Reporting ServicesReporting Services.Some report expressions can call third-party code assemblies, also known in Reporting ServicesReporting Services as custom assemblies. Il server di report che tali assembly per avere almeno esecuzione autorizzazione nei file di configurazione dei criteri.The report server expects these assemblies to have at least Execution permission in the policy configuration files. Per impostazione predefinita, i criteri di file forniti con Reporting ServicesReporting Services concedere esecuzione dell'autorizzazione per tutti gli assembly a partire dall'area "My Computer".By default, policy files that ship with Reporting ServicesReporting Services grant Execution permission to all assemblies starting from the 'My Computer' zone. È possibile concedere autorizzazioni aggiuntive agli assembly personalizzati in base alle proprie esigenze.You can grant additional permissions to custom assemblies as needed.

In alcuni casi, potrebbe essere necessario eseguire un'operazione che richiede autorizzazioni per il codice specifiche in un'espressione del report.In some cases, you may need to perform an operation that requires specific code permissions in a report expression. Se si verifica questa situazione, in genere un'espressione del report deve effettuare una chiamata a un metodo della libreria CLR protetto, ad esempio un metodo che esegue l'accesso ai file oppure al Registro di sistema.Typically, this means that a report expression needs to make a call to a secured CLR library method (such as one that accesses files or the system registry). Nella documentazione di .NET Framework.NET Framework vengono descritte le autorizzazioni per il codice necessarie per effettuare la chiamata protetta. Al codice che esegue quest'ultima operazione è necessario concedere tali autorizzazioni di sicurezza specifiche.The .NET Framework.NET Framework documentation describes the code permissions that are required to make this secure call; to execute the call, the calling code must be granted these specific, secure permissions. Se si effettua la chiamata da un'espressione di report o codice elemento, l'assembly delle espressioni debba essere concesse le autorizzazioni appropriate.If you make the call from a report expression or the Code element, the expression host assembly must be granted the appropriate permissions. Una volta concesse alle espressioni, tuttavia, le autorizzazioni specifiche vengono concesse a tutto il codice eseguito in tutte le espressioni di qualsiasi report.However, once you grant the expression host the permissions, all code that runs in any expression in any report is now granted that specific permission. L'esecuzione della chiamata da un assembly personalizzato cui sono state concesse le autorizzazioni specifiche è molto più sicura a livello di sicurezza.It is much more secure to make the call from a custom assembly and grant that custom assembly the specific permissions.

Vedere ancheSee Also

Sicurezza dall'accesso di codice in Reporting Services Code Access Security in Reporting Services
Proteggere Development ( Reporting Services )Secure Development (Reporting Services)