Модель безопасности для Windows Server AppFabric

Необходимо защитить приложения .NET Framework, которые управляются Windows Server AppFabric, чтобы доступ к службам и данным имели только авторизованные пользователи. Для этого необходимо идентифицировать пользователей, убедиться, что они являются теми, за кого себя выдают, затем определить, имеют ли они разрешения для просмотра сведений или для выполнения запрошенных действий. Обмен сообщениями между клиентом и сервером должен выполняться по безопасному каналу, который обеспечивает надежность передачи конфиденциальных данных. Технологии Майкрософт, поддерживаемые в AppFabric, содержат интегрированные службы, которые позволяют компаниям безопасно подключаться к приложениям и использовать их. Администраторам AppFabric не нужно обслуживать различные наборы пользовательских баз данных, а все службы на сотнях внутренних серверов могут управляться из одного графического средства. Интеграция технологий безопасности и продуктов Майкрософт, которые поддерживают AppFabric, позволяет предоставлять пользователям доступ ко всем ресурсам, необходимым для запуска приложений.

Ключевые элементы безопасности AppFabric

Основная цель модели безопасности AppFabric — формирование простого и в то же время эффективного механизма для большинства пользователей AppFabric. Благодаря интеграции с существующими моделями безопасности Windows, .NET Framework, IIS и SQL Server пользователи могут применять свои знания и навыки в области безопасности при работе с моделью безопасности AppFabric. Точнее, здесь используются концепции безопасности Windows, .NET Framework, IIS и SQL Server для включения различных уровней безопасности в управляемых приложениях WCF и WF. Так как AppFabric лишь незначительно улучшает уже и без того надежную интегрированную систему безопасности Майкрософт, эта модель безопасности уже знакома администраторам, имеющим представление о концепции безопасности Майкрософт. Это приводит к снижению долгосрочной совокупной стоимости владения для клиентов AppFabric. Если администратор уже знаком с этими продуктами и технологиями, то он сможет без труда обеспечить защиту приложения, выполнив инструкции, приведенные в разделе Безопасность и защита.

В AppFabric используются существующие концепции безопасности.

  • Безопасность Windows. В AppFabric используется безопасность на основе групп и файловой системы Windows. Надежная архитектура безопасности Windows используется во всех компонентах приложения, доступ к ресурсам AppFabric управляется посредством проверки подлинности. Дополнительные сведения см. в разделе Безопасность Windows.

  • Безопасность .NET Framework. В AppFabric безопасность WCF используется для служб WCF и WF. WCF — это распределенная платформа программирования на основе сообщений SOAP; обеспечение безопасности обмена сообщениями между клиентами и службами является ключевой задачей при защите данных. WCF предоставляет универсальную платформу взаимодействия для безопасного обмена сообщениями на основе существующей инфраструктуры безопасности и общепризнанных стандартов безопасности сообщений SOAP. В WCF используются концепции, которые могут оказаться знакомыми, если администраторы уже создавали безопасные распространяемые приложения с использованием таких существующих технологий проверки подлинности, как HTTPS, интегрированная безопасность Windows или имена пользователей и пароли. Дополнительные сведения см. в разделе Безопасность IIS и .NET Framework.

  • Безопасность IIS. В AppFabric используется поднабор компонентов безопасности IIS, так как используемые службы размещаются в Windows Process Activation service (WAS), а средства администрирования отображаются в диспетчере IIS. Службы IIS тесно интегрированы с ОС Windows для обеспечения самых высоких уровней безопасности приложений и данных. Службы IIS встраиваются в модель безопасности Windows NT и интегрируются со службами операционной системы, например файловой системой и каталогом. AppFabric использует концепцию удостоверения пула приложений, если службам рабочих процессов AppFabric требуется доступ к базе данных сохраняемости во время выполнения. В IIS используются те же списки управления доступом (ACL) Windows NT Server, что и во всех прочих службах Windows. Так как в службах IIS используется пользовательская база данных Windows NT Server, администраторы AppFabric могут не создавать отдельных учетных записей пользователей на каждом веб-сервере, а пользователи интрасети должны выполнять вход в сеть только один раз. Дополнительные сведения см. в разделе Безопасность IIS и .NET Framework.

  • Безопасность SQL Server. В AppFabric создаются роли базы данных SQL Server для управления доступом к базам данных сохраняемости и наблюдения. В AppFabric используется интегрированная проверка подлинности Windows для доступа к базам данных SQL Server. В интегрированной безопасности используется текущее удостоверение Windows, которое предоставляется вызывающему потоку для доступа к базам данным SQL Server. Затем можно сопоставить удостоверение Windows с базами данных и разрешениями AppFabric на сервере SQL Server. Дополнительные сведения см. в разделе Безопасность SQL Server.

