Защита веб-частей в службах SharePoint Foundation
Дата последнего изменения: 9 марта 2015 г.
Применимо к: SharePoint Foundation 2010
В этой статье
Безопасность доступа к коду
Встроенные параметры безопасности
Создание политики безопасности доступа к коду
Веб-части в Microsoft SharePoint Foundation предоставляют пользователям эффективный способ взаимодействия с другими системами. SharePoint Foundation имеет встроенные параметры безопасности для ограничения доступа веб-частей к базовым системам. Разработчик может создавать файлы настраиваемой политики безопасности, чтобы предоставить веб-частям больший доступ к базовым системам.
Веб-части также могут создаваться в для песочницы. По умолчанию для песочницы обладает ограниченным доступом к базовым системам. Это повышает безопасность и возможности мониторинга веб-части. Дополнительные сведения об изолированных решениях см. в разделе Изолированные решения.
Безопасность доступа к коду
Безопасность доступа к коду (CAS) — это политика ограничения ресурсов, которая ограничивает доступ сборки к защищенным системным ресурсам и операциям. SharePoint Foundation располагает встроенными политиками безопасности, созданными на основе встроенных политик безопасности ASP.NET. По умолчанию SharePoint Foundation использует минимальный набор разрешений, чтобы защитить сервер и базовую инфраструктуру от вредоносного кода.
Если веб-части требуется большие права доступа, чем заданные в минимальных настройках, их можно расширить несколькими способами, из которых рекомендуемым является только один. Можно создать для веб-части настраиваемую политику разграничения доступа кода либо повысить общий уровень доверия фермы серверов в файле web.config. Такой способ представляет риск для системы безопасности, поэтому использовать его не рекомендуется. Дополнительные сведения о развертывании см. в статье Развертывание веб-частей в SharePoint Foundation.
Встроенные параметры безопасности
По умолчанию SharePoint Foundation является приложением с частичным доверием. SharePoint Foundation не только может использовать встроенные уровни доверия ASP.NET, но и определяет свои собственные.
WSS_UserCode
WSS_Minimal
WSS_Medium
Эти уровни доверия расширяют уровни доверия ASP.NET для их использования с SharePoint Foundation. Уровни доверия определяются в файлах политики, которые хранятся в файловой системе каждого веб-сервера.
Важно! По умолчанию встроенные файлы политики SharePoint Foundation в SharePoint Foundation с именами wss_usercode.config, wss_minimaltrust.config и wss_mediumtrust.config находятся в каталоге %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\CONFIG.
По умолчанию SharePoint Foundation применяет к виртуальному серверу уровень доверия WSS_Minimal. Этот уровень доверия предоставляет все разрешения в доверии Minimal ASP.NET, а также подключения веб-частей. Политика WSS_Minimal ограничивает веб-часть от доступа ко многим ресурсам для дополнительных операций, включая операции объектной модели и файлов.
Уровень доверия WSS_Medium предоставляет больший доступ к среде. Кроме того, WSS_Medium позволяет обращаться к операциям объектной модели и файлов SharePoint Foundation, включая чтение, запись, добавление и распознавание пути. Этот уровень доверия также обеспечивает доступ к переменным среды.
В приведенной ниже таблице перечислены конкретные разрешения, предоставляемые файлами политики WSS_Medium, WSS_Minimal и WSS_UserCode в среде ASP.NET 2.0.
Разрешение |
WSS_Medium Уровень доверия |
WSS_Minimal Уровень доверия |
WSS_UserCode (изолированные решения) Уровень доверия |
---|---|---|---|
Средний |
Минимальный |
Минимальный |
|
Unrestricted="True" |
Отсутствует |
Отсутствует |
|
Read="TEMP; TMP;USERNAME;OS;COMPUTERNAME" |
Отсутствует |
Отсутствует |
|
Read, Write, Append, PathDiscovery, Application Directory |
Отсутствует |
Отсутствует |
|
AssemblyIsolationByUser, Unrestricted UserQuota |
Отсутствует |
Отсутствует |
|
Печать по умолчанию |
Отсутствует |
Отсутствует |
|
Assertion, Execution, ControlThread, ControlPrincipal, RemotingConfiguration |
Выполнение |
Выполнение |
|
ObjectModel="True" |
Отсутствует |
ObjectModel="True", UnsafeSaveOnGet="True" |
|
Access="Connect" |
Отсутствует |
Отсутствует |
|
Unrestricted="true" |
Отсутствует |
Отсутствует |
|
Connections="True" |
Connections="True" |
Отсутствует |
|
Подключение к исходному узлу (если настроено) |
Отсутствует |
Отсутствует |
Примечание |
---|
Дополнительные сведения о безопасности доступа к коду см. в статьях Использование безопасности доступа к коду с ASP.NET и Рекомендации по безопасности для .NET Framework 2.0 (Возможно, на английском языке). |
Создание политики безопасности доступа к коду
В SharePoint Foundation предусмотрена возможность развертывания вместе с решением файла политики разграничения доступа кода. Рекомендуется использовать разрешения для изолированных решений, приведенные в файле wss_usercode.config, однако также можно создать для веб-частей собственные разрешения и использовать для развертывания SharePoint Foundation.
В следующем примере кода показана базовая структура файла политики CAS в пакете решений SharePoint Foundation.
<CodeAccessSecurity>
<PolicyItem>
<PermissionSet
class="NamedPermissionSet"
version="1"
Description="Permission set for custom test WebParts">
<IPermission
class="AspNetHostingPermission"
version="1"
Level="Minimal"
/>
<IPermission
class="SecurityPermission"
version="1"
Flags="Execution"
/>
<IPermission
class="Microsoft.SharePoint.Security.SharePointPermission,
Microsoft.SharePoint.Security, version=11.0.0.0,
Culture=neutral, PublicKeyToken=71e9bce111e9429c"
version="1"
ObjectModel="True"
/>
<IPermission
class="System.Net.WebPermission, System,
version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089" version="1">
<ConnectAccess>
<URI uri="https?://.*" />
</ConnectAccess>
</IPermission>
<IPermission
class="System.Security.Permissions.SecurityPermission,
mscorlib, version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
version="1"
Flags="ControlThread, UnmanagedCode"
/>
<IPermission
class="System.Security.Permissions.EnvironmentPermission,
mscorlib, version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
version="1"
Read="UserName"
/>
</PermissionSet>
<Assemblies>
<Assembly PublicKeyBlob=PublicKeyBlob />
</Assemblies>
</PolicyItem>
</CodeAccessSecurity>
В следующем списке представлены основные рекомендации, применимые при использовании раздела <CodeAccessSecurity> в манифесте решения.
В каждом манифесте решения может находиться только один раздел <CodeAccessSecurity>.
Может существовать несколько узлов <PolicyItem>.
Каждый узел <PolicyItem> может содержать только один узел <PermissionSet>.
Каждый узел <PolicyItem> может содержать только один узел <Assemblies>.
Каждый узел <PermissionSet> может содержать несколько узлов <IPermission>.
Узел <Assemblies> может содержать несколько узлов <Assembly>.
Дополнительные сведения о схеме области <CodeAccessSecurity> см. в статье Элемент CodeAccessSecurity (Solution).
При развертывании решения с помощью настраиваемой политики CAS необходимо использовать параметр -CASPolicies с SharePoint. Команда выглядит следующим образом:
Install-SPSolution –Identity <insert name> -CASPolicies <true/false>
См. также
Другие ресурсы
Использование безопасности доступа к коду с ASP.NET (Возможно, на английском языке)