Безопасность рабочих процессов
Windows Workflow Foundation (WF) интегрирован с несколькими различными технологиями, такими как Microsoft SQL Server и Windows Communication Foundation (WCF). В случае неправильной настройки взаимодействие с этими технологиями может вызвать проблемы безопасности в рабочем процессе.
Примечание.
Рабочие процессы описывают порядок выполнения и зависимостей между короткими или длительными задачами. В качестве механизма выполнения кода необходимо загрузить и выполнить только доверенный код. Разработчики должны убедиться, что только доверенные рабочие процессы используются с приложениями с помощью WF.
Вопросы безопасности сохраняемости
Рабочие процессы, которые используют действия Delay и сохраняемость, должны повторно активироваться службой. Windows AppFabric использует службу Workflow Management Service (WMS) для повторной активации рабочих процессов с истекшими таймерами. WMS создает объект WorkflowServiceHost для размещения повторно активированного рабочего процесса. Если служба WMS остановлена, сохраненные рабочие процессы не будут активироваться повторно при истечении их таймеров.
Доступ к устойчивым экземплярам должен быть защищен от вредоносных сущностей, внешних относительно домена приложения. Кроме того, разработчики должны гарантировать, что вредоносный код будет невозможно выполнить в том же домене приложения, что и код устойчивого экземпляра.
Устойчивый экземпляр не должен выполняться с разрешениями более высокого уровня (администратора).
Данные, обрабатываемые за пределами домена приложения, должны быть защищены.
Приложения, требующие изоляции безопасности, не должны использовать совместно один и тот же экземпляр абстракции схемы. Такие приложения должны использовать различные поставщики хранилищ или поставщики хранилищ, настроенные на создание разных экземпляров хранилищ.
Вопросы безопасности SQL Server
Если используется большое количество дочерних действий, расположений, закладок, расширений узла и областей или используются закладки с очень большим объемом полезных нагрузок, может быть исчерпана память или во время сохранения будет выделен чрезмерно большой объем пространства базы данных. Избежать этого можно с помощью мер безопасности на уровне объекта и на уровне базы данных.
Если используется SqlWorkflowInstanceStore, хранилище экземпляров должно быть защищено.
Конфиденциальные данные в хранилище экземпляров должны быть зашифрованы. Дополнительные сведения см. в статье SQL Server Encryption.
Так как строка подключения базы данных часто содержится в файле конфигурации, следует использовать безопасность уровня Windows (ACL) для обеспечения защиты файла конфигурации (обычно это Web.Config), а также для того, чтобы гарантировать, что сведения об имени входа и пароле не содержатся в строке подключения. В качестве альтернативы между базой данных и веб-сервером можно использовать аутентификацию Windows.
Рекомендации по WorkflowServiceHost
Конечные точки Windows Communication Foundation (WCF), используемые в рабочих процессах, должны быть защищены. Дополнительные сведения см. в разделе "Общие сведения о безопасности WCF".
Авторизацию на уровне узлов можно реализовать с помощью ServiceAuthorizationManager. Дополнительные сведения см. в статье "Практическое руководство. Создание пользовательского диспетчера авторизации для службы ".
Кроме того, контекст ServiceSecurityContext для входящего сообщения доступен из рабочего процесса посредством доступа к OperationContext.
Пакет безопасности WF CTP
Предварительная версия технологии microsoft WF Security Pack (CTP) 1 — это набор действий и их реализация на основе Windows Workflow Foundation в платформа .NET Framework 4 (WF 4) и Windows Identity Foundation (WIF). Пакет безопасности Microsoft WF CTP 1 содержит действия и их конструкторы, которые демонстрируют простое включение различных сценариев обеспечения безопасности с помощью рабочих процессов, в том числе следующие:
Олицетворение удостоверения клиента в рабочем процессе
Авторизация в рабочих процессах, например PrincipalPermission и проверка утверждений
Обмен сообщениями с использованием проверки подлинности (с применением определенных в рабочем процессе ClientCredentials), например с использованием имени пользователя и пароля или токена, полученного от службы токенов безопасности (STS)
Сквозная передача токена безопасности клиента внутренней службе (делегирование на основе утверждений) с помощью WS-Trust ActAs