Udostępnij za pośrednictwem


Understanding Security Policies

Każdy kod, który jest wykonywany przez serwer raportów, musi być częścią zasadę zabezpieczeń konkretnego kodu dostępu.Te zasady zabezpieczeń składa się z grup kodów mapujące dowodów zestaw nazwane uprawnienia zestaw s.Często grup kodów są skojarzone z zestaw uprawnień o nazwie, który określa uprawnienia dozwoloną dla kodu w tej grupie.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 Services adheres to this security policy architecture as defined by the Microsoft .NET Framework common language runtime (CLR).W poniższych sekcjach opisano różne typy kodu w Reporting Services i reguły zasad związanych z nimi.

Zestawy serwer raportów

Report server assemblies are those that contain code that is part of the Reporting Services product.Reporting Services is written using managed code assemblies; all of these assemblies are strong-named (that is, digitally signed).Kod grupy dla tych zestawów są definiowane przy użyciu StrongNameMembershipCondition, który dostarcza dowodów oparte na publicznym najważniejsze informacje dla tego wirtualny plik dziennika silnej nazwy.Grupa kodów przyznaje się FullTrust zestaw uprawnień.

serwer raportów Rozszerzeń (renderowania, data, dostarczania i zabezpieczeń)

serwer raportów rozszerzenia są niestandardowego rozszerzenia danych, dostawy, renderowania i zabezpieczeń, które lub innych stron trzecich utworzyć w celu rozszerzenia funkcjonalności Reporting Services. Administrator musi udzielić FullTrust te rozszerzenia lub wirtualny plik dziennika kodu w plikach konfiguracja zasad, które są skojarzone z Reporting Services składnik, który są rozszerzenia. Rozszerzenia dostarczane jako część Reporting Services są podpisane za pomocą klucz publicznego serwer raportów i odbierać FullTrust zestaw uprawnień.

Important noteImportant Note:

Należy zmodyfikować Reporting Services zasady konfiguracja plików, aby umożliwić FullTrust na wszystkie rozszerzenia innej firmy.Po dodaniu grupy kodu z FullTrust użytkownika rozszerzeń niestandardowych, nie można ich używać przez serwer raportów.

Aby uzyskać więcej informacji na temat plików konfiguracyjnych zasad w Reporting Services, zobacz Using Reporting Services Security Policy Files.

Wyrażenia używane w raportach

Raport wyrażenia są wbudowane kod wyrażeń lub metody zdefiniowane przez użytkownika, znajdujących się w Kod element plik definicja raportu Language.Brak kodu grupy, która jest już skonfigurowany w plikach zasad udziela tych wyrażeń Wykonanie uprawnienia ustawiane domyślnie.Grupa kodów wygląda następująco:

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

wykonać uprawnienie pozwala na uruchomienie kodu (wykonaj), ale nie do używania chronionych zasobów.Wszystkie wyrażenie można znaleźć w raporcie są kompilowane w zestawie (o nazwie "host wyrażenie" wirtualny plik dziennika) przechowywane jako część skompilowany raport.Podczas wykonywania raportu serwer raportów ładuje wirtualny plik dziennika hosta wyrażenie i wykonywania wywołań do tego wirtualny plik dziennika do wykonywania wyrażenie.Wyrażenie zestawów hosta są podpisane przy użyciu określonego klucz używanego do zdefiniowania grupy kod dla wszystkich hostów wyrażenia.

Wyrażenia raportu odwołania raportu obiekt modelu kolekcji (pola, parametry, itp.) i wykonywanie prostych zadań, takich jak operacje arytmetyczne i ciąg znaków.Wymaga tylko kod wykonujący operacje te proste Wykonanie uprawnień.Domyślnie, metody zdefiniowanej przez użytkownika w Kod udzielono element i wszystkie niestandardowe zestawyWykonanie uprawnieniaReporting Services. W ten sposób dla większości wyrażeń bieżącej konfiguracja nie wymaga zmodyfikowania wszystkich plików zasad zabezpieczeń.Aby udzielić dodatkowe uprawnienia do zestawów hosta wyrażenie, administrator musi zmodyfikować pliki zasad konfiguracja serwera raportowania i Projektant raportów i zmienić grupę kodów wyrażenie raportu.Ponieważ jest to ustawienie globalne, zmiana uprawnień domyślnych dla hostów wyrażenie ma wpływ na wszystkie raporty.Z tego powodu stanowczo zaleca się umieszczenie wszystkich kod, który wymaga dodatkowych zabezpieczeń do niestandardowego wirtualny plik dziennika.Uprawnienia należy zostanie udzielony tylko tego wirtualny plik dziennika.

Security noteSecurity Note:

Kod, który wywołuje zewnętrznych zespołów lub chronionych zasobów powinny być włączone do wirtualny plik dziennika niestandardowych do użytku w raportach.Wykonanie tej czynności daje większą kontrolę nad uprawnienia wymagane i potwierdzone przez kod.Nie należy wprowadzać połączeń w celu zabezpieczenia metod w Kod element.Wykonanie tej czynności wymaga udzielenia FullTrust raportu wyrażenie hosta i dotacji cały kod niestandardowy pełny dostęp do środowiska CLR.

Ostrzeżenie

Nie należy udzielać FullTrust grupę kodów hosta wyrażenie raportu.W takim wypadku można włączyć wszystkie wyrażenia raportu do wykonywania wywołań chronionego systemu.

Niestandardowe zestawy, do którego prowadzi odwołanie, w raportach

Niektóre wyrażenia raporcie mogą wywoływać zestawów zawierających kod innej firmy, znane także w Reporting Services jak zestawów niestandardowych. Te zestawy co najmniej oczekuje serwer raportów Wykonanie uprawnienia w plikach konfiguracja zasad.Domyślnie pliki zasad, które są dostarczane z Reporting Services Udziel Wykonanie uprawnienia do wszystkich zestawów, począwszy od strefy "Mój komputer".W razie potrzeby może udzielić im dodatkowe uprawnienia do zestawów niestandardowych.

W niektórych przypadkach należy wykonać operację, która wymaga uprawnień kod określony w wyrażeniu raportu.Zazwyczaj oznacza to, wyrażenie raportu trzeba zadzwonić do bezpiecznego środowiska CLR biblioteki metoda (na przykład taką, która uzyskuje dostęp do plików lub rejestrze systemu).The .NET Framework documentation describes the code permissions that are required to make this secure call; to wykonać the call, the calling code must be granted these specific, secure permissions. Jeśli dokonuje się wywołanie z wyrażenia raportu lub Kod element wyrażenie wirtualny plik dziennika hostów należy udzielić odpowiednich uprawnień. Jednak po hosta wyrażenie udzielić uprawnień, cały kod uruchomiony w dowolnym wyrażeniem w dowolnym raporcie jest teraz uprawnienie to określone.Jest znacznie bardziej bezpieczne rozmowę z niestandardowego wirtualny plik dziennika i udzielić określonych uprawnień tego wirtualny plik dziennika niestandardowych.