Концепция ролей безопасности AppFabric

Чтобы понять модель безопасности AppFabric, следует разобраться с атрибутами трех ролей безопасности AppFabric. Эти роли являются концепциями, поэтому в модели безопасности невозможно будет найти объекты с такими именами. Однако эти роли выражаются через сопоставленные с ними физические группы безопасности Windows и роли баз данных SQL Server. В используемом решении безопасности этим ролям можно присвоить пользователей и разрешения, как показано ниже.

  • Наблюдатели сервера приложений. Эта административная роль предоставляет право на полный просмотр данных сохраняемости и наблюдения, относящихся к приложению. Наблюдатели сервера приложений могут выполнять следующие действия:

    • перечислять приложения и службы;

    • просматривать конфигурацию приложения и службы;

    • просматривать данные наблюдений;

    • изучать материализованные экземпляры.

  • Администраторы сервера приложений. Эта административная роль предоставляет право на полное управление конфигурацией приложения, наблюдением и сохраняемостью. Администраторы сервера приложений могут выполнять все задачи, доступные наблюдателям сервера приложений, а также перечисленные ниже дополнительные задачи:

    • приостанавливать, возобновлять, прерывать, отменять и удалять материализованные экземпляры;

    • создавать и удалять источники и сборщики событий;

    • просматривать, очищать и архивировать данные наблюдения.

  • Пользователи сервера приложений. Эта роль времени выполнения используется службами IIS во время выполнения для назначения удостоверений всем пулам приложений, в которых размещены приложения. Это предоставляет службам, содержащимся в приложениях, общий доступ к базам данных сохраняемости и системным службам.

Все, что необходимо знать пользователю AppFabric, ограничивается осведомленностью о наличии этих трех ролей AppFabric, которые используются при разработке решения безопасности. В соответствии с инструкциями в этой документации пользователи и разрешения назначаются в соответствующие группы и учетные записи Windows NT, пулы приложений IIS и учетные данные SQL Server и роли баз данных. Дополнительные сведения и важное руководство по безопасности, посвященное ролям AppFabric, их разрешениям безопасности и их сопоставлению с группами безопасности Windows и ролями баз данных SQL Server, см. в разделах Безопасность Windows, Безопасность IIS и .NET Framework и Безопасность SQL Server.

Область определения безопасности AppFabric

В AppFabric используются учетные данные безопасности Windows и сервера SQL Server, а также роли баз данных для определения уровня доступа пользователя или приложения к системным ресурсам, таким как базы данных сохраняемости, данные таймеров, данные наблюдения и файлы конфигурации. Доступ к этим ресурсам происходит на уровнях приложения и управления, которые являются двумя логическими областями определения модели безопасности AppFabric. Область определения приложения относится к процессу выполнения служб AppFabric, размещенных в приложениях IIS. Область определения управления относится к управлению AppFabric с точки зрения администрирования. Для дальнейшего понимания способов использования этих трех ролей безопасности AppFabric стоит изучить их использование в контексте области определения приложения и управления.

