Procedimiento para reemplazar la reserva de direcciones URL de WCF por una reserva restringida

Una reserva de direcciones URL le permite restringir quién puede recibir mensajes desde una URL o un conjunto de ellas. Una reserva consta de una plantilla de dirección URL, una lista de control de acceso (ACL) y un conjunto de marcas. La plantilla de dirección URL define a qué direcciones URL afecta la reserva. Para obtener más información sobre cómo se procesan las plantillas de direcciones URL, consulte Enrutamiento de solicitudes entrantes. La ACL determina qué usuario o grupo de usuarios pueden recibir mensajes desde las direcciones URL especificadas. Las marcas indican si la reserva proporciona permiso a un usuario o a un grupo de ellos para realizar escuchas directamente en la dirección URL o delega el permiso de escucha en otro proceso.

Como parte de la configuración predeterminada del sistema operativo, Windows Communication Foundation (WCF) crea una reserva accesible de forma global para el puerto 80 a fin de permitir que todos los usuarios ejecuten aplicaciones que usen un enlace HTTP dual para la comunicación dúplex. Dado que la ACL en esta reserva es para todos los usuarios, los administradores no pueden conceder o denegar explícitamente el permiso para realizar escuchas en una dirección URL o en un conjunto de ellas. En este tema se explica cómo eliminar esta reserva y cómo volver a crearla con una ACL restringida.

En Windows Vista o Windows Server 2008, puede ver todas las reservas de direcciones URL HTTP desde un símbolo del sistema elevado si introduce netsh http show urlacl. En el ejemplo siguiente se muestra el aspecto que debe tener una reserva de direcciones URL WCF:

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

La reserva consta de una plantilla de dirección URL que se usa cuando una aplicación WCF usa un enlace HTTP dual para la comunicación dúplex. Las direcciones URL con este formato permiten que un servicio WCF envíe mensajes al cliente WCF cuando se comunica a través de un enlace HTTP dual. Todos los usuarios tienen permiso para realizar escuchas en la dirección URL, pero no para delegar la escucha en otro proceso. Por último, la ACL se describe en el lenguaje de definición de descriptor de seguridad (SSDL). Para obtener más información sobre SSDL, consulte SSDL

Para eliminar la reserva de direcciones URL de WCF

  1. Haga clic en Inicio, seleccione Todos los programas,haga clic en Accesorios, haga clic con el botón derecho en Símbolo del sistema y, a continuación, haga clic en Ejecutar como administrador en el menú contextual que aparece. Haga clic en Continuar en la ventana Control de cuentas de usuario (UAC) que puede solicitar permisos para continuar.

  2. Escriba netsh http delete urlacl url=http://+:80/Temporary_Listen_Addresses/ en la ventana del símbolo del sistema.

  3. Si la reserva se elimina correctamente, se muestra el mensaje siguiente: La reserva de dirección URL se eliminó correctamente.

Crear un nuevo grupo de seguridad y una nueva reserva de direcciones URL restringida

Para reemplazar la reserva de direcciones URL WCF por una reserva restringida, primero debe crear un nuevo grupo de seguridad. Hay dos maneras de hacerlo: desde un símbolo del sistema o desde la consola de administración del equipo. Opte por una de ellas.

Para crear un nuevo grupo de seguridad desde un símbolo del sistema

  1. Haga clic en Inicio, Todos los programas, Accesorios, haga clic con el botón derecho en Símbolo del sistema y, a continuación, en Ejecutar como administrador en el menú contextual que aparece. Haga clic en Continuar en la ventana Control de cuentas de usuario (UAC) que puede solicitar permisos para continuar.

  2. Escriba net localgroup "<security group name>" /comment:"<security group description>" /add en el símbolo del sistema. Reemplace el <nombre del grupo de seguridad> por el nombre del grupo de seguridad que quiera crear y la<descripción del grupo de seguridad> por una descripción adecuada para dicho grupo.

  3. Si el grupo de seguridad se crea correctamente, se muestra el mensaje siguiente: El comando se completó correctamente.

Para crear un nuevo grupo de seguridad desde la consola de administración del equipo

  1. Haga clic en Inicio, Panel de control, Herramientas administrativas y Administración de equipos para mostrar la consola de administración del equipo. Haga clic en Continuar en la ventana Control de cuentas de usuario (UAC) que puede solicitar permisos para continuar.

  2. Haga clic en Herramientas del sistema y en Usuarios y grupos locales, haga clic con el botón derecho en la carpeta Grupos y, por último, haga clic en Nuevo grupo en el menú contextual que aparece. Escriba el Nombre de grupo y la Descripción necesarios, así como otros detalles de este nuevo grupo de seguridad, y, a continuación, haga clic en el botón Crear para crear el grupo de seguridad.

Para crear la reserva de direcciones URL restringida

  1. Haga clic en Inicio, Todos los programas, Accesorios, haga clic con el botón derecho en Símbolo del sistema y, a continuación, en Ejecutar como administrador en el menú contextual que aparece. Haga clic en Continuar en la ventana Control de cuentas de usuario (UAC) que puede solicitar permisos para continuar.

  2. Escriba netsh http add urlacl url=http://+:80/Temporary_Listen_Addresses/ user="<machine name>\<security group name> en el símbolo del sistema. Reemplace el <nombre del equipo> por el nombre del equipo en el que se va a crear el grupo y el <nombre del grupo de seguridad> por el nombre del grupo de seguridad que se ha creado antes.

  3. Si la reserva se crea correctamente, se muestra el mensaje siguiente: La reserva de direcciones URL se agregó correctamente.