Модель безопасности для шаблонов форм с управляемым кодом
Шаблоны форм InfoPath с управляемым кодом поддерживают такие же уровни безопасности, как и сценарий, выполняющийся в неуправляемых шаблонах форм. Они также поддерживают дополнительные возможности доступа к коду, которые применяются к управляемому коду, работающему в среде CLR платформы .NET Framework.
Уровни безопасности объектной модели InfoPath с управляемым кодом
В следующей таблице описаны соотношения различных уровней безопасности для элементов объектной модели сценария, а также соответствующий набор разрешений, необходимый для каждого уровня при использовании элемента объектной модели в шаблоне формы с управляемым кодом.
Уровень безопасности объектной модели | Описание | Необходимый набор разрешений |
---|---|---|
0 |
Доступ возможен без ограничений. |
Отсутствует |
2 |
Доступ возможен только от форм, запущенных на том же домене, что и открытая в данный момент форма, либо от форм, которым были присвоены междоменные разрешения. |
Отсутствует |
3 |
Доступ возможен только от форм с полным доверием. |
FullTrust |
Заметка |
---|
Уровень безопасности "1" не используется текущим сервером COM приложения InfoPath и зарезервирован для использования в будущем. |
Внимание! |
---|
Несмотря на то, что уровни 0 и 2 в объектной модели не требуют какого-либо набора разрешений, поскольку содержат управляемый код, они рассматриваются как определенные на уровне безопасности "Домен" для доступа к доменам, как описано в следующем разделе. |
Уровень безопасности каждого элемента объектной подели, предоставляемого сборками Microsoft.Office.InfoPath и Microsoft.Office.Interop.InfoPath.SemiTrust, указан в разделе "Заметки" темы с документацией по этому элементу в пространствах имен Microsoft.Office.InfoPath and Microsoft.Office.Interop.InfoPath.SemiTrust.
Уровни безопасности доступа к доменам InfoPath
В сочетании с уровнями безопасности объектной модели, которые применяются сервером COM, предоставляемым приложением InfoPath, в приложении InfoPath также определяются три уровня безопасности, которые применяются в зависимости от местоположения шаблона формы, метода развертывания формы и параметров, настроенных в режиме конструктора. Эти три уровня безопасности описаны в следующей таблице.
Уровень безопасности доступа к доменам | Описание |
---|---|
Ограниченный |
Полностью запрещает внешние связи шаблона формы. Этот уровень безопасности призван предотвратить любую возможную передачу данных вредоносными формами от текущего компьютера к злоумышленнику. При запуске в этом режиме безопасности не будут работать следующие возможности: настраиваемая область задач, подключения данных (за исключением отправки по электронной почте), элементы управления ActiveX, код форм с управляемым кодом, роли и рабочий процесс. Шаблоны форм с управляемым кодом невозможно запустить на домене с ограниченным доступом. Если для шаблона формы с управляемым кодом установлен параметр Автоматически определять уровень безопасности в категории Безопасность и доверие диалогового окна Параметры формы, шаблону формы для запуска кода всегда будет необходим как минимум уровень доступа безопасности доступа к доменам.
Внимание!
Сборка управляемого кода, созданная для шаблона формы с управляемым кодом, не будет загружаться и запускаться при открытии формы из домена с ограниченным доступом, например, из формы InfoPath, отправляемой в качестве вложения электронной почты. Любой шаблон формы, который требуется развернуть в качестве вложения электронной почты, должен не использовать вышеперечисленные возможности. А в случае, если шаблон формы содержит код формы, то этот код следует внедрить в сценарий JScript или VBScript, а применяемые в нем элементы объектной модели должны использовать уровень безопасности 0 (нуль).
|
Домен |
Ограничивает форму на основе ее размещения в одной из зон безопасности, указанных приложением Microsoft Internet Explorer. Например, если форма расположена в зоне "Местная интрасеть", то ей разрешено связываться с другими данными вне исходного домена, но не разрешено получать данные из других доменов. Размещение в зоне безопасности Microsoft Internet Explorer также определяет разрешение на запуск элементов управления ActiveX, отмеченных как небезопасные для сценариев. |
Полное доверие |
Позволяет запускать форму с полным доверием на том компьютере, где будет использоваться форма. Этот уровень безопасности можно использовать только при работе с формами, имеющими цифровую подпись, соответствующую надежному корневому издателю на данном компьютере, либо при создании программы установки, которая устанавливает форму и задает для атрибута requireFullTrust элемента xDocumentClass значение "yes" в файле определения формы (.xsf). Используя этот параметр, форма может получать доступ к объектной модели, вызывающей необходимый уровень безопасности объектной модели 3, в частности, свойства и методы, использующие доступ к файловой системе. Также при этом можно отключить определенные запросы безопасности, которые выводятся при запуске на более ограниченном уровне безопасности. |
По умолчанию форма InfoPath настроена на автоматический выбор уровня безопасности "Ограниченный" или "Домен", в зависимости от возможностей, используемых в шаблоне формы, а также от расположения и метода развертывания шаблона формы. Например, шаблон формы, развернутый в качестве вложения электронной почты, автоматически настраивается на уровень безопасности "Ограниченный". Параметр безопасности всегда ограничивается максимально, начиная с уровня "Ограниченный" для обеспечения наибольшей защиты компьютера и данных. Если шаблон формы, содержащий управляемый код, настраивается на автоматический выбор уровня безопасности, то этому шаблону формы всегда будет требоваться для запуска кода уровень безопасности не ниже значения "Домен". Этот параметр можно переопределить вручную во время разработки путем выбора уровня безопасности, более соответствующего форме. Для этого следует воспользоваться следующей процедурой.
Указание уровня безопасности формы
В меню Сервис выберите пункт Параметры формы.
В диалоговом окне Параметры формы выберите вкладку Безопасность.
Снимите флажок Автоматически определять уровень безопасности на основе структуры формы.
Выберите необходимый уровень безопасности.
Примечания
Если для шаблона формы с управляемым кодом выбрать уровень безопасности Ограниченный, то код формы не будет загружаться и запускаться независимо от того, какие элементы объектной модели используются в этом коде. Данный уровень безопасности в первую очередь предназначен для форм InfoPath, развертываемых с помощью электронной почты.
Если выбрать уровень безопасности Полное доверие, то необходимо поставить цифровую подпись или установить и зарегистрировать формы. Дополнительные сведения см. в статье Практическое руководство. Развертывание проектов InfoPath.
В следующей таблице содержатся обобщенные сведения о модели безопасности InfoPath. В первом столбце перечислены уровни, указываемые или требующиеся для формы. Во втором и третьем столбцах указывается наличие идентификатора URN или URL для расположения формы. В остальных столбцах указываются объекты, запуск которых разрешен. Дополнительные сведения о сценариях развертывания и наборах разрешений для шаблонов форм с управляемым кодом см. в разделе "Функции безопасности для доступа к коду в среде CLR" далее в этой теме.
Уровень, необходимый для формы | Наличие идентификатора URN | Наличие идентификатора URL | Отметка небезопасности ActiveX для сценариев | Междоменный доступ | Управляемый код | Безопасность объектной модели |
---|---|---|---|---|---|---|
Ограниченный |
X |
Нет ActiveX для всех |
Отменить |
Ферма загружается, но управляемый код не запускается |
0 |
|
Домен (Зона Ограниченные узлы в Internet Explorer) |
Не запускается для всех |
Не запускается для всех |
Не запускается для всех |
Не запускается для всех |
Не запускается для всех |
Не запускается для всех |
Домен (зона Интернет в Internet Explorer) |
X |
Ошибка |
Ошибка |
Не запускается для всех |
0 |
|
Домен (зона Местная интрасеть Internet Explorer) |
X |
Ошибка |
Запрос |
Управляемый код запускается с разрешениями Местная интрасеть. |
2 |
|
Домен (зона Надежные узлы в Internet Explorer) |
X |
Запрос |
ОК |
Управляемый код запускается с разрешениями Интернет. Междоменный доступ разрешен. Обратите внимание, что даже если форма находится в зоне Надежные узлы, то применяются разрешения зоны Интернет. |
2 |
|
Домен (зона Локальный компьютер в Internet Explorer) |
X |
X |
Запрос |
Ошибка |
Управляемый код запускается с разрешениями Местная интрасеть. |
2 |
Полное доверие |
X |
X |
ОК |
ОК |
Полное доверие |
3 |
Внимание! |
---|
Приведенные выше описания в столбцах "Отметка небезопасности ActiveX для сценариев" и "Междоменный доступ" предполагают использование параметров безопасности Microsoft Internet Explorer по умолчанию. Если пользователь изменяет эти параметры безопасности, то поведение InfoPath изменится соответствующим образом. Например, если в зоне Местная интрасеть для параметра Доступ к источникам данных за пределами домен установлено значение Включить, то пользователи не будут получать запрос на разрешение междоменного доступа, указанный в таблице. |
Функции безопасности для доступа к коду в среде CLR
При компиляции шаблона формы InfoPath с управляемым кодом создается частная сборка с управляемым кодом, в которой содержится реализация логики кода формы.
На платформе .NET Framework сборка управляемого кода по умолчанию получает разрешения "Полное доверие" для запуска на локальном компьютере, и не получает разрешений "Полное доверие" для запуска в интрасети. Чтобы обеспечить более точный контроль над политикой безопасности и предоставить возможность запуска шаблонов форм InfoPath с управляемым кодом как полностью доверенных форм из интрасети, приложение InfoPath внедряет следующую архитектуру безопасности.
Приложение InfoPath использует среду CLR для платформы .NET Framework.
В используемой InfoPath среде CLR каждый шаблон формы с управляемым кодом запускается на отдельном домене приложения, который представляет собой среду, обеспечивающую границы изоляции, выгрузки и безопасности для исполнения управляемого кода.
Приложение InfoPath устанавливает на домене приложения политику безопасности по умолчанию в зависимости от уровня надежности, связанного с шаблоном формы и URL-адресом его расположения.
По умолчанию шаблон формы с управляемым кодом, запускающаяся на локальном компьютере (группа кода зоны "Мой компьютер"), получает разрешения ниже уровня "Полное доверие" (разрешения зоны "Местная интрасеть"). Для получения разрешений "Полного доверие" форму необходимо зарегистрировать или подписать цифровой подписью с доверенного сертификата.
Набор политик безопасности, используемый по умолчанию на домене приложения для шаблона формы с управляемым кодом, обеспечивает применение уровней безопасности для доступа к доменам InfoPath, а также любых дополнительных ограничений безопасности .NET. Чтобы обеспечить дополнительную гибкость, система безопасности InfoPath опознает группу кода безопасности "Шаблоны форм InfoPath" для доступа к коду .NET. Если эта группа кода присутствует на компьютере пользователя, то конфигурация безопасности и все возможные дочерние группы кода в рамках этой конфигурации будут применены к домену приложения.
Внимание!
Группа кода "Шаблоны форм InfoPath" применяется только непосредственно к сборке кода формы с управляемым кодом. Соответственно, если предоставить набор разрешений "Полное доверие" для кода формы InfoPath с управляемым кодом без установки и регистрации (или цифровой подписи) самого шаблона формы (что обеспечивает полное доверие для всего шаблона формы), то вызовы элементов объектной модели с уровнем безопасности 3 будут по-прежнему выдавать ошибки в коде формы.
Если используется ссылка или явная загрузка (Assembly.Load) сборки, настроенная с помощью ограниченного набора разрешений и использующая свидетельство хеша, строгого имени или издателя для определения состояния членства сборки в проекте шаблона формы, то сборка, тем не менее, будет загружена и выполнена шаблоном формы.
Сведения о создании и настройке группы кода "Шаблоны форм InfoPath" см. в статье Практическое руководство. Настройка параметров безопасности для шаблонов форм с управляемым кодом.
В следующей таблице приведены обобщенные сведения о сценариях развертывания и наборах разрешений, применяемы к шаблонам форм с управляемым кодом.
Сценарий развертывания | Набор разрешений | Примечание |
---|---|---|
Шаблон форм публикуется на локальном компьютере, а разработчик использует Visual Studio для написания и отладки кода формы. |
Набор разрешений "Местная интрасеть". Сборки, установленные в глобальном кэше сборок (GAC) и отмеченные атрибутом AllowPartiallyTrustedCallersAttribute, получают набор разрешений "Полное доверие". |
По умолчанию шаблоны форм, запускаемые с локального компьютера, не получают набор разрешений "Полное доверие". При разработке шаблонов форм, использующих возможности объектной модели и вызывающих ее элементы, требующие разрешений "Полное доверие ", можно воспользоваться процедурой, описанной в статье Практическое руководство. Просмотр и отладка шаблонов форм с управляемым кодом, требующих полного доверия. |
Шаблон формы публикуется на локальном компьютере и указывает ссылку на пользовательскую сборку, которой на этом локальном компьютере требуется набор разрешений "Полное доверие". |
Набор разрешений "Местная интрасеть". Сборки, установленные в глобальном кэше сборок (GAC) и отмеченные атрибутом AllowPartiallyTrustedCallersAttribute, получают набор разрешений "Полное доверие". Пользовательская сборка получает набор разрешений "Местная интрасеть". |
Чтобы указать внешние сборки для использования в коде шаблона формы, разработчику необходимо воспользоваться группой кода "Шаблоны форм InfoPath" для предоставления разрешений "Полное доверие" (или соответствующего набора разрешений) для внешней сборки, указанной в коде шаблона формы. Приложение InfoPath не применяет никаких исходных условий для внешних сборок, отличных от установленных в глобальном кэше сборок (GAC). Разработчик должен явным образом предоставить сборке необходимые разрешения с помощью группы кода "Шаблоны форм InfoPath", даже если сборка уже является доверенной благодаря разрешениям, предоставленным в группе кода "My_Computer_Zone". |
Шаблон форму публикуется в общем расположении местной интрасети, например, в файловом хранилище, в библиотеке форм SharePoint или на веб-сервере. |
Набор разрешений "Местная интрасеть". Сборки, установленные в глобальном кэше сборок (GAC) и отмеченные атрибутом AllowPartiallyTrustedCallersAttribute, получают набор разрешений "Полное доверие". |
|
Шаблон формы публикуется в общем расположении местной интрасети, например, в файловом хранилище, в библиотеке форм SharePoint или на веб-сервере, обозначенном как надежный узел в Internet Explorer. |
Набор разрешений "Интернет". Сборки, подписанные компаниями Microsoft и ECMA, получают набор разрешений "Полный доступ". |
Безопасность доступа к коду CLR обеспечивает только набор разрешений "Интернет" к узлам, обозначенным как надежные в Internet Explorer. Приложение InfoPath соблюдает эту политику. Обратите внимание, что данная схема отличается от схемы для шаблонов форм InfoPath, использующих сценарий для кода формы, где при публикации в зоне "Надежные узлы" предоставляется более высокий уровень разрешений. |
Шаблон формы загружается или копируется с веб-узла. |
По умолчанию нет. Сборка управляемого кода для шаблона формы не загружается и не запускается. |
См. также
Задачи
Практическое руководство. Настройка параметров безопасности для шаблонов форм с управляемым кодом