Область определения приложения

Область определения приложения служит для определения фактического выполнения служб .NET Framework, настроенных в AppFabric и размещенных в пространстве процесса WAS служб IIS. Это не касается средств администрирования, которые принадлежат области определения управления. Концепция области определения приложения применима к роли безопасности AppFabric пользователей сервера приложений. Эта роль соответствует группе Windows IIS_IUSRS, которая является группой безопасности Windows, используемой для учетной записи службы IIS. Дополнительные сведения см. в разделах Безопасность Windows, Безопасность IIS и .NET Framework и Безопасность SQL Server.

Каждое приложение выполняется в одном пуле приложений. Этот пул может быть пулом приложения по умолчанию; кроме того, можно создать и настроить собственный пул приложений. (Создание и настройка пула приложений — это административная функция, которая обсуждается в следующем разделе "Область определения управления".) Пул приложений используется для группирования приложений и служб в одном пространстве рабочего процесса, что позволяет совместно использовать параметры конфигурации и другие сущности операционной системы. Так как каждый рабочий процесс функционирует как отдельный экземпляр исполняемого файла рабочего процесса W3WP.EXE, рабочий процесс, обслуживающий один пул приложений, отделен от рабочего процесса, обслуживающего другой пул приложений. Это позволяет реализовать изоляцию приложений, если приложение размещено в собственном пуле. Изоляция приложений обеспечивает работоспособность других пулов приложений при сбое веб-приложения в одном из пулов.

Другое преимущество изоляции приложений заключается в изоляции настраиваемой безопасности. Благодаря этому настроенный субъект безопасности рабочего процесса, в котором размещен пул приложений (где работает служба AppFabric.NET Framework), используется при доступе к подчиненным ресурсам, таким как SQL Server. Удостоверением пула приложений по умолчанию является учетная запись Network_Service. Можно назначить собственное удостоверение учетной записи Windows при настройке пула приложений в IIS. Во время выполнения WAS перенаправляет любые входящие сообщения из очереди пула приложений в соответствующий рабочий процесс W3WP.EXE, используя привязки веб-приложения, указанные в метабазе IIS. Таким образом AppFabric разрешает активацию с использованием протоколов, отличных от HTTP, для конечных точек и служб WCF. Службы IIS динамически добавляют все учетные записи Windows, имеющие отношения к пулам приложений, в локальную группу безопасности Windows BUILTIN\IIS_IUSRS. Это означает, что при создании собственного пула приложений службы IIS автоматически добавляют удостоверение пула приложений в группу Windows IIS_IUsers.

Использование нескольких пулов приложений с различными удостоверениями безопасности позволяет изолировать приложения при доступе во время выполнения к базам данных сохраняемости и наблюдения AppFabric. По умолчанию эти базы данных доступны всем прошедшим проверку подлинности удостоверениям AppFabric, используемым пулами приложений. Если необходима изоляция на более высоком уровне безопасности, можно более подробно назначать разрешения для определенных удостоверений определенных пулов приложений IIS с целью доступа к определенным ресурсам баз данных. Также можно управлять безопасностью во время выполнения посредством создания собственных баз данных для определенных приложений и обеспечения подключения к этим пользовательским базам данных только определенных удостоверений. На уровне отдельных приложений можно изолировать одно приложение от базы данных наблюдения и дать ему право доступа только к базе данных сохраняемости.

Область применения приложения также применима к системным службам, которые устанавливаются и используются AppFabric:

  • Служба сбора событий. Собирает события, источниками которых являются AppFabric и размещенные приложения.

  • Служба управления рабочими процессами. Обрабатывает команды управления рабочим процессом, активирует экземпляры рабочего процесса с таймерами и перезапускает брошенные службы рабочего процесса.

Обе службы работают под учетными данными NTAuthority\LocalService. Учетная запись LocalService имеет разрешения на отслеживание событий, а также на управление материализованными экземплярами (прекращение, приостановка и возобновление).

