Como: substituir a reserva de URL do WCF com uma reserva restrita

Uma reserva de URL permite restringir quem pode receber mensagens de uma URL ou de um conjunto de URLs. Uma reserva consiste em um modelo de URL, uma ACL (lista de controle de acesso) e um conjunto de sinalizadores. O modelo de URL define quais URLs a reserva afeta. Para obter mais informações sobre como os modelos de URL são processados, consulte Solicitações de entrada de roteamento. A ACL controla qual usuário ou grupo de usuários tem permissão para receber mensagens das URLs especificadas. Os sinalizadores indicam se a reserva é para conceder a um usuário ou grupo permissão para escutar na URL diretamente ou para delegar a permissão para ouvir algum outro processo.

Como parte da configuração padrão do sistema operacional, o WCF (Windows Communication Foundation) cria uma reserva acessível globalmente para a porta 80 para permitir que todos os usuários executem aplicativos que usam uma associação HTTP dupla para comunicação duplex. Como a ACL nessa reserva é para todos, os administradores não podem permitir explicitamente ou não permitir permissão para escutar em uma URL ou conjunto de URLs. Este tópico explica como excluir essa reserva e como recriar a reserva com uma ACL restrita.

No Windows Vista ou no Windows Server 2008, você pode exibir todas as reservas de URL HTTP de um prompt de comando com privilégios elevados inserindo netsh http show urlacl. O exemplo a seguir mostra o que uma reserva de URL do WCF deve se parecer:

Reserved URL : http://+:80/Temporary_Listen_Addresses/  
        User: \Everyone  
            Listen: Yes  
            Delegate: No  
            SDDL: D:(A;;GX;;;WD)  

A reserva consiste em um modelo de URL usado quando um aplicativo WCF está usando uma associação dupla HTTP para comunicação duplex. As URLs desse formulário são usadas para um serviço WCF enviar mensagens de volta ao cliente WCF ao se comunicar por uma associação dupla HTTP. Todos recebem permissão para escutar na URL, mas não para delegar ouvir outro processo. Por fim, a ACL é descrita no SSDL (Security Descriptor Definition Language). Para obter mais informações sobre o SSDL, consulte SSDL

Para excluir a reserva de URL do WCF

  1. Clique em Iniciar, aponte para Todos os programas, clique em Acessórios, clique com o botão direito em Prompt de comando e clique em Executar como administrador no menu que contexto que vai aparecer. Clique em Continuar na janela UAC (Controle de Conta de Usuário) que pode solicitar permissões para continuar.

  2. Digite netsh http delete urlacl url=http://+:80/Temporary_Listen_Addresses/ na janela do prompt de comando.

  3. Se a reserva for excluída com êxito, a mensagem a seguir será exibida. Reserva de URL excluída com sucesso

Criando um novo grupo de segurança e nova reserva de URL restrita

Para substituir a reserva de URL do WCF por uma reserva restrita, você deve primeiro criar um novo grupo de segurança. Você pode fazer isso de duas maneiras: em um prompt de comando ou no console de gerenciamento de computador. Você só precisa realiza uma.

Para criar um novo grupo de segurança a partir de um prompt de comando

  1. Clique em Iniciar, aponte para Todos os programas, clique em Acessórios, clique com o botão direito em Prompt de comando e clique em Executar como administrador no menu que contexto que vai aparecer. Clique em Continuar na janela UAC (Controle de Conta de Usuário) que pode solicitar permissões para continuar.

  2. Digite net localgroup "<security group name>" /comment:"<security group description>" /add no prompt de comando. Substituindo o <nome do grupo de segurança> pelo nome do grupo de segurança que você deseja criar e a <descrição do grupo de segurança> por uma descrição adequada para o grupo de segurança.

  3. Se o grupo de segurança for criado com êxito, a mensagem a seguir será exibida. O comando foi concluído com sucesso.

Para criar um novo grupo de segurança a partir do console de gerenciamento de computador

  1. Clique em Iniciar, Painel de controle, Ferramentas administrativas e clique em Gerenciamento do computador para abrir o Console de gerenciamento do computador. Clique em Continuar na janela UAC (Controle de Conta de Usuário) que pode solicitar permissões para continuar.

  2. Clique em Ferramentas do sistema, em Usuários e grupos locais, clique com o botão direito do mouse na pasta Grupos e clique em Novo Grupo no menu de contexto que aparece. Digite o Nome do grupo desejado, a Descrição e outros detalhes desse novo grupo de segurança e clique no botão Criar para criar o grupo de segurança.

Para criar a reserva de URL restrita

  1. Clique em Iniciar, aponte para Todos os programas, clique em Acessórios, clique com o botão direito em Prompt de comando e clique em Executar como administrador no menu que contexto que vai aparecer. Clique em Continuar na janela UAC (Controle de Conta de Usuário) que pode solicitar permissões para continuar.

  2. Digite netsh http add urlacl url=http://+:80/Temporary_Listen_Addresses/ user="<machine name>\<security group name> no prompt de comando. Substituindo o <nome do computador> pelo nome do computador no qual o grupo deve ser criado e o <o nome do grupo de segurança> pelo nome do grupo de segurança criado anteriormente.

  3. Se a reserva for criada com sucesso, a mensagem a seguir será exibida. Reserva de URL adicionada com sucesso.