Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Корпорация Майкрософт стремится защитить конфиденциальность конечных пользователей. При создании приложения с помощью Windows Communication Foundation (WCF) версии 3.0 ваше приложение может повлиять на конфиденциальность конечных пользователей. Например, ваше приложение может явно собирать контактные данные пользователя или запрашивать или отправлять данные через Интернет на веб-сайт. Если вы внедряете технологию Майкрософт в приложение, эта технология может иметь собственное поведение, которое может повлиять на конфиденциальность. WCF не отправляет какие-либо сведения в корпорацию Майкрософт из приложения, если вы или конечный пользователь не решите отправить его нам.
WCF кратко
WCF — это платформа распределенного обмена сообщениями с помощью Microsoft .NET Framework, которая позволяет разработчикам создавать распределенные приложения. Сообщения, передаваемые между двумя приложениями, содержат сведения о заголовке и тексте.
Заголовки могут содержать маршрутизацию сообщений, сведения о безопасности, транзакции и многое другое в зависимости от служб, используемых приложением. Сообщения обычно шифруются по умолчанию. Одно из исключений заключается в использовании BasicHttpBinding, который был разработан для использования с незащищенными, устаревшими веб-службами. В качестве конструктора приложений вы отвечаете за окончательный дизайн. Сообщения в тексте SOAP содержат данные, относящиеся к приложению; Однако эти данные, такие как определяемые приложением персональные данные, можно защитить с помощью функций шифрования WCF или конфиденциальности. В следующих разделах описываются функции, которые могут повлиять на конфиденциальность.
Обмен сообщениями
Каждое сообщение WCF содержит заголовок адреса, указывающий назначение сообщения и место, где должен идти ответ.
Компонент адреса конечной точки — это универсальный идентификатор ресурса (URI), определяющий конечную точку. Адрес может быть сетевым адресом или логическим адресом. Адрес может содержать имя компьютера (имя узла, полное доменное имя) и IP-адрес. Адрес конечной точки также может содержать глобальный уникальный идентификатор (GUID) или коллекцию идентификаторов GUID для временной адресации, используемой для распознавания каждого адреса. Каждое сообщение содержит идентификатор, который представляет собой GUID. Эта функция соответствует эталонному стандарту WS-Addressing.
Уровень обмена сообщениями WCF не записывает личную информацию на локальный компьютер. Однако он может распространять персональные данные на уровне сети, если разработчик службы создал службу, которая предоставляет такие сведения (например, используя имя пользователя в имени конечной точки или в том числе личную информацию на языке описания веб-служб конечной точки, но не требует от клиентов использовать https для доступа к WSDL). Кроме того, если разработчик запускает средство служебной программы метаданных ServiceModel (Svcutil.exe) для конечной точки, которая предоставляет личную информацию, выходные данные средства могут содержать эти сведения, а выходной файл записывается на локальный жесткий диск.
Хостинг
Функция размещения в WCF позволяет приложениям запускать по запросу или включать общий доступ к портам между несколькими приложениями. Приложение WCF можно разместить в службах IIS, аналогичных ASP.NET.
Размещение не раскрывает никакую конкретную информацию в сети и не хранит данные на устройстве.
Безопасность сообщений
Безопасность WCF предоставляет возможности безопасности для приложений обмена сообщениями. Функции безопасности, предоставляемые, включают проверку подлинности и авторизацию.
Проверка подлинности выполняется путем передачи учетных данных между клиентами и службами. Проверка подлинности может выполняться через безопасность на уровне транспорта или через безопасность на уровне сообщений SOAP, как показано ниже.
В безопасности сообщений SOAP проверка подлинности выполняется с помощью учетных данных, таких как имя пользователя и пароли, сертификаты X.509, билеты Kerberos и токены SAML, все из которых могут содержать личную информацию в зависимости от издателя.
С помощью транспортной безопасности аутентификация выполняется с использованием традиционных механизмов аутентификации передачи, таких как схемы аутентификации HTTP (Базовая, Дайджест, Согласование, Интегрированная авторизация Windows, NTLM, None и анонимная), а также аутентификация с использованием форм.
Проверка подлинности может привести к безопасному сеансу, установленному между конечными точками связи. Сеанс определяется идентификатором GUID, который длится время существования сеанса безопасности. В следующей таблице показано, что хранится и где.
| Данные | Хранение |
|---|---|
| Учетные данные презентации, такие как имя пользователя, сертификаты X.509, маркеры Kerberos и ссылки на учетные данные. | Стандартные механизмы управления учетными данными Windows, такие как хранилище сертификатов Windows. |
| Сведения о членстве пользователей, такие как имена пользователей и пароли. | ASP.NET поставщики услуг членства. |
| Информация об идентификации службы, используемой для аутентификации услуги для клиентов. | Адрес конечной точки службы. |
| Информация о вызывающем. | Журналы аудита. |
Аудит
Аудит записывает успешность и сбой событий проверки подлинности и авторизации. Записи аудита содержат следующие данные: URI службы, URI действия и идентификацию вызывающего абонента.
Аудит также записывает, когда администратор изменяет конфигурацию ведения журнала сообщений (включая или отключая его), поскольку ведение журнала сообщений может записывать данные, относящиеся к приложению, в заголовках и телах. Для Windows XP запись регистрируется в журнале событий приложения. Для Windows Vista и Windows Server 2003 запись регистрируется в журнале событий безопасности.
Транзакции
Функция транзакций предоставляет транзакционные службы приложению WCF.
Заголовки транзакций, используемые в распространении транзакций, могут содержать идентификаторы транзакций или идентификаторы участия в транзакции, которые являются глобальными уникальными идентификаторами (GUID).
Функция "Транзакции" использует менеджер транзакций Microsoft Distributed Transaction Coordinator (MSDTC) (компонент Windows) для управления состоянием транзакции. По умолчанию обмен данными между диспетчерами транзакций шифруется. Диспетчеры транзакций могут записывать ссылки на конечные точки, идентификаторы транзакций и идентификаторы перечисления как часть их устойчивого состояния. Время существования этого состояния определяется временем существования файла журнала Диспетчера транзакций. Служба MSDTC владеет и обслуживает этот журнал.
Функция "Транзакции" реализует стандарты WS-Coordination и WS-Atomic транзакций.
Надежные сеансы
Надежные сеансы в WCF обеспечивают передачу сообщений в случае отказа транспорта или посредника. Они обеспечивают точно один раз передачу сообщений, даже если базовый транспорт отключается (например, TCP-подключение в беспроводной сети) или теряет сообщение (HTTP-прокси удаляет исходящее или входящее сообщение). Надежные сеансы также восстанавливают переупорядочение сообщений (как это может произойти в случае маршрутизации с несколькими путими), сохраняя порядок отправки сообщений.
Надежные сеансы реализуются с помощью протокола WS-ReliableMessaging (WS-RM). Они добавляют WS-RM заголовки, содержащие сведения о сеансе, которые используются для идентификации всех сообщений, связанных с определенным надежным сеансом. Каждый WS-RM сеанс имеет идентификатор, который является GUID.
Персональные данные не сохраняются на компьютере конечного пользователя.
Каналы в очереди
Очереди хранят сообщения от отправляющего приложения от имени принимающего приложения, а затем перенаправляют эти сообщения в принимающее приложение. Они помогают обеспечить передачу сообщений от отправляющих приложений к принимающим приложениям, когда, например, принимающее приложение работает временно. WCF обеспечивает поддержку очередей, используя MSMQ (Microsoft Message Queuing) в качестве транспорта.
Функция каналов в очереди не добавляет заголовки в сообщение. Вместо этого он создает сообщение очереди сообщений с соответствующим набором свойств сообщения очереди сообщений и вызывает методы очереди сообщений для размещения сообщения в очереди очереди сообщений. Очередь сообщений — это необязательный компонент, который поставляется с Windows.
Никакие сведения не сохраняются на компьютере конечного пользователя функцией каналов очередей, так как она использует очередь сообщений в качестве инфраструктуры очередей.
Интеграция COM+
Эта функция упаковывает существующие функции COM и COM+ для создания служб, совместимых со службами WCF. Эта функция не использует определенные заголовки и не сохраняет данные на компьютере конечного пользователя.
Идентификатор службы COM
Это обеспечивает неуправляемую оболочку для стандартного клиента WCF. Эта функция не содержит определенных заголовков на проводе и не сохраняет данные на компьютере.
Одноранговый канал
Одноранговый канал позволяет разрабатывать многопартийные приложения с помощью WCF. Многопользовательский обмен сообщениями происходит в контексте сети. Сетки определяются по имени, к которому могут присоединяться узлы. Каждый узел в одноранговом канале создает прослушиватель TCP на указанном пользователем порту и устанавливает подключения с другими узлами в сетке, чтобы обеспечить устойчивость. Чтобы подключиться к другим узлам в сетке, узлы также обмениваются данными, включая адрес прослушивателя и IP-адреса компьютера, с другими узлами в сетке. Сообщения, отправленные в сетке, могут содержать сведения о безопасности, относящиеся к отправителю, чтобы предотвратить спуфинирование и изменение сообщений.
Личная информация не хранится на компьютере конечного пользователя.
опыт работы в ИТ-сфере
Отслеживание
Функция диагностики инфраструктуры WCF регистрирует сообщения, передаваемые через уровни транспортной и служебной модели, а также действия и события, связанные с этими сообщениями. Эта функция отключена по умолчанию. Он включен с помощью файла конфигурации приложения, а поведение трассировки может быть изменено с помощью поставщика WMI WCF во время выполнения. При включении инфраструктура трассировки выдает диагностическую трассировку, содержащую сообщения, активности и события обработки для настроенных прослушивателей. Формат и расположение выходных данных определяются вариантами конфигурации прослушивателя администратора, но обычно это XML-форматированный файл. Администратор отвечает за настройку списка управления доступом (ACL) в файлах трассировки. В частности, при размещении в системе активации Windows (WAS) администратор должен убедиться, что файлы не размещаются из общедоступного виртуального корневого каталога, если этого не требуется.
Существует два типа трассировки: ведение журнала сообщений и диагностическая трассировка модели службы, описанная в следующем разделе. Каждый тип настраивается с помощью собственного источника трассировки: MessageLogging и System.ServiceModel. Оба этих источника трассировки журналирования собирают данные, которые являются локальными для приложения.
Ведение журнала сообщений
Источник трассировки журнала сообщений (MessageLogging) позволяет администратору регистрировать сообщения, которые передаются по системе. С помощью конфигурации пользователь может решить, регистрировать ли все сообщения или только заголовки сообщений, вести ли логирование на уровнях транспортной модели и/или модели службы, а также включать ли искажённые сообщения. Кроме того, пользователь может настроить фильтрацию, чтобы ограничить регистрирование сообщений.
По умолчанию ведение журнала сообщений отключено. Администратор локального компьютера может запретить администратору уровня приложения включить ведение журнала сообщений.
Ведение журнала зашифрованных и расшифрованных сообщений
Сообщения регистрируются, шифруются или расшифровываются, как описано в следующих терминах.
Запись журналов транспорта фиксирует сообщения, полученные и отправленные на транспортном уровне. Эти сообщения содержат все заголовки и могут быть зашифрованы перед отправкой на провод и при получении.
Если сообщения шифруются перед передачей по каналу и при их получении, они также регистрируются в зашифрованном виде. Исключение заключается в использовании протокола HTTPS: данные регистрируются в расшифрованном виде перед отправкой и после получения, даже если они остаются зашифрованными при передаче.
Логирование сообщений службы происходит на уровне модели после обработки заголовков канала, непосредственно перед выполнением пользовательского кода и после его выполнения.
Сообщения, зарегистрированные на этом уровне, расшифровываются, даже если они были защищены и зашифрованы на проводе.
Журналирование неправильно сформированных сообщений записывает данные, которые инфраструктура WCF не может понять или обработать.
Сообщения регистрируются as-is, то есть зашифрованные или не зашифрованные.
Когда сообщения записываются в расшифрованном или незашифрованном виде, по умолчанию WCF удаляет ключи безопасности и потенциально личную информацию из сообщений перед их записью. В следующих разделах описывается, какие сведения удаляются и когда. Администратор системы и развертыватель приложений должны осуществить определённые конфигурационные действия, чтобы изменить поведение по умолчанию для регистрации ключей и потенциально личной информации.
Сведения, удаленные из заголовков сообщений при журналировании расшифрованных или незашифрованных сообщений
Когда сообщения регистрируются в расшифрованных или незашифрованных формах, ключи безопасности и потенциально персональные данные удаляются по умолчанию из заголовков сообщений и тел сообщений до их регистрации. В следующем списке показано, что WCF рассматривает ключи и потенциально личную информацию.
Ключи, которые удаляются:
Для
xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust"иxmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"wst:BinarySecretwst:EntropyДля
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd"иxmlns:wsse="http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"wsse:Passwordwsse:Nonce
Потенциально личная информация, которая удаляется:
Для
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd"иxmlns:wsse="http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"wsse:Usernamewsse:BinarySecurityTokenУдалены следующие элементы в
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"дляbold:
<Утверждение MajorVersion="1" MinorVersion="1" AssertId="[ID]" Issuer="[string]" IssueInstant="[dateTime]"
<Условия NotBefore="[dateTime]" NotOnOrAfter="[dateTime]"><AudienceRestrictionCondition><Audience>[uri]</Audience>+ </AudienceRestrictionCondition>* <DoNotCacheCondition />* <-- абстрактный базовый тип <Condition />*
</Условия>?
<Рекомендация><AssertionIDReference>[ID]</AssertionIDReference>* <Утверждение>[утверждение]</Утверждение>* [любой]* </Рекомендация>?
<!-- Абстрактные базовые типы <Заявление о предмете />* <Заявление о предмете><Предмет>
<NameIdentifier
NameQualifier="[string]"?
Format="[uri]"?
>
[string]
</NameIdentifier>?
<SubjectConfirmation><ConfirmationMethod>[anyUri]</ConfirmationMethod>+ <SubjectConfirmationData>[any]</SubjectConfirmationData>?
<ds:KeyInfo>...</ds:KeyInfo>?
</ПодтверждениеСубъекта>?
</Тема></ЗаявлениеТема>*
<ЗаявлениеОбАутентификации AuthenticationMethod="[uri]" AuthenticationInstant="[dateTime]"
[Тема]
<SubjectLocality
IPAddress="[string]"?
DNSAddress="[string]"?
/>?
<AuthorityBinding AuthorityKind="[QName]" Location="[uri]" Binding="[uri]" />* </Аутентификация>* <ЗаявлениеОбАтрибуте> [Subject] <Attribute AttributeName="[string]" AttributeNamespace="[uri]"
<AttributeValue>[any]</AttributeValue>+
</Attribute>+ </AttributeStatement>* <AuthorizationDecisionStatement Resource="[uri]" Decision="[Permit|Запрет |Недетерминированное]"
[Тема] <Action Namespace="[uri]">[string]</Action>+ <Evidence><УтверждениеIDСсылка>[ID]</УтверждениеIDСсылка>+ <Утверждение>[утверждение]</Утверждение>+ </Evidence>? </AuthorizationDecisionStatement>* </Утверждение>
Удаление информации из тел сообщений при ведении журнала расшифрованных и незашифрованных сообщений.
Как описано ранее, WCF удаляет ключи и известные потенциально личные данные из заголовков сообщений как для дешифрованных, так и для незашифрованных сообщений. Кроме того, WCF удаляет ключи и потенциально личную информацию из тела сообщений для элементов и действий, перечисленных в следующем списке, который описывает сообщения, связанные с безопасностью, участвующие в обмене ключами.
Для следующих пространств имен:
xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" и xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" (например, если действие недоступно)
Сведения удаляются для этих элементов текста, включающих обмен ключами:
wst:RequestSecurityToken
wst:RequestSecurityTokenResponse
wst:RequestSecurityTokenResponseCollection
Сведения также удаляются для каждого из следующих действий:
http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issuehttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issuehttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/Renewhttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Renewhttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/Cancelhttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Cancelhttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/Validatehttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Validatehttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCThttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCThttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Amendhttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Amendhttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Renewhttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Renewhttp://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT/Cancelhttp://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/SCT/Cancelhttp://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCThttp://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCThttp://schemas.xmlsoap.org/ws/2004/04/security/trust/RST/SCT-Amendhttp://schemas.xmlsoap.org/ws/2004/04/security/trust/RSTR/SCT-Amend
Никакие сведения не удаляются из заголовков и данных текста приложения
WCF не отслеживает личную информацию в заголовках для конкретных приложений (например, строках запроса) или данных тела (например, номер кредитной карты).
Если ведение журнала сообщений включено, в журналах могут отображаться персональные данные в специфичных для приложения заголовке и теле сообщения. Опять же, средство развертывания приложений отвечает за настройку списков управления доступом к файлам конфигурации и журнала. Они также могут отключить ведение журнала, если они не хотят, чтобы эти сведения были видимы, или отфильтровать эти сведения из файлов журнала после его записи.
Трассировка модели обслуживания
Источник трассировки модели службы (System.ServiceModel) обеспечивает трассировку действий и событий, связанных с обработкой сообщений. Эта функция использует функции диагностики .NET Framework из System.Diagnostics. Как и в случае с свойством MessageLogging , расположение и ACL настраиваются пользователем с помощью файлов конфигурации приложений .NET Framework. Как и при ведении журнала сообщений, расположение файла всегда настраивается, когда администратор включает трассировку; Таким образом, администратор управляет ACL.
Трассировки содержат заголовки сообщений, когда сообщение находится в контексте. Те же правила для скрытия потенциально личных данных в заголовках сообщений в предыдущем разделе применяются: ранее идентифицированные персональные данные удаляются по умолчанию из заголовков в трассировках. Администратор компьютера и средство развертывания приложений должны изменить конфигурацию, чтобы регистрировать потенциально личную информацию. Однако персональные данные, содержащиеся в специфических для приложения заголовках, регистрируются в трассировках. Средство развертывания приложений отвечает за настройку списков управления доступом к файлам конфигурации и трассировки. Они также могут отключить трассировку, чтобы скрыть сведения или отфильтровать их из файлов трассировки после их записи.
В рамках трассировки ServiceModel уникальные идентификаторы (называемые идентификаторами действий и, как правило, GUID) связывают различные действия, когда сообщение перемещается по различным частям инфраструктуры.
Пользовательские прослушиватели трассировки
Для ведения журнала сообщений и трассировки можно настроить настраиваемый прослушиватель трассировки, который может отправлять трассировки и сообщения в проводной сети (например, в удаленную базу данных). Средство развертывания приложений отвечает за конфигурирование пользовательских прослушивателей или предоставление пользователям возможности сделать это. Они также отвечают за любую личную информацию, раскрытую в удаленном расположении, и за правильное применение списков управления доступом к этому расположению.
Другие возможности ИТ-специалистов
WCF имеет поставщик WMI, предоставляющий сведения о конфигурации инфраструктуры WCF через WMI (поставляется с Windows). По умолчанию интерфейс WMI доступен администраторам.
Конфигурация WCF использует механизм конфигурации .NET Framework. Файлы конфигурации хранятся на компьютере. Разработчик приложения и администратор создают файлы конфигурации и ACL для каждого из требований приложения. Файл конфигурации может содержать адреса конечных точек и ссылки на сертификаты в хранилище сертификатов. Сертификаты можно использовать для предоставления данных приложения для настройки различных свойств функций, используемых приложением.
WCF также использует функцию дампа процесса .NET Framework путем вызова FailFast метода.
ИНСТРУМЕНТЫ ДЛЯ ИТ-СПЕЦИАЛИСТОВ
WCF также предоставляет следующие ИТ-инструменты, которые предоставляются в пакете SDK для Windows.
SvcTraceViewer.exe
Просмотрщик отображает файлы трассировки WCF. Средство просмотра показывает любую информацию, содержащуюся в трассировках.
SvcConfigEditor.exe
Редактор позволяет пользователю создавать и изменять файлы конфигурации WCF. В редакторе отображаются все сведения, содержащиеся в файлах конфигурации. Ту же задачу можно выполнить с помощью текстового редактора.
ServiceModel_Reg
Это средство позволяет пользователю управлять установкой ServiceModel на компьютере. Средство отображает сообщения о состоянии в окне консоли при запуске и в процессе могут отображаться сведения о конфигурации установки WCF.
WSATConfig.exe и WSATUI.dll
Эти инструменты позволяют ИТ-специалистам настраивать интероперабельную поддержку сети WS-AtomicTransaction в WCF. Средства отображаются и позволяют пользователю изменять значения наиболее часто используемых параметров WS-AtomicTransaction, хранящихся в реестре.
Сквозные функции
Следующие функции являются сквозными. То есть они могут быть составлены с любой из предыдущих функций.
Платформа служб
Заголовки могут содержать идентификатор экземпляра, который представляет собой GUID и связывает сообщение с экземпляром класса CLR.
Язык описания веб-служб (WSDL) содержит определение порта. Каждый порт имеет адрес конечной точки и привязку, представляющую службы, используемые приложением. Отображение WSDL можно отключить с помощью конфигурации. На компьютере не сохраняется никаких сведений.