Как правило, увеличение количества элементов управления безопасностью снижает производительность. Хотя изоляция приложений и расширяет возможности безопасности, она нуждается в дополнительных ресурсах памяти и процессов вследствие запуска нескольких процессов. Чтобы сохранить ресурсы, можно изолировать приложения с помощью модели appDomain платформы .NET Framework вместо использования различных процессов. Два приложения и более могут безопасно сосуществовать в одном процессе в разных доменах appDomain и не использовать принадлежащие другим приложениям виртуальную память и значения данных.

Область определения управления

Область определения управления служит для определения средств администрирования, относящихся к административному управлению приложениями. Сюда не входит фактическое управление службами .NET Framework, настроенными в AppFabric; они относятся к областью определения приложения. Концепция области определения управления применяется к ролям безопасности AppFabric администраторов сервера приложений и наблюдателей сервера приложений.

Область определения управления относится к управлению AppFabric и поддерживающих технологий с точки зрения администрирования и системных служб. Можно выполнять операции по управлению до запуска приложения, например развертывание и настройка приложения .NET Framework в AppFabric. Также можно выполнять операции по управлению во время выполнения, когда состояние рабочего процесса было материализовано и следующий этап рабочего процесса должен обрабатываться в пользовательском интерфейсе AppFabric. Например, может понадобиться возобновить приостановленный рабочий процесс. Разрешение безопасности на управление конфигурацией и выполнение служб .NET Framework, которое настраивается в AppFabric, основано на членстве в определенных группах безопасности Windows. Область определения управления также применима к службам Event Collection service и Workflow Management service, однако в этом случае с позиции управления и контроля, а не с позиции приложения.

Роли безопасности администраторов сервера приложений и наблюдателей сервера приложений сопоставляются с локальными группами безопасности Windows NT AS_Administrators и AS_Observers соответственно. Группа AS_Administrators содержит идентификатор службы (SID) Workflow Management service и Event Collection service. После регистрации служб в диспетчере управления службами, их идентификаторы SID остаются постоянными. Это означает, что службы Event Collection service и Workflow Management service будут являться членами группы AS_Administrators независимо от удостоверения, от имени которых они работают. Как правило, этим удостоверением является NTAuthority\LocalService. Поэтому использование идентификаторов SID вместо удостоверений службы гарантирует, что никакой другой процесс или служба, работающие от имени удостоверения NTAuthority\LocalService, не сможет стать членом группы AS_Administrators. Дополнительные сведения о ролях безопасности AppFabric и их использовании см. в разделах Безопасность Windows, Безопасность IIS и .NET Framework и Безопасность SQL Server.

AppFabric обеспечивает защиту области определения управления во время установки. При создании во время установки баз данных наблюдения и сохраняемости с помощью командлетов Windows PowerShell создаются и роли баз данных SQL Server, основанные на соответствующих ролях безопасности AppFabric. Например, все роли, созданные в SQL Server для группы AS_Observers, являются ролями чтения (роль MonitoringDbReader для наблюдения и роль System.Activities.DurableInstancing.InstanceStoreObservers для сохраняемости). С позиций администрирования роли базы данных SQL Server, определенные для учетной записи входа AS_Administrators, включают все роли баз данных, привязанные к учетной записи входа AS_Observers, а также дополнительные роли, предназначенные для создания и изменения записей в базе данных.

По умолчанию при установке AppFabric выполняются некоторые командлеты AppFabric. AppFabric создает все необходимые локальные группы безопасности Windows и учетные данные для установки AppFabric на одном сервере. При использовании AppFabric на нескольких серверах необходимо вручную создать доменные группы Windows и включить их в соответствующие группы безопасности Windows на этом сервере, чтобы можно было удаленно администрировать установку AppFabric. Администратору необходимо создать доменные группы, которые будут являться физическим представлением концепций ролей безопасности администраторов и наблюдателей сервера приложений (то есть группы ДОМЕН\MyAppFabricAdmins и ДОМЕН\MyAppFabricObservers). Затем можно назначить эти доменные учетные записи группам LOCAL\AS_Administrators и LOCAL\AS_Observers на всех компьютерах AppFabric домена.

