Практическое руководство. Добавление групп кода с помощью Caspol.exe

Примеры команд для добавления групп

При использовании средства для настройки политики управления доступом для кода (Caspol.exe) для добавления группы кода к иерархии групп для вновь создаваемой группы необходимо определить как условие членства, так и набор разрешений. Кроме того, следует определить метку или имя родительской группы кода, в которую добавляется новая группа. При необходимости для группы кода можно установить и другие флаги. Дополнительные сведения об этих флагах см. в разделе Средство для настройки политики управления доступом для кода (Caspol.exe).

Чтобы добавить группу кода в иерархию групп кода

  • Введите следующую команду в командной строке:

    caspol [-enterprise|-machine|-user] -addgroup {parentLabel|parentName} mship pset_name [-exclusive {on|off}][-levelfinal {on|off}] [-name name] [-description description text]

    Задайте параметр уровня политики перед параметром –addgroup. Если параметр уровня политики опущен, Caspol.exe добавляет группу кода к уровню, заданному по умолчанию. Для администраторов компьютеров уровнем по умолчанию является уровень политики компьютера, для всех остальных — уровень политики пользователя. В этой команде указаны следующие данные:

    • Аргумент parentLabel — это метка родительской группы кода для новой группы кода. Здесь вместо аргумента parentLabel также можно использовать имя родительской группы кода (parentName). Для просмотра этих сведений вызовите список групп кода согласно описанию в разделе Практическое руководство. Просмотр групп кода с помощью Caspol.exe.

    • Аргумент pset_name — это имя набора разрешений, связываемого с новой группой кода. Перед связыванием именованного набора разрешений с группой кода он должен быть известен на том уровне политики, на котором производится добавление этой группы. Например, до связывания набора разрешений MyPset с новой группой кода в политике пользователя набор MyPset должен быть добавлен к этой политике. Набор разрешений не нужно добавлять заранее только при использовании одного из стандартных наборов разрешений, предоставляемых платформой .NET Framework. Описание порядка добавления набора разрешений к уровню политики см. в разделе Практическое руководство. Добавление наборов разрешений с помощью Caspol.exe.

    • Аргумент mship — это условие членства для новой группы кода. Список значений аргумента mship см. в разделе Средство для настройки политики управления доступом для кода (Caspol.exe).

ПримечаниеПримечание

С помощью параметра –addgroup нельзя одновременно добавлять группу кода к нескольким уровням политики.Добавление каждой группы должно выполняться отдельно, так как разные метки групп кода, а также доступность определенных наборов разрешений могут привести к путанице.

Примеры команд для добавления групп

Ниже описываются процедуры, реализующие некоторые из наиболее типичных задач по добавлению групп кода.

Чтобы добавить группу кода, обращающуюся к коду из интрасети

  • Используйте параметр –zone и укажите Intranet в качестве значения аргумента членства.

    Следующая команда связывает набор разрешений Everything с кодом из интрасети. Группе кода присвоено имя Intranet_CG. Это имя можно использовать для обращения ко вновь созданной группе кода, не прибегая к ее числовым меткам.

    caspol –addgroup 1.1. –zone Intranet Everything –name "Intranet_CG"
    

Чтобы добавить группу кода, обращающуюся к коду с надежных веб-узлов в Internet Explorer

  • Используйте параметр –zone и укажите Trusted в качестве значения аргумента членства.

    Следующая команда связывает набор разрешений LocalIntranet с кодом из надежной зоны и позиционирует новую группу кода как дочернюю по отношению к корню иерархии групп кода.

    caspol -addgroup All_Code -zone Trusted LocalIntranet
    

Чтобы добавить группу кода, обращающуюся к конкретному издателю программного обеспечения

  • Используйте параметр –pub и задайте файл сертификата, подписанный файл или шестнадцатеричное представление сертификата X.509.

    Чтобы данное условие членства выполнялось, файлы издателя ПО должны быть подписаны надлежащим образом. Условие членства может быть создано на базе реального файла сертификата или подписанного EXE-файла.

    Предположим, существует файл сертификата для FourthCoffee (FourthCoffee.cer). Следующая команда добавляет группу кода в политику компьютера для кода, опубликованного FourthCoffee, и связывает набор разрешений Nothing с новой группой. Эта группа добавляется в качестве дочерней группы кода по отношению к корню.

    caspol –machine –addgroup 1 –pub –cert FourthCoffee.cer Nothing
    

