Обеспечение безопасности размещения и сохраняемости
Хранилище сохраняемости — это ключевая часть архитектуры Windows Server AppFabric. Это хранилище поддерживает целостность экземпляров Windows Workflow Foundation (WF) при их прохождении через различные этапы выполнения. Можно управлять материализованными экземплярами служб рабочего процесса с помощью средств администрирования, входящих в состав AppFabric. Необходимо предоставить разрешения на выполнение чтения и записи в хранилище сохраняемости пользователям AppFabric, которые будут работать в средствах администрирования, а также приложениям во время выполнения. Также необходимо управлять доступом к хранилищу сохраняемости на уровнях областей управления и приложения.
Важно учитывать, где размещается приложение. Изоляция приложения служит для защиты данных от просмотра и использования другими приложениями. Кроме того, проверка идентификатора приложения для доступа к подчиненным ресурсам является ключевой частью моделью безопасности AppFabric. Идентификатор приложения влияет на используемый приложением субъект безопасности во время доступа к хранилищу сохраняемости.
Функции размещения и сохраняемости входят в области приложения и управления, но обеспечение их безопасности в каждой области должно выполняться по-разному. Особые разрешения предоставляются посредством включения в различные группы безопасности. Область безопасности приложения влияет на разрешения, которыми приложение будет обладать во время выполнения. Также эта область сопоставляется с ролью пользователей сервера приложений. Область безопасности управления влияет на средства и связанные операции, которые сможет выполнять администратор или системные службы. Эти разрешения сопоставляются с концептуальными ролями администраторов и операторов сервера приложений.
Защита данных сохраняемости
Если экземпляр службы материализован, его системное состояние сохраняется в хранилище сохраняемости. Приложения часто собирают и передают удостоверения личности и другие конфиденциальные сведения. Если эти данные включены в состояние приложения во время материализации службы, они помещаются в хранилище сохраняемости. Несколько серверов, сайтов и приложений могут использовать одно хранилище сохраняемости. Выполняется агрегация данных сохраняемости по серверам и сайтам, использующих одно хранилище, что упрощает управление состоянием активности нескольких тысяч экземпляров службы в больших средах. Это позволяет материализовывать экземпляр службы при работе на одном сервере AppFabric, а затем возобновлять работу на другом сервере, если это требуется для балансировки нагрузки.
После сохранения данных в хранилище сохраняемости они становятся доступны всем членам роли базы данных AS_Administrators и всем членам ролей sysadmin и dbo на сервере SQL Server. Так как данные сохраняемости могут стать доступными многим лицам по неосторожности или специально, следует принять все меры для снижения подобных рисков путем правильного управления разрешениями.
Можно защитить данные в хранилище сохраняемости следующими способами.
Использовать различные хранилища сохраняемости. Можно создать и настроить альтернативное хранилище сохраняемости на том же или на другом сервере, используя командлеты AppFabric для создания хранилища с последующей его настройкой на странице AppFabric Настройка базы данных сохраняемости. Затем можно настроить определенные приложения для использования только этого хранилища. Это предоставит определенным приложениям право использовать частное хранилище данных сохраняемости, доступ к которому будет закрыт для других приложений.
Разделить хранилище сохраняемости и хранилище данных наблюдения на два отдельных хранилища. По умолчанию таблица и объекты для хранилища сохраняемости и хранилища данных наблюдения создаются во время установки в хранилище DefaultApplicationServerExtensions store. Можно выделить одно хранилище только для данных сохраняемости, а другое только для данных наблюдения. Это позволит изолировать приложения и пользователей в областях управления и приложений от получения доступа к одному хранилищу с двумя функциями, что позволило бы считывать данные как из таблиц сохранения, так и из таблиц наблюдения.
Использовать группы Windows и роли SQL Server. Доступ к хранилищу сохраняемости в SQL Server реализуется посредством ролей базы данных SQL Server. Во время инициализации хранилища экземпляров администратор может добавить группы Windows в роли сервера SQL пользователей хранилища экземпляров, пользователей хранилища экземпляров с правом доступа на чтение и администраторов хранилища экземпляров. Дополнительные сведения об обеспечении безопасности данных в хранилищах сохраняемости с помощью групп Windows и ролей SQL Server см. в разделе Настройка безопасности для хранилищ сохраняемости.
Управлять функциями сохраняемости. Можно использовать расширения, добавленные AppFabric в диспетчер IIS, чтобы включать и отключать функции сохраняемости для определенной службы рабочих процессов, для всех служб рабочих процессов в приложении, для всех приложений на веб-сайте или для всех веб-сайтов на сервере. Можно определить политику сохраняемости на более высоком уровне и задать наследование параметров политики на более низких уровнях иерархии IIS и WAS.
Использовать различные идентификаторы пулов приложений. Использование различных идентификаторов для пулов приложений IIS дает возможность ограничивать или расширять разрешения SQL Server для всего хранилища сохраняемости или отдельных входящих в него объектов. Это техника точного управления безопасности, которую можно применять на уровнях IIS и SQL Server, однако она не поддерживается средствами AppFabric напрямую.
Обеспечение безопасности функции размещения
Изоляция процессов используется для разделения служб области управления AppFabric с высоким уровнем привилегий, таких как Event Collection service и Workflow Management service, и рабочих процессов приложений в области приложений с низким уровнем привилегий. Службы AppFabric выполняются в области управления и имеют полный доступ к соответствующим хранилищам сохраняемости и данных наблюдения. Все рабочие процессы приложений, а также пользователи работают в области приложений, как правило в контексте идентификатора пула приложений.
Дальнейшая изоляция в области приложений обеспечивает более детальное управление безопасностью. Приложение содержит одну или несколько служб .NET Framework, работающих в одном процессе. Чтобы защитить эти службы .NET Framework от воздействия друг на друга, можно запускать их в контексте разных доменов приложений. Процесс .NET Framework содержит один или несколько доменов приложений .NET Framework, каждый из которых является изолированной средой выполнения приложений. В пуле приложений IIS может использоваться несколько одновременно работающих приложений, если они используют один пул приложений. Поэтому домены приложений — это простой способ обеспечения изоляции выполнения без необходимости создания другого процесса с использованием дополнительных ресурсов.
Если необходимо еще более изолированное решение размещения, следует настроить каждое приложение для работы в собственном пуле приложений с собственным идентификатором. Это способ предоставления приложениям различных идентификаторов при доступе к хранилищу сохраняемости. IIS размещает все этих идентификаторы в группе безопасности Windows IIS_IUSRS во время выполнения. С точки зрения безопасности выполнение в пространстве отдельного процесса почти идентично работе в отдельном домене приложений, так как никакое другое приложение не сможет получить доступ к коду или данным изолированного приложения. Однако помните, что для дополнительных процессов необходимы дополнительные ресурсы операционной системы и переключение контекста на процессоре, так как каждый процесс использует собственную часть ЦП.
2011-12-05