Модель безопасности для пользовательских сценариев Windows PowerShell и командлетов AppFabric

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

Во время выполнения сценария Windows PowerShell AppFabric используется удостоверения размещающего этот сценарий процесса. Это означает, что субъект безопасности пользователя, выполняющего командлет, передается в качестве идентификатора процесса. Невозможно использовать олицетворение для выполнения командлета в контексте безопасности, отличном от контекста пользователя, который выполняет процесс.

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

Сценарии Windows PowerShell, поставляемые вместе с AppFabric, имеют цифровую подпись, предоставляемую посредством сертификата, полученного из центра сертификации (ЦС). Подпись объекта с помощью цифрового сертификата из ЦС обеспечивает целостность пакета. С помощью одностороннего хэша и алгоритмов шифрования с использованием открытого ключа процесс подписи гарантирует обнаружения любых изменений, внесенных в пакет после его подписи автором, с последующим блокированием такого сценария. Кроме того, цифровые подписи можно использовать для проверки авторства подписанного объекта, то есть является ли создавшая объект сторона тем, за кого себя выдает. Простой и менее затратной альтернативой использованию ЦС является организация локального центра сертификации и сервера сертификатов Майкрософт для создания самозаверяющего сертификата. Можно дополнительно защитить сертификат с помощью шифрования закрытым ключом.

securityБезопасность Примечание
Использования локального ЦС для подписи пакета сценария Windows PowerShell обеспечивает наименьшую политику доверия. Хотя локально подписанный пакет является доверенным на локальной системе, к нему не будет доверия при выполнении на других системах.

Управление федеративными удостоверениями и единый вход

Федеративные системы проверки подлинности также известны, как веб-системы единого входа. Федеративные системы работают без учета границ организаций и соединяют процессы, использующие различные технологии, хранилища удостоверений, подходы к обеспечению безопасности и модели программирования. С помощью служб федерации Active Directory (ADFS) сотрудники в одной компании могут использовать свои учетные записи Active Directory для доступа к серверам, размещенным в другой компании. Службы ADFS также создают отношение доверия между двумя компаниями и обеспечивают единый вход для пользователей. С их помощью организации могут совместно использовать удостоверения пользователей, обеспечивая при этом должный уровень безопасности.

Приложение на основе HTTP, управляемое AppFabric, во многом представляет собой обычное приложение IIS. Если необходимо интегрировать в приложении федеративное управление удостоверениями и веб-проверку подлинности для единого входа, можно использовать службы ADFS так же, как они используются для приложения IIS. Службы ADFS сопоставляют учетную запись входа, которая получает доступ к приложению, с доменной учетной записью, затем выполняется проверка подлинности в IIS с использованием этой доменной учетной записи.

Так как в .NET Framework 4 используется WCF и соответствующая модель безопасности для обеспечения связи между управляемыми службами и их клиентами, традиционная модель IIS поддержки только приложений на основе HTTP, выходит за рамки протокола HTTP. При использовании HTTP без проверки подлинности транспорта или для приложения не на основе HTTP следует использовать программный интерфейс службы для реализации обработки удостоверений. Приложение, поддерживающее утверждения, использует утверждения, которые имеются в маркере безопасности ADFS для принятия решений по проверке подлинности и обеспечения дополнительной персонализации приложения. Как и при использовании служб ADFS, необходимо понимать способы обработки удостоверяющих утверждений в приложении IIS для интеграции обработки утверждений в приложении.

В данном разделе

См. также

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

Пакет безопасности WF CTP

  2011-12-05