Безопасность IIS и .NET Framework
Microsoft AppFabric 1.1 для Windows Server использует надежные функции обеспечения безопасности IIS и Платформа .NET Framework версии 4 для защиты служб Платформа .NET Framework 4, размещенных в Служба активации Windows (WAS). Для правильной настройки безопасного взаимодействия клиентов и служб в AppFabric необходимо ознакомиться с параметрами безопасности IIS и Платформа .NET Framework.
В целом, имеется множество уровней параметров безопасности и следует использовать наиболее подходящие из них для данного развертывания. Каждый уровень безопасности обеспечивает возможность защиты определенных ресурсов. Например, инструментарий IIS, как правило, обеспечивает возможность защиты артефактов IIS, таких как сайты и приложения, в то время как параметры безопасности Платформа .NET Framework 4 могут применяться к объектам служб WCF и WF, таким как службы, конечные точки и операции.
Дополнительные сведения об обеспечении безопасности см. в статьях Windows Communication Foundation Security (https://go.microsoft.com/fwlink/?LinkId=183157) и Обеспечение безопасности средствами IIS (https://msdn.microsoft.com/ru-ru/library/ms172965.aspx).
Средства безопасности IIS и AppFabric
IIS обеспечивает безопасность приложения со стороны вызывающего клиента, а также когда службы Платформа .NET Framework обращается к хранилищам данных наблюдения и сохраняемости. Службы IIS влияют на безопасность AppFabric в следующих областях.
IIS_IUSRS. Группа безопасности Windows, используемая для управления доступом во время выполнения к файлам и папкам в установке IIS по умолчанию.
Безопасность Примечание
Группу безопасности Windows IIS_IUSRS не следует путать с именем входа SQL Server IIS_IUSRS. Они являются связанными, но самостоятельными объектами. Удостоверение пула приложений. IIS динамически добавляет все удостоверения пулов приложений в группу IIS_IUSRS во время выполнения. Этой группе безопасности предоставляется разрешение на доступ к необходимым хранилищам данных, в особенности к хранилищу данных сохраняемости. Дополнительные сведения см. в разделе Безопасность SQL Server.
Средства безопасности .NET Framework для AppFabric
При обсуждении обеспечения безопасности для служб Платформа .NET Framework, настроенных в AppFabric, в действительности имеется в виду платформа WCF. WCF определяет транспортный протокол, используемый для обмена данными между клиентом WCF и службой Платформа .NET Framework (WCF или WF). Она является частью платформы Платформа .NET Framework, которая предоставляет унифицированную модель программирования для быстрой разработки сервисно-ориентированных приложений, взаимодействующих через Интернет и в пределах предприятия. WCF не только интегрируется с существующими инфраструктурами безопасности, но и позволяет расширить возможности обеспечения распределенной безопасности для доменов, отличных от доменов Windows, с помощью защищенных сообщений SOAP. Дополнительные сведения см. в статьях Windows Communication Foundation Security (https://go.microsoft.com/fwlink/?LinkId=183157) и Безопасность Architecture (https://go.microsoft.com/fwlink/?LinkId=183160).
Совместное использование средств безопасности IIS и .NET Framework
Для обеспечения целостности приложения крайне важно гарантировать невозможность просмотра или изменения сообщений, отправляемых службе, в процессе передачи. С этой целью можно использовать шифрование и подписи. Однако передача сообщений будет действительно защищенной только в том случае, если имеется возможность точно установить подлинность удостоверения вызывающего клиентского приложения. При использовании AppFabric необходимо понимать основы взаимодействия служб IIS и WCF для обеспечения такой возможности.
Дополнительные сведения о принципах и способах обеспечения безопасности веб-служб см. в статье Patterns & Practices: Improving Web Services Security Guide (https://go.microsoft.com/fwlink/?LinkId=183161).
Проверка подлинности IIS в AppFabric
Механизмы обеспечения безопасности транспорта WCF в Windows зависят от используемой привязки и транспортного протокола. Так, при использовании класса WSHttpBinding будет использоваться транспортный протокол HTTP, а основным механизмом обеспечения безопасности транспорта будет протокол SSL через HTTP, известный как HTTPS. Для защиты сообщений на уровне сообщений используется спецификация WS-Security. Она включает улучшения системы обмена сообщениями SOAP для обеспечения конфиденциальности, целостности и проверки подлинности на уровне сообщений SOAP (а не на транспортном уровне).
Режимы размещенных служб
Размещенные службы могут выполняться в двух режимах: смешанном транспортном режиме и режиме совместимости с ASP.NET. Используемый режим определяется флагом конфигурации aspNetCompatibilityEnabled
на уровне приложения. Значение этого флага можно получить во время выполнения с помощью свойства ServiceHostingEnvironment.AspNetCompatibilityEnabled
. По умолчанию флаг aspNetCompatibilityEnabled
имеет значение false. Таким образом, службы выполняются в смешанном транспортном режиме, если этот параметр не изменить явным образом.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false"/>
</system.serviceModel>
Смешанный транспортный режим
В смешанном транспортном режиме HTTP-модуль перехватывает запрос на одном из первых этапов конвейера: BeginRequest. При поступлении запроса HTTP-модуль присваивает свойству HttpContext.Current значение "null" и восстанавливает олицетворение, если используется олицетворенный поток. Вследствие того что клиентский запрос перехватывается на раннем этапе, другие функции HTTP автоматически отключаются. Поэтому при выполнении в смешанном транспортном режиме службы не имеют доступа к следующим функциям ASP.NET, связанным с протоколом HTTP.
HttpContext.Current. В этом режиме всегда имеет значение "null". WCF предоставляет аналог этой функции: OperationContext.Current.
Авторизация файлов и URL-адресов. Эта функция авторизации транспортного уровня обычно включается в разделе <system.web/authorization> файла Web.config для служб ASMX. В смешанном режиме в WCF авторизация транспорта отключена. Единственным способом авторизации URL-адресов и файлов является авторизация на уровне сообщений, реализованная в WCF.
Олицетворение. Олицетворение позволяет службе выступать в качестве клиента при выполнении операций на сервере. Функция олицетворения ASP.NET обычно включается в разделе <system.web/identity> файла Web.config для служб ASMX. Она недоступна на транспортном уровне WCF в смешанном режиме.
Состояние сеанса. Состояние сеанса ASP.NET не поддерживается в смешанном режиме. В WCF реализован собственный надежный механизм сеансов, обеспечивающий гибкое управление состояниями сеансов. Основной проблемой в WCF является то, что состояние сеанса не сохраняется при перезапуске приложения и не поддерживается для веб-садов и веб-ферм. Это связано с отсутствием механизма использования состояния сеанса несколькими приложениями или процессами, который имеется в отключенной службе состояния ASP.NET.
Другие функции HTTP. Другие функции HTTP связаны со свойством HttpContext.Current и не поддерживаются в смешанном режиме. Например, свойство ConfigurationManager.AppSettings может иметь неправильное значение. Функция глобализации, реализованная в элементе <system.web/globalization>, недоступна.
При работе в смешанном транспортном режиме проверка подлинности IIS не выполняется для обращений WCF к службам .NET Framework. Это делает средства безопасности WCF основным механизмом для проверки подлинности и защиты сообщений, передаваемых между клиентом WCF и службой Платформа .NET Framework. В смешанном транспортном режиме все транспорты обрабатываются одинаково. Служба может иметь несколько конечных точек WCF, которые могут ожидать передачи данных по одному или разным транспортным протоколам, например HTTP, net.tcp, net.pipe, net.msmq и т.д. Однако для обеспечения среды размещения, конфигурации приложений и развертывания размещенные службы, работающие в смешанном транспортном режиме, по-прежнему используют ASP.NET и IIS.
Режим совместимости с ASP.NET
Для использования проверки подлинности IIS в любом приложении, размещенном в WAS, включая и приложения, размещенные в AppFabric, необходимо использовать режим совместимости с ASP.NET и средства обеспечения безопасности транспорта WCF. Следующие функции безопасности IIS доступны только в режиме совместимости с ASP.NET.
Указывайте, каким пользователям Windows и членам каких групп Windows разрешено подключаться к сайту или службам размещения приложений с помощью диспетчера IIS.
Преобразовывайте веб-сайт в виртуальный каталог IIS и настраивайте параметры безопасности для физического пути к виртуальному каталогу двумя способами. При успешном прохождении проверки подлинности IIS передает файловой системе Windows учетные данные пользователя, прошедшего проверку подлинности, при попытке доступа к физическому пути виртуального каталога. Кроме того, можно назначить определенное удостоверение пользователя процессу, в котором размещены службы Платформа .NET Framework, для доступа к любому содержимому, хранящемуся по указанному физическому пути.
Выбирайте подходящий метод проверки подлинности (анонимная, обычная, с помощью форм, дайджест-проверка, проверка подлинности Windows, олицетворение ASP.NET с помощью форм) для контроля безопасности вызовов, поступающих в службы, связанные с веб-сайтом.
Следующие функции безопасности IIS доступны вне зависимости от того, включен ли режим совместимости с ASP.NET.
Включайте с помощью параметров SSL 64- или 128 -разрядное шифрование и настраивайте способ обработки сертификатов клиентов для входящих запросов.
Создавайте правила авторизации, чтобы разрешить или запретить пользователям доступ к веб-сайтам или приложениям.
Используйте возможности IIS по ведению журналов для создания журнала аудита безопасности входящих запросов.
Настраивайте параметры безопасности, связанные со строками подключения к базам данных наблюдения и сохраняемости.
Управляйте параметрами связывания для клиентов, обращающихся к службам.
Настраивайте разрешения на выполнение файлов (полный доступ, чтение и выполнение, список содержимого папки, запись и т.д.) на веб-сайте размещения или в размещенных на нем приложениях-службах.
Изменяйте удостоверение по умолчанию (NetworkService) настраиваемого пула приложений на другое удостоверение, под учетными данными которого оно может выполняться. При использовании встроенной безопасности для SQL Server с помощью этого удостоверения осуществляются вызовы SQL Server.
Дополнительные сведения см. в статье WCF Обслуживание и ASP.NET (https://go.microsoft.com/fwlink/?LinkId=183163).
Инструкции по использованию проверки подлинности
Для включения проверки подлинности IIS, должны быть соблюдены следующие условия:
используется режим совместимости с ASP.NET;
используется привязка WCF на основе протокола HTTP, поддерживающая режим безопасности транспорта (basicHttpBinding, wsHttpBinding и wsFederationHttpBinding).
Если эти требования выполнены, настройте IIS и размещенную службу Платформа .NET Framework так, чтобы они могли использовать совместимые параметры безопасности IIS и WCF. Настройте различные параметры безопасности приложения в соответствии с параметрами безопасности и привязками всех его служб. При использовании другой схемы произойдет ошибка активации службы WCF. Режимы безопасности в WCF (в данном случае это режим безопасности транспорта) определяются в элементах привязки. Они должны поддерживать проверку подлинности, поэтому убедитесь в том, что выбранные параметры безопасности WCF совместимы с параметрами IIS. Транспортный протокол сопоставляется с настроенным режимом проверки подлинности WCF для привязки. Режим проверки подлинности определяется конфигурацией привязки службы, и файл конфигурации клиента WCF должен быть настроен соответствующим образом. Клиент должен быть настроен на предоставление учетных данных в соответствующей форме, которая согласуется со схемой проверки подлинности, используемой службой. Так как в AppFabric отсутствует возможность внесения подобных изменений посредством интерфейса пользователя, их придется внести вручную в соответствующем файле Web.config.
![]() |
---|
Привязка wsDualHttpBinding поддерживает только безопасность на уровне сообщений, поэтому ее применение невозможно, если службы предусматривают использование проверки подлинности IIS. |
2012-03-05