Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Microsoft está empenhada em proteger a privacidade do utilizador final. Quando você cria um aplicativo usando o Windows Communication Foundation (WCF), versão 3.0, seu aplicativo pode afetar a privacidade dos usuários finais. Por exemplo, seu aplicativo pode coletar explicitamente informações de contato do usuário ou pode solicitar ou enviar informações pela Internet para seu site. Se você incorporar a tecnologia da Microsoft em seu aplicativo, essa tecnologia pode ter seu próprio comportamento que pode afetar a privacidade. O WCF não envia nenhuma informação para a Microsoft a partir do seu aplicativo, a menos que você ou o usuário final opte por enviá-las para nós.
WCF em resumo
WCF é uma estrutura de mensagens distribuídas usando o Microsoft .NET Framework que permite aos desenvolvedores criar aplicativos distribuídos. As mensagens comunicadas entre dois aplicativos contêm informações de cabeçalho e corpo.
Os cabeçalhos podem conter roteamento de mensagens, informações de segurança, transações e muito mais, dependendo dos serviços usados pelo aplicativo. Normalmente, as mensagens são encriptadas por predefinição. A única exceção é ao usar o BasicHttpBinding, que foi projetado para uso com serviços Web herdados não seguros. Como designer do aplicativo, você é responsável pelo design final. As mensagens no corpo SOAP contêm dados específicos do aplicativo; no entanto, esses dados, como informações pessoais definidas pelo aplicativo, podem ser protegidos usando criptografia WCF ou recursos de confidencialidade. As seções a seguir descrevem os recursos que potencialmente afetam a privacidade.
Messaging
Cada mensagem WCF tem um cabeçalho de endereço que especifica o destino da mensagem e para onde a resposta deve ir.
O componente de endereço de um endereço de ponto de extremidade é um URI (Uniform Resource Identifier) que identifica o ponto de extremidade. O endereço pode ser um endereço de rede ou um endereço lógico. O endereço pode incluir o nome da máquina (nome do host, nome de domínio totalmente qualificado) e um endereço IP. O endereço do ponto de extremidade pode também conter um identificador global exclusivo (GUID) ou uma coleção de GUIDs, utilizados para endereçamento temporário, permitindo diferenciar cada endereço. Cada mensagem contém um ID de mensagem que é um GUID. Este recurso segue o padrão de referência WS-Addressing.
A camada de mensagens WCF não grava nenhuma informação pessoal na máquina local. No entanto, ele pode propagar informações pessoais no nível da rede se um desenvolvedor de serviço tiver criado um serviço que exponha essas informações (por exemplo, usando o nome de uma pessoa em um nome de ponto de extremidade ou incluindo informações pessoais na linguagem de descrição de serviços da Web do ponto de extremidade, mas não exigindo que os clientes usem https para acessar o WSDL). Além disso, se um desenvolvedor executar a ferramenta ServiceModel Metadata Utility Tool (Svcutil.exe) em um ponto de extremidade que expõe informações pessoais, a saída da ferramenta poderá conter essas informações e o arquivo de saída será gravado no disco rígido local.
Hosting
O recurso de hospedagem no WCF permite que os aplicativos iniciem sob demanda ou habilitem o compartilhamento de portas entre vários aplicativos. Um aplicativo WCF pode ser hospedado no Internet Information Services (IIS), semelhante ao ASP.NET.
A hospedagem não expõe nenhuma informação específica na rede e não mantém dados na máquina.
Segurança da mensagem
A segurança WCF fornece os recursos de segurança para aplicativos de mensagens. As funções de segurança fornecidas incluem autenticação e autorização.
A autenticação é realizada passando credenciais entre os clientes e serviços. A autenticação pode ser feita por meio de segurança no nível de transporte ou por meio da segurança no nível de mensagem SOAP, da seguinte maneira:
Na segurança de mensagens SOAP, a autenticação é realizada por meio de credenciais como nome de usuário/senhas, certificados X.509, tíquetes Kerberos e tokens SAML, todos os quais podem conter informações pessoais, dependendo do emissor.
Usando a segurança de transporte, a autenticação é feita por meio de mecanismos tradicionais de autenticação de transporte, como esquemas de autenticação HTTP (Básico, Digest, Negociar, Autorização Integrada do Windows, NTLM, Nenhum e Anônimo) e autenticação de formulário.
A autenticação pode resultar em uma sessão segura estabelecida entre os pontos finais de comunicação. A sessão é identificada por um GUID que permanece durante toda a duração da sessão de segurança. A tabela a seguir mostra o que é mantido e onde.
| Dados | Armazenamento |
|---|---|
| Credenciais de apresentação, como nome de usuário, certificados X.509, tokens Kerberos e referências a credenciais. | Mecanismos padrão de gerenciamento de credenciais do Windows, como o repositório de certificados do Windows. |
| Informações de associação de usuário, como nomes de usuário e senhas. | Provedores de associação do ASP.NET. |
| Informações de identidade sobre o serviço usado para autenticar o serviço para clientes. | Endereço do ponto de extremidade do serviço. |
| Informações do chamador. | Logs de auditoria. |
Auditoria
A auditoria registra o sucesso e a falha dos eventos de autenticação e autorização. Os registros de auditoria contêm os seguintes dados: URI de serviço, URI de ação e identificação do chamador.
A auditoria também registra quando o administrador modifica a configuração do log de mensagens (ativando-o ou desativando-o), porque o log de mensagens pode registrar dados específicos do aplicativo em cabeçalhos e corpos. Para o Windows XP, um registro é registrado no log de eventos do aplicativo. Para Windows Vista e Windows Server 2003, um registro é registrado no log de eventos de segurança.
Transações
O recurso de transações fornece serviços transacionais para um aplicativo WCF.
Os cabeçalhos de transação usados na propagação de transações podem conter IDs de transação ou IDs de alistamento, que são GUIDs.
O recurso Transações usa o Microsoft Distributed Transaction Coordinator (MSDTC) Transaction Manager (um componente do Windows) para gerenciar o estado da transação. Por padrão, as comunicações entre os Gerentes de Transações são criptografadas. Os Gestores de Transações podem registar referências de pontos de extremidade, IDs de Transação e IDs de Alistamento como parte do seu estado durável. O tempo de vida desse estado é determinado pelo tempo de vida do arquivo de log do Transaction Manager. O serviço MSDTC possui e mantém esse log.
A funcionalidade de Transações implementa os padrões de Transação WS-Coordination e WS-Atomic.
Sessões fiáveis
Sessões confiáveis no WCF fornecem a transferência de mensagens quando ocorrem falhas de transporte ou intermediárias. Eles fornecem uma transferência exata de mensagens uma vez, mesmo quando o transporte subjacente se desconecta (por exemplo, uma conexão TCP em uma rede sem fio) ou perde uma mensagem (um proxy HTTP soltando uma mensagem de entrada ou de saída). Sessões confiáveis também recuperam a reordenação de mensagens (como pode acontecer no caso de roteamento de vários caminhos), preservando a ordem em que as mensagens foram enviadas.
Sessões confiáveis são implementadas usando o protocolo WS-ReliableMessaging (WS-RM). Eles adicionam cabeçalhos WS-RM que contêm informações de sessão, que são usadas para identificar todas as mensagens associadas a uma sessão confiável específica. Cada sessão WS-RM tem um identificador, que é um GUID (Identificador Globalmente Único).
Nenhuma informação pessoal é retida na máquina do usuário final.
Canais em fila
As filas armazenam mensagens de um aplicativo de envio em nome de um aplicativo de recebimento e, posteriormente, encaminham essas mensagens para o aplicativo de recebimento. Eles ajudam a garantir a transferência de mensagens do envio de aplicativos para o recebimento de aplicativos quando, por exemplo, o aplicativo recetor é transitório. WCF fornece suporte para enfileiramento usando o Microsoft Message Queuing (MSMQ) como meio de transporte.
O recurso de canais enfileirados não adiciona cabeçalhos a uma mensagem. Em vez disso, cria uma mensagem de enfileiramento com as propriedades adequadas definidas e invoca métodos para colocá-la na fila de enfileiramento de mensagens. O serviço de enfileiramento de mensagens é um componente opcional fornecido com o Windows.
Nenhuma informação é retida na máquina do utilizador final pela funcionalidade de canais enfileirados, pois utiliza o enfileiramento de mensagens como infraestrutura de entra-e-saída.
Integração COM+
Esse recurso encapsula a funcionalidade COM e COM + existente para criar serviços compatíveis com os serviços WCF. Esse recurso não usa cabeçalhos específicos e não retém dados na máquina do usuário final.
Identificador de serviço COM
Isso fornece um wrapper não gerenciado para um cliente WCF padrão. Este recurso não tem cabeçalhos específicos no fio nem persiste dados na máquina.
Canal de pares
Um canal de mesmo nível permite o desenvolvimento de aplicativos de várias partes usando WCF. As mensagens multipartidárias ocorrem no contexto de uma rede. As malhas são identificadas por um nome ao qual os nós podem aderir. Cada nó no canal ponto a ponto cria um ouvinte TCP em uma porta especificada pelo usuário e estabelece conexões com outros nós na malha para garantir resiliência. Para se conectar a outros nós na malha, os nós também trocam alguns dados, incluindo o endereço do ouvinte e os endereços IP da máquina, com outros nós na malha. As mensagens enviadas na malha podem conter informações de segurança que pertencem ao remetente para evitar falsificação e adulteração de mensagens.
Nenhuma informação pessoal é armazenada na máquina do utilizador final.
Experiência profissional em TI
Rastreio
O recurso de diagnóstico da infraestrutura do WCF registra mensagens que passam pelas camadas de modelo de transporte e serviço e as atividades e eventos associados a essas mensagens. Esse recurso está desativado por padrão. É ativado usando o ficheiro de configuração da aplicação e o comportamento de rastreio pode ser modificado usando o fornecedor WMI WCF em tempo de execução. Quando ativada, a infraestrutura de rastreio emite um traço de diagnóstico que contém mensagens, atividades e eventos de processamento para escutadores configurados. O formato e o local da saída são determinados pelas opções de configuração do ouvinte do administrador, mas normalmente é um arquivo formatado em XML. O administrador é responsável por definir a lista de controle de acesso (ACL) nos arquivos de rastreamento. Em particular, quando hospedado pelo Sistema de Ativação do Windows (WAS), o administrador deve certificar-se de que os arquivos não são servidos a partir do diretório raiz virtual público, se isso não for desejado.
Há dois tipos de rastreamento: Log de mensagens e rastreamento de diagnóstico do Modelo de Serviço, descritos na seção a seguir. Cada tipo é configurado através de sua própria fonte de rastreamento: MessageLogging e System.ServiceModel. Ambas as fontes de rastreamento de log capturam dados que são locais para o aplicativo.
Registo de mensagens
A origem de rastreamento de log de mensagens (MessageLogging) permite que um administrador registre as mensagens que fluem pelo sistema. Através da configuração, o usuário pode decidir registrar mensagens inteiras ou cabeçalhos de mensagens apenas, se deseja fazer login nas camadas de modelo de transporte e/ou serviço e se deve incluir mensagens malformadas. Além disso, o usuário pode configurar a filtragem para restringir quais mensagens são registradas.
Por padrão, o log de mensagens está desabilitado. O administrador da máquina local pode impedir que o administrador ao nível da aplicação ative o registo de mensagens.
Registo de mensagens encriptadas e desencriptadas
As mensagens são registadas, encriptadas ou desencriptadas, conforme descrito nos seguintes termos.
Registo de Transporte Regista mensagens recebidas e enviadas ao nível de transporte. Essas mensagens contêm todos os cabeçalhos e podem ser criptografadas antes de serem enviadas por fio e quando recebidas.
Se as mensagens forem criptografadas antes de serem enviadas na rede e também quando são recebidas, elas serão registradas criptografadas. Uma exceção é quando um protocolo de segurança é usado (https): eles são então registrados descriptografados antes de serem enviados e depois de serem recebidos, mesmo que sejam criptografados no fio.
Log de Serviço Registra mensagens recebidas ou enviadas no nível do modelo de serviço, após o processamento do cabeçalho do canal ter ocorrido, imediatamente antes e depois de inserir o código do usuário.
As mensagens registadas a este nível são desencriptadas, mesmo que tenham sido protegidas e encriptadas no fio.
Registo de Mensagens Malformadas Regista mensagens que a infraestrutura do WCF não consegue compreender ou processar.
As mensagens são registadas as-is, ou seja, encriptadas ou não
Quando as mensagens são registradas de forma descriptografada ou não criptografada, por padrão, o WCF remove chaves de segurança e informações potencialmente pessoais das mensagens antes de registrá-las. As próximas seções descrevem quais informações foram removidas e quando. O administrador da máquina e o implantador de aplicativos devem executar determinadas ações de configuração para alterar o comportamento padrão para registrar chaves e informações potencialmente pessoais.
Informações removidas dos cabeçalhos das mensagens ao registrar mensagens descriptografadas/não criptografadas
Quando as mensagens são registadas de forma desencriptada ou não encriptada, as chaves de segurança e as informações potencialmente pessoais são removidas por predefinição dos cabeçalhos e corpos das mensagens antes de serem registadas. A lista a seguir mostra o que o WCF considera chaves e informações potencialmente pessoais.
Chaves que foram removidas:
Para
xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust"exmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"wst:BinarySecretwst:EntropyPara
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd"exmlns:wsse="http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"wsse:Passwordwsse:Nonce
Informações potencialmente pessoais removidas:
Para
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.1.xsd"exmlns:wsse="http://docs.oasis-open.org/wss/2005/xx/oasis-2005xx-wss-wssecurity-secext-1.1.xsd"wsse:Usernamewsse:BinarySecurityTokenPara
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"os seguintes itens emboldsão removidos:
<Asserção MajorVersion="1" MinorVersion="1" AssertionId="[ID]" Issuer="[string]" IssueInstant="[dateTime]"
<Condição NotBefore="[dateTime]" NotOnOrAfter="[dateTime]">AudienceRestrictionCondition<>Audience<[uri]>/Audience<+ >/AudienceRestrictionCondition<* >DoNotCacheCondition /<* >!-- tipo abstrata base <Condition /<*>
</Condições>?
<Conselho><ReferênciaIDAfirmação>[ID]</ReferênciaIDAfirmação>* <Afirmação>[afirmação]</Afirmação>* [qualquer]* </Conselho>?
<!-- Tipos de base abstrata <Declaração />* <AssuntoSujeitoDeclaração><Sujeito>
<NameIdentifier
NameQualifier="[string]"?
Format="[uri]"?
>
[string]
</NameIdentifier>?
<ConfirmaçãoAssunto><MétodoDeConfirmação>[anyUri]</MétodoDeConfirmação>+ <DadosDeConfirmaçãoDoAssunto>[any]</DadosDeConfirmaçãoDoAssunto>?
<ds:KeyInfo>...</ds:KeyInfo>?
</ConfirmaçãoDeAssunto>?
</Assunto></AssuntoDeclaração*>
<DeclaraçãoDeAutenticação MétodoDeAutenticação="[uri]" InstanteDeAutenticação="[dateTime]"
[Assunto]
<SubjectLocality
IPAddress="[string]"?
DNSAddress="[string]"?
/>?
<AuthorityBinding AuthorityKind="[QName]" Location="[uri]" Binding="[uri]" />* </AuthenticationStatement>* <AttributeStatement> [Subject] <Atributo AttributeName="[string]" AttributeNamespace="[uri]"
<AttributeValue>[any]</AttributeValue>+
</Attribute>+ </AttributeStatement>* <AuthorizationDecisionStatement Resource="[uri]" Decision="[Permitir|Negar|Indeterminado]"
[Assunto] <Action Namespace="[uri]">[string]</Action>+ <Evidence><AssertionIDReference>[ID]</AssertionIDReference>+ <Assertion>[assertion]</Assertion>+ </Evidence>? </Declaração de Decisão de Autorização>* </Asserção>
Informações removidas dos corpos de mensagens ao registrar mensagens descriptografadas/não criptografadas
Conforme descrito anteriormente, o WCF remove chaves e informações potencialmente pessoais conhecidas dos cabeçalhos das mensagens para registo de mensagens descriptografadas e não criptografadas. Além disso, o WCF remove chaves e informações potencialmente pessoais conhecidas dos conteúdos das mensagens, incluindo os elementos e as ações detalhadas na lista a seguir, que descrevem mensagens de segurança envolvidas na troca de chaves.
Para os seguintes namespaces:
xmlns:wst="http://schemas.xmlsoap.org/ws/2004/04/trust" e xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" (por exemplo, se nenhuma ação estiver disponível)
As informações são removidas para estes elementos do corpo, que envolvem a troca de chaves:
wst:RequestSecurityToken
wst:RequestSecurityTokenResponse
wst:RequestSecurityTokenResponseCollection
As informações também são removidas para cada uma das seguintes Ações:
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
Nenhuma informação é removida dos cabeçalhos e dados do corpo específicos da aplicação
O WCF não rastreia informações pessoais em cabeçalhos específicos do aplicativo (por exemplo, cadeias de caracteres de consulta) ou dados do corpo (por exemplo, número de cartão de crédito).
Quando o registo de mensagens está ativado, os dados pessoais em cabeçalhos específicos da aplicação e os conteúdos podem estar visíveis nos registos. Novamente, o implantador de aplicativos é responsável por definir as ACLs nos arquivos de configuração e log. Eles também podem desativar o registro em log se não quiserem que essas informações fiquem visíveis ou filtrar essas informações dos arquivos de log depois que elas forem registradas.
Rastreamento do modelo de serviço
A origem de rastreamento do Modelo de Serviço (System.ServiceModel) permite o rastreamento de atividades e eventos relacionados ao processamento de mensagens. Esta funcionalidade utiliza a partir de System.Diagnostics a funcionalidade de diagnóstico do .NET Framework. Assim como a MessageLogging propriedade, o local e sua ACL são configuráveis pelo usuário usando arquivos de configuração do aplicativo .NET Framework. Tal como acontece com o registo de mensagens, a localização do ficheiro é sempre configurada quando o administrador permite o rastreio; assim, o administrador controla a ACL.
Os rastreamentos contêm cabeçalhos de mensagem quando uma mensagem está no escopo. Aplicam-se as mesmas regras para ocultar informações potencialmente pessoais nos cabeçalhos das mensagens na seção anterior: as informações pessoais identificadas anteriormente são removidas por padrão dos cabeçalhos nos rastreamentos. Tanto o administrador da máquina quanto o implantador de aplicativos devem modificar a configuração para registrar informações potencialmente pessoais. No entanto, as informações pessoais contidas em cabeçalhos específicos do aplicativo são registadas em registos. O implantador de aplicativos é responsável por definir as ACLs nos arquivos de configuração e rastreamento. Eles também podem desativar o rastreamento para ocultar essas informações ou filtrar essas informações dos arquivos de rastreamento depois que elas forem registradas.
Como parte do ServiceModel Tracing, IDs exclusivos (chamados IDs de atividade e, normalmente, um GUID) vinculam diferentes atividades à medida que uma mensagem flui através de diferentes partes da infraestrutura.
Ouvintes de rastreamento personalizados
Para registro e rastreamento de mensagens, um ouvinte de rastreamento personalizado pode ser configurado, que pode enviar rastreamentos e mensagens no fio (por exemplo, para um banco de dados remoto). O implantador de aplicativos é responsável por configurar ouvintes personalizados ou permitir que os usuários façam isso. Eles também são responsáveis por quaisquer informações pessoais expostas no local remoto e pela aplicação adequada de ACLs a esse local.
Outros recursos para profissionais de TI
O WCF tem um provedor WMI que expõe as informações de configuração da infraestrutura do WCF por meio do WMI (fornecido com o Windows). Por padrão, a interface WMI está disponível para administradores.
A configuração do WCF usa o mecanismo de configuração do .NET Framework. Os arquivos de configuração são armazenados na máquina. O desenvolvedor do aplicativo e o administrador criam os arquivos de configuração e a ACL para cada um dos requisitos do aplicativo. Um ficheiro de configuração pode conter endereços de endpoint e links para certificados no repositório de certificados. Os certificados podem ser usados para fornecer dados do aplicativo para configurar várias propriedades dos recursos usados pelo aplicativo.
WCF também usa a funcionalidade de despejo de processo do .NET Framework chamando o FailFast método.
Ferramentas para profissionais de TI
O WCF também fornece as seguintes ferramentas profissionais de TI, fornecidas no SDK do Windows.
SvcTraceViewer.exe
O visualizador exibe arquivos de rastreamento WCF. O visualizador mostra toda a informação contida nos traços.
SvcConfigEditor.exe
O editor permite ao usuário criar e editar arquivos de configuração WCF. O editor mostra qualquer informação contida nos arquivos de configuração. A mesma tarefa pode ser realizada com um editor de texto.
ServiceModel_Reg
Esta ferramenta permite ao usuário gerenciar instalações ServiceModel em uma máquina. A ferramenta exibe mensagens de status em uma janela do console quando é executada e, no processo, pode exibir informações sobre a configuração da instalação do WCF.
WSATConfig.exe e WSATUI.dll
Essas ferramentas permitem que os profissionais de TI configurem o suporte de rede WS-AtomicTransaction interoperável no WCF. As ferramentas exibem e permitem que o usuário altere os valores das configurações de WS-AtomicTransaction mais comumente usadas armazenadas no registro.
Características transversais
As seguintes características são transversais. Ou seja, podem ser compostas com qualquer uma das características anteriores.
Estrutura de serviço
Os cabeçalhos podem conter um ID de instância, que é um GUID que associa uma mensagem a uma instância de uma classe CLR.
O WSDL (Web Services Description Language) contém uma definição da porta. Cada porta tem um endereço de ponto de extremidade e uma associação que representa os serviços usados pelo aplicativo. A exposição do WSDL pode ser desativada usando a configuração. Nenhuma informação é retida na máquina.