Чтобы добавить группу кода, обращающуюся к коду с определенного веб-узла

  • Используйте параметр –site и задайте URL-адрес веб-узла.

    ПримечаниеПримечание

    Ввиду потенциальной возможности подделки DNS-имени использование веб-узла в качестве условия членства нельзя считать эффективным способом идентификации кода.Там, где это возможно, используйте условие членства строгого имени, условие членства издателя или условие членства хэша.

    Следующая команда связывает набор разрешений Intranet с кодом, полученным от www.microsoft.com.

    caspol –addgroup 1 –site www.microsoft.com Intranet
    

Чтобы добавить группу кода, обращающуюся к коду с определенного URL-адреса

  • Используйте параметр –url и задайте URL-адрес веб-узла.

    URL-адрес должен включать протокол, например http://, http:// или ftp://. При необходимости задать несколько сборок с определенного URL-адреса используется подстановочный знак (*).

    ПримечаниеПримечание

    Ввиду возможности указывать URL-адрес несколькими способами применение URL-адреса в качестве условия членства нельзя считать безопасным способом идентификации кода.Там, где это возможно, используйте условие членства строгого имени, условие членства издателя или условие членства хэша.

    caspol –user –addgroup 1 –url https://www.contoso.com/bin/* FullTrust
    caspol –user –addgroup 1 –url https://www.contoso.com/bin/MyAssembly.dll FullTrust
    

Чтобы добавить группу кода, которая переопределяет другие разрешения на каком-либо уровне политики

  • Установите для новой группы кода флаг –exclusive.

    Следующая команда добавляет группу кода в иерархию группы Intranet_cg. Новая группа кода предоставляет набор разрешений Everything в том случае, если зона является надежной, и переопределяет любые другие разрешения, предоставленные иными группами кода.

    caspol –addgroup "Intranet_cg" –zone Trusted Everything –exclusive on
    

Чтобы добавить группу кода с пользовательским условием членства

  • Используйте параметр –custom и задайте XML-файл, содержащий сериализацию XML пользовательского условия членства.

    Caspol.exe поддерживает применение в политике пользовательских условий членства, что обеспечивает высокую расширяемость системы политики.

    Следующая команда добавляет новую группу кода в корень политики пользователя. Эта новая группа кода содержит пользовательское условие членства, находящееся в файле NewMembershipCondition.xml, и предоставляет полное доверие сборкам, соответствующим этому условию.

    caspol –user –addgroup All_Code –custom NewMembershipCondition.xml FullTrust
    

Чтобы добавить группу кода с именем и описанием

  1. Используйте параметр –name и задайте имя группы кода. Имена, содержащие пробелы, должны быть заключены в двойные кавычки (" ").

  2. Используйте параметр –description и задайте описание группы кода.

Впоследствии это имя можно использовать для ссылки на группу кода. Наличие имени обеспечивает более гибкую поддержку при изменении политики сценария, чем числовые метки.

Политика по умолчанию поставляется с именами по умолчанию. Имена по умолчанию, если их в явном виде не изменил администратор, посредством Caspol.exe предоставляют администраторам легкий доступ к конкретным группам кода, относящимся к разным политикам и компьютерам.

Следующая команда добавляет группу кода в иерархию группы All_Code в политике компьютера. Новая группа кода проверяет код на наличие строгого имени FourthCoffee (содержащегося в файле Signed.exe) и предоставляет всем подписанным таким образом фрагментам кода FullTrust. Эта группа кода получает имя FouthCoffeeStrongName и соответствующее описание.

caspol –machine –addgroup All_Code –strong –file signed.exe FullTrust –name FouthCoffeeStrongName –description "Code group granting trust to code signed by FourthCoffee"
ПримечаниеПримечание

Если одинаковые имена встречаются в нескольких группах кода, Caspol.exe разрешает эту неоднозначность в пользу первой такой группы из найденных.Перед поиском в группах того же уровня программа производит поиск по всем дочерним группам какой-либо группы кода.

См. также

Ссылки

Caspol.exe (средство настройки политики управления доступом для кода)

Основные понятия

Модель политики безопасности

Другие ресурсы

Настройка политики безопасности с помощью средства для настройки политики управления доступом для кода (Caspol.exe)

Настройка групп кода с помощью Caspol.exe