Настройка и развертывание безопасных веб-частей на сервере (Windows SharePoint Services)

В комплект Windows SharePoint Services 3.0 входит набор веб-частей, которые администраторы сайта могут добавлять на страницах веб-частей после установки продукта. Однако организации могут понадобиться настраиваемые веб-части. В этом случае разработчик создает в ASP.NET 2.0 веб-части в соответствии с требованиями заказчика и предлагает установить их в развертывании Службы Windows SharePoint Services.

В Службы Windows SharePoint Services используются некоторые параметры управления конфигурацией Microsoft .NET Framework. Некоторые из них хранятся в файлах конфигурации XML и предоставляют широкий диапазон параметров, позволяющих администраторам серверов управлять веб-приложением и его средой. Дополнительные сведения о файлах конфигурации ASP.NET 2.0 см. в статье Сведения о файлах Machine.Config и Web.Config (https://go.microsoft.com/fwlink/?linkid=103450&clcid=0x419) в разделе "Обеспечение безопасности приложений и веб-служб ASP.NET", которая доступна в библиотеке MSDN в сети.

Параметры конфигурации

Системные администраторы могут развертывать веб-части ASP.NET 2.0 в развертывании Службы Windows SharePoint Services в одном из двух местоположений:

  • Каталог bin   Хранится в корневом каталоге веб-приложения.

  • Глобальный кэш сборок   Все стандартные веб-части автоматически устанавливаются с использованием среды CLR пакета .NET Framework. Сохранение в глобальном кэше сборок позволяет обеспечить нескольким приложениям общий доступ к веб-частям. Обычно компоненты хранятся в папке C:\WINNT\Assembly.

У каждого местоположения есть свои преимущества и недостатки, описанные в следующей таблице.

Место развертывания Достоинства Недостатки

Каталог bin

Частично доверенное местоположение. По умолчанию код, запущенный из этой папки, имеет низкий уровень разрешений на доступ к коду. Администратор должен в явной форме повысить уровень разрешений веб-части для обеспечения ее нормальной работы. Из-за этого уровня контроля и глубокой защиты администраторы предпочитают запускать сборки в каталоге bin, с известным набором требуемых разрешений на доступ к коду.

Кроме того, каталог bin относится к конкретному приложению. Это позволяет изолировать код для определенного веб-приложения.

Чтобы запускать веб-часть в любом приложении, необходимо развернуть сборку корзины.

Глобальный кэш сборок

Глобальное местоположение, где можно развернуть подписанные сборки. По умолчанию сборки запускаются с полным доверием. Они устанавливаются глобально и работают в любом веб-приложении.

Обычно для кода, установленного в глобальном кэше сборок, отсутствуют ограничения системы безопасности на доступ к коду; следовательно, теряется преимущество глубокой защиты.

Кроме того, могут возникнуть проблемы с развертыванием файлов базы данных программы (.pdb) для сборок в глобальном кэше сборок.

Настройка специальных атрибутов безопасности

На веб-части ASP.NET 2.0, хранящихся в каталоге bin, накладываются определенные ограничения по безопасности. Для веб-части можно при желании настроить специальные атрибуты безопасности, в зависимости от запланированного использования.

Каталог bin — это частично доверенное местоположение. Следовательно, при выполнении веб-части она не предоставляет коду разрешения "Полное доверие" автоматически. Поскольку код, обращающийся к веб-части, получает только разрешения "Частичное доверие", разработчик должен для веб-части ASP.NET 2.0 задать атрибут AllowPartiallyTrustedCallers.

Примечание

Если компонент с помощью атрибута AllowPartiallyTrustedCallers помечен как безопасный, ответственность за безопасность внедрения ложится на разработчика.

По умолчанию установлен очень низкий уровень разрешений системы безопасности на доступ к коду для каталога bin: разрешено только чистое выполнение. Для нормальной работы сборки практически наверняка придется повысить этот уровень.

Можно повысить уровень разрешений двумя способами:

  • Создайте файл политики доверия и укажите этот новый файл в файле Web.config. Этот вариант сложнее, но он позволяет более точно настроить разрешения для веб-частей. Подробнее о файлах политики доверия см. в статье Microsoft Windows SharePoint Services и обеспечение безопасности при доступе к коду (https://go.microsoft.com/fwlink/?linkid=103436&clcid=0x419) в библиотеке MSDN в сети (рекомендуемый способ).

  • Поднимите общий уровень доверия каталога bin. Найдите в файле Web.config, расположенном в корневом каталоге приложения, элемент trust. Значение атрибута level элемента trust по умолчанию: WSS_Minimal. Этот уровень можно заменить на WSS_Medium. Этот вариант проще, но он произвольно предоставляет новые разрешения, которые, возможно, не требуются, и к тому же не так безопасен, как создание файла политики безопасности.

Список безопасных элементов управления

Фундаментальная предпосылка продуктов и технологий SharePoint состоит в том, что пользователи, не являющиеся доверенными, могут загружать и создавать страницы .aspx в системе, где работает Службы Windows SharePoint Services. Этим пользователям необходимо запретить добавлять серверный код на страницы .aspx, но необходимо создать список утвержденных элементов управления, которые они могут использовать. В Службы Windows SharePoint Services они содержатся в списке безопасных элементов управления.

В этом списке перечислены элементы управления и веб-части, относящиеся к сайту SharePoint, которые администраторы сервера могут назвать безопасными для вызова на любых страницах .aspx в пределах сайта. Этот список хранится в файле Web.config корневого каталога веб-приложения.

Требования к задачам

Для выполнения процедур этой задачи необходимо следующее.

  • Привилегии администратора на сервере, где установлены службы Microsoft Windows SharePoint Services 3.0.

Для настройки и развертывания безопасных веб-частей на сервере можно выполнить процедуры в следующих разделах.