Partilhar via


Usando a representação com segurança de transporte

Representação é a capacidade de um aplicativo de servidor assumir a identidade do cliente. É comum que os serviços usem a representação ao validar o acesso aos recursos. O aplicativo de servidor é executado usando uma conta de serviço, mas quando o servidor aceita uma conexão de cliente, ele representa o cliente para que as verificações de acesso sejam executadas usando as credenciais do cliente. A segurança de transporte é um mecanismo para passar credenciais e proteger a comunicação usando essas credenciais. Este tópico descreve o uso da segurança de transporte no Windows Communication Foundation (WCF) com o recurso de representação. Para obter mais informações sobre representação usando segurança de mensagem, consulte Delegação e representação.

Cinco níveis de representação

A segurança do transporte utiliza cinco níveis de representação, conforme descrito na tabela a seguir.

Nível de representação Description
None O aplicativo de servidor não tenta representar o cliente.
Anónimo O aplicativo de servidor pode executar verificações de acesso em relação às credenciais do cliente, mas não recebe nenhuma informação sobre a identidade do cliente. Esse nível de representação é significativo apenas para comunicação na máquina, como pipes nomeados. Usar Anonymous com uma conexão remota promove o nível de representação para Identificar.
Identificar O aplicativo de servidor conhece a identidade do cliente e pode executar a validação de acesso em relação às credenciais do cliente, mas não pode representar o cliente. Identify é o nível de representação padrão usado com credenciais SSPI no WCF, a menos que o provedor de token forneça um nível de representação diferente.
Representar O aplicativo de servidor pode acessar recursos na máquina do servidor como o cliente, além de executar verificações de acesso. O aplicativo de servidor não pode acessar recursos em máquinas remotas usando a identidade do cliente porque o token representado não tem credenciais de rede
Delegar Além de ter os mesmos recursos Impersonateque o , o nível de representação Delegate também permite que o aplicativo de servidor acesse recursos em máquinas remotas usando a identidade do cliente e passe a identidade para outros aplicativos.

Importante A conta de domínio do servidor deve ser marcada como confiável para delegação no controlador de domínio para usar esses recursos adicionais. Esse nível de representação não pode ser usado com contas de domínio de cliente marcadas como confidenciais.

Os níveis mais comumente usados com segurança de transporte são Identify e Impersonate. Os níveis None e Anonymous não são recomendados para uso típico, e muitos transportes não suportam o uso desses níveis com autenticação. O Delegate nível é um recurso poderoso que deve ser usado com cuidado. Somente aplicativos de servidor confiáveis devem receber permissão para delegar credenciais.

Usar a Impersonate representação nos níveis ou Delegate requer que o aplicativo de servidor tenha o SeImpersonatePrivilege privilégio. Um aplicativo tem esse privilégio por padrão se estiver sendo executado em uma conta no grupo Administradores ou em uma conta com um SID de Serviço (Serviço de Rede, Serviço Local ou Sistema Local). A representação não requer autenticação mútua do cliente e do servidor. Alguns esquemas de autenticação que oferecem suporte à representação, como NTLM, não podem ser usados com autenticação mútua.

Problemas específicos de transporte com a representação

A escolha de um transporte no WCF afeta as escolhas possíveis para a representação. Esta seção descreve problemas que afetam o HTTP padrão e os transportes de pipe nomeado no WCF. Os transportes personalizados têm suas próprias restrições no suporte à representação.

Transporte de tubo nomeado

Os seguintes itens são usados com o transporte de tubo nomeado:

  • O transporte de tubo nomeado destina-se ao uso somente na máquina local. O transporte de pipe nomeado no WCF explicitamente não permite conexões entre máquinas.

  • Os pipes nomeados não podem ser usados com o nível de ImpersonateDelegate representação. O pipe nomeado não pode impor a garantia na máquina nesses níveis de representação.

Para obter mais informações sobre pipes nomeados, consulte Escolhendo um transporte.

Transporte HTTP

As associações que usam o transporte HTTP (WSHttpBinding e BasicHttpBinding) suportam vários esquemas de autenticação, conforme explicado em Noções básicas sobre autenticação HTTP. O nível de representação suportado depende do esquema de autenticação. Os seguintes itens são usados com o transporte HTTP:

  • O Anonymous esquema de autenticação ignora a representação.

  • O Basic esquema de autenticação suporta apenas o Delegate nível. Todos os níveis inferiores de representação são atualizados.

  • O Digest esquema de autenticação suporta apenas os Impersonate níveis e Delegate .

  • O NTLM esquema de autenticação, selecionável diretamente ou através de negociação, suporta apenas o Delegate nível na máquina local.

  • O esquema de autenticação Kerberos, que só pode ser selecionado por meio de negociação, pode ser usado com qualquer nível de representação suportado.

Para obter mais informações sobre o transporte HTTP, consulte Escolhendo um transporte.

Consulte também