Рекомендации по безопасности расширений
Все приложения, предназначенные для работы в среде CLR, должны взаимодействовать с системой безопасности этой среды. Такое приложение после вызова на выполнение автоматически проверяется средой CLR и получает от CLR набор разрешений. В зависимости от полученных разрешений приложение либо продолжает свою работу, либо вырабатывает исключение безопасности. Разрешения для кода, получаемые сборкой, определяются локальными параметрами безопасности и политиками в файлах конфигурации политики безопасности для конкретного сервера отчетов.
Прежде чем запрашивать разрешения, необходимо определить, какие ресурсы и защищенные операции намечено использовать в коде модуля, а также знать о том, какие разрешения применяются для защиты этих ресурсов и операций. Кроме того, необходимо следить за всеми ресурсами, доступ к которым получают любые методы библиотеки классов, вызываемые компонентами модуля. Дополнительные сведения см. в разделе "Запрос на разрешения" руководства разработчика по .NET Framework.
Модули, развернутые на сервере отчетов, должны использоваться как полностью доверенные, а это означает, что модуль должен входить в состав группы кода, которой предоставлен набор разрешений FullTrust. Это также означает, что модуль может иметь доступ к определенным ресурсам и операциям сервера, предоставляемым средой CLR, в зависимости от того, какой пользователь прошел проверку подлинности для работы с конкретным отчетом. Дополнительные сведения о группах кода и расширениях см. в разделе "Безопасность доступа к коду" в службах Reporting Services.
Важно!
Reporting Services применяет безопасность платформы .NET Framework для всех расширений.
При развертывании модулей обработки данных, доставки, подготовки к отображению и безопасности в Reporting Services должны соблюдаться следующие условия.
Разрешение на развертывание модуля имеет только местный администратор.
Файлы конфигурации для расширяемого Reporting Services могут изменять только пользователи с соответствующими разрешениями на чтение и запись.
Изменять файлы политики безопасности и включать управление доступом для модуля разрешается только привилегированным пользователям.
Дополнительные сведения об управлении доступом для кода в Reporting Services см. в статье Разработка безопасных приложений (службы Reporting Services).
Дополнительные сведения о средствах безопасности .NET Framework см. в разделе "Безопасность .NET Framework" руководства разработчика по .NET Framework.
Инициализация сборок расширения
При первоначальной загрузке сервером отчетов модулей в память в них используются учетные данные этой службы, поскольку некоторым сборкам модулей требуются специальные разрешения для доступа к системным ресурсам, чтения файлов конфигурации и загрузки других, зависимых сборок. Но после загрузки и инициализации сборки все последующие вызовы сборок модуля осуществляются с использованием учетных данных пользователя, который в данный момент зарегистрирован в системе.