Compartir a través de


Tutorial: Usar el modo de seguridad de mensajes con los adaptadores de WCF-NetTcp

Nota

Para obtener más información sobre los adaptadores, consulte Adaptadores en BizTalk Server.

Introducción

En este tutorial se muestra cómo configurar el adaptador de WCF-NetTcp para usar el modo de seguridad de mensajes de Windows Communication Foundation (WCF), que usa la especificación WS-Security para ayudar a proteger los mensajes que transmite el adaptador. Esta especificación describe las mejoras en el protocolo de mensajería SOAP para conseguir confidencialidad, integridad y autenticación en el nivel de mensaje SOAP. En el modo de seguridad de mensaje, es necesario especificar el certificado de servicio para operaciones como, por ejemplo, el cifrado y descifrado y la firma y verificación según las combinaciones del modo de seguridad.

El adaptador de WCF-NetTcp usa el enlace NetTcpBinding para comunicarse entre los clientes WCF y los servicios remotos de WCF. Proporciona acceso completo a características de confiabilidad, seguridad y transacciones de SOAP. Permite que las orquestaciones y esquemas se publiquen como servicios WCF, y también proporciona la capacidad de una orquestación para consumir servicios WCF externos. Este adaptador usa el transporte TCP y los mensajes tienen una codificación binaria. El adaptador de WCF-NetTcp consta de un adaptador de envío y un adaptador de recepción.

En este tutorial se muestra cómo crear certificados para el modo de seguridad de mensaje con el Servicio de certificados de Active Directory. Creará certificados para el servidor y el cliente y, luego, configurará una ubicación de recepción de WCF-NetTcp para usar los certificados en modo de seguridad de mensaje. Mediante el uso de un cliente WCF, enviará mensajes a esa ubicación en un estado cifrado según la sintaxis y el procesamiento del cifrado XML.

Cuando concluya el tutorial, comprenderá cómo se realizan las tareas siguientes:

  • Use el Servicio de certificados de Active Directory para crear una solicitud de certificado y completar el proceso mediante la emisión del certificado.

  • En la consola de administración de BizTalk Server, configure el adaptador de WCF-NetTcp para usar el modo de seguridad de mensajes.

Requisitos previos

Para realizar los pasos de este ejemplo, asegúrese de que su entorno instale los siguientes requisitos previos;

  • Tanto el equipo que compila los ensamblados como ejecuta el proceso de implementación, y el equipo que ejecuta el ejemplo requieren Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 y Microsoft BizTalk Server.

  • El equipo que se usa para generar los ensamblados y ejecutar el proceso de implementación requiere Microsoft Visual Studio.

  • El equipo que ejecuta el ejemplo requiere los adaptadores de WCF y las herramientas de administración de WCF. Estas son opciones para instalar durante la instalación de Microsoft BizTalk Server.

  • En los equipos que usa para realizar tareas administrativas, debe ejecutarse como una cuenta de usuario que sea miembro del grupo administradores de BizTalk Server para configurar las opciones de la aplicación BizTalk Server en la consola de administración de BizTalk Server. Esta cuenta de usuario también debe ser miembro del grupo de administradores local para la implementación de la aplicación, la administración de las instancias de host y otras tareas que puedan ser necesarias.

  • En cualquier equipo que requiera la funcionalidad WCF, complete el procedimiento de instalación único para los ejemplos de WCF en https://go.microsoft.com/fwlink/?LinkId=135510.

  • En el equipo que ejecuta el ejemplo e importa un enlace o un archivo de .msi en BizTalk Server, asegúrese de que el host no es un host de confianza o se producirá un error en la importación.

  • En el equipo donde se ejecuta en el ejemplo, asegúrese de que están instalados los Servicios de certificados de Active Directory.

  • Debe descargar el código del tutorial y extraerlo en el equipo. Este tutorial forma parte de todo el paquete tutorial del adaptador de WCF. Puede descargar el archivo WCFAdapterWalkthroughs.exe desde el Centro para desarrolladores de BizTalk Server en https://go.microsoft.com/fwlink/?LinkId=194140.

Creación de los certificados para este tutorial

  1. En esta sección solicitará certificados de servicio y cliente, emitirá los certificados y los instalará en los almacenes adecuados. Los Servicios de certificados de Active Directory se usan para crear un certificado con una cadena de certificados de confianza. Si no instaló Servicios de certificados de Active Directory como parte de los requisitos previos, instale Servicios de certificados de Active Directory en el equipo. Si ya están instalados, vaya al paso 2.

    1. Haga clic sucesivamente en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de servidores.

    2. En el nodo Administrador del servidor, haga clic en Agregary, a continuación, haga clic en Roles.

    3. Se abrirá el cuadro de diálogo Antes de comenzar para el Asistente para agregar roles. Haga clic en Next.

    4. En la página Seleccionar roles de servidor , seleccione Servicios de certificados de Active Directory, haga clic en Siguiente y siga las instrucciones en pantalla para completar la instalación.

  2. Cree una solicitud de certificado para la autenticación del servicio. Para ello:

    1. En Internet Explorer, visite el sitio http://localhost/certsrvweb . En la página principal , haga clic en Solicitar un certificado y, a continuación, haga clic en Solicitud avanzada de certificado en la página Solicitar un certificado .

      Nota

      Al usar Windows Server 2008 SP2 como entidad de certificación y solicitar una solicitud de certificado desde un equipo con Windows Server 2008 SP2, puede obtener el error "Para completar la inscripción de certificados, el sitio web de la ENTIDAD de certificación debe configurarse para usar la autenticación HTTPS". Si se produce este error, el sitio web de inscripción debe configurarse con un certificado web (SSL). Consulte estos vínculos para obtener más información sobre cómo llevar a cabo esta tarea:

      AD CS: Inscripción web

      Instrucciones de instalación del certificado de servidor de Internet Information Services (IIS)

    2. En la página Solicitud de certificado avanzada , haga clic en Crear y envíe una solicitud a esta CA.

    3. En la página Solicitud de certificado avanzada , escriba localhost el cuadro de texto Nombre , seleccione Certificado de autenticación de servidor en la lista desplegable Tipo de certificado necesario y, a continuación, haga clic en Enviar.

  3. Cree una solicitud de certificado para la autenticación del cliente. Para ello:

    1. En Internet Explorer, visite el sitio http://localhost/certsrvweb . En la página principal , haga clic en Solicitar un certificado y, a continuación, haga clic en Solicitud avanzada de certificado en la página Solicitar un certificado .

    2. En la página Solicitud de certificado avanzada , haga clic en Crear y envíe una solicitud a esta CA.

    3. En la página Solicitud de certificado avanzada , escriba contoso el cuadro de texto Nombre , seleccione Certificado de autenticación de cliente en la lista desplegable Tipo de certificado necesario y, a continuación, haga clic en Enviar.

    Nota

    El certificado de autenticación de cliente se usa si ejecuta BizTalk Server en el equipo que no sea el controlador de dominio. Esto se configurará en el cuadro de diálogo de propiedades del adaptador.

  4. Emita los certificados utilizando la consola de administración de la entidad emisora de certificados como se indica a continuación:

    1. Haga clic en Inicio, seleccione Herramientas administrativasy, a continuación, haga clic en Entidad de certificación.

    2. En la consola de administración de la entidad de certificación, expanda el nombre de la entidad de certificación y, a continuación, haga doble clic en Solicitud pendiente.

    3. En el panel derecho de la consola de administración de la entidad de certificación , haga clic con el botón derecho en la solicitud del certificado de autenticación de servicio, seleccione Todas las tareas y, a continuación, haga clic en Emitir.

    4. En el panel derecho de la consola de administración de la entidad de certificación , haga clic con el botón derecho en la solicitud del certificado de autenticación de cliente, seleccione Todas las tareas y, a continuación, haga clic en Emitir.

    5. Cierre la consola de administración de la entidad de certificación .

  5. Instale los certificados emitidos en el equipo. Para ello:

    1. En Internet Explorer, visite el sitio http://localhost/certsrvweb .

    2. En la página principal , haga clic en Ver el estado de una solicitud de certificado pendiente.

    3. En la página Ver el estado de una solicitud de certificado pendiente , haga clic en el certificado de autenticación del servidor.

    4. En la página Certificado emitido , haga clic en Instalar este certificado.

    5. En Internet Explorer, visite el sitio http://localhost/certsrvweb .

    6. En la página principal , haga clic en Ver el estado de una solicitud de certificado pendiente.

    7. En la página Ver el estado de una solicitud de certificado pendiente , haga clic en el certificado de autenticación de cliente.

    8. En la página Certificado emitido , haga clic en Instalar este certificado.

  6. Asegúrese de que los certificados emitidos están instalados correctamente. Para ello:

    1. Abra Microsoft Management Console (MMC). Para ello, haga clic en Inicio, haga clic en Ejecutar, escriba mmcy, a continuación, haga clic en Aceptar.

    2. En MMC, en el menú Archivo, haga clic en Agregar o quitar complemento.

    3. En el cuadro de diálogo Agregar o quitar complemento , haga clic en Agregar.

    4. En el cuadro de diálogo Agregar complemento independiente , seleccione Certificados en la lista Complemento independiente disponible y, a continuación, haga clic en Agregar.

    5. En el cuadro de diálogo Complemento certificado , seleccione la opción Mi cuenta de usuario y, a continuación, haga clic en Finalizar.

    6. Cierre todos los cuadros de diálogo abiertos.

    7. En MMC, en la ventana Raíz de la consola, expanda Certificados - Usuario actual, expanda Personal, Certificadosy, a continuación, asegúrese de que se muestran los certificados que instaló en el paso anterior.

Creación de la aplicación de BizTalk para este tutorial

  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en Administración de BizTalk Server.

  2. En la consola de administración de BizTalk Server, expanda Grupo de BizTalk, haga clic con el botón derecho en Aplicaciones, seleccione Nuevoy, a continuación, haga clic en Aplicación.

  3. En el cuadro de diálogo Propiedades de la aplicación , en la pestaña General , escriba WcfMessageSecurityy, a continuación, haga clic en Aceptar.

  4. Cree una ubicación de recepción mediante el adaptador de WCF-NetTcp para la aplicación de BizTalk de la manera siguiente:

    1. En la consola de administración de BizTalk Server, expanda WcfMessageSecurity, haga clic con el botón derecho en Puertos de recepción, seleccione Nuevoy, a continuación, haga clic en Puerto de recepción unidireccional.

    2. En el cuadro de diálogo Propiedades del puerto de recepción , en el cuadro de texto Nombre , escriba WcfMessageSecurity.OrderRequest.Receivey, a continuación, haga clic en Aceptar. El nombre de este puerto de recepción es totalmente arbitrario pero tiene sentido lógico.

    3. En la consola de administración de BizTalk Server, haga clic con el botón derecho en Ubicaciones de recepción, haga clic en Nuevoy, a continuación, en Ubicación de recepción unidireccional. El cliente WCF enviará un mensaje WCF a esta ubicación de recepción. Seleccione el puerto recive WcfMessageSecurity.OrderRequest.Receive y, a continuación, haga clic en Aceptar.

    4. En el cuadro de diálogo Propiedades de ubicación de recepción , en el cuadro de texto Nombre , escriba WcfMessageSecurity.OrderRequest.Receive.NetTcp. El nombre de esta ubicación de recepción es totalmente arbitrario pero tiene sentido lógico.

    5. En el cuadro de diálogo Propiedades de ubicación de recepción, en la sección Transporte junto a Tipo, seleccione WCF-NetTcp en la lista desplegable y, a continuación, haga clic en Configurar.

    6. En el cuadro de diálogo Propiedades de transporte de WCF-NetTcp , en la pestaña General , en el cuadro de texto Dirección (URI), escriba net.tcp://localhost/WcfMessageSecurity.

    7. En el cuadro de diálogo Propiedades de transporte de WCF-NetTcp , en la pestaña Seguridad , seleccione Mensaje en la lista desplegable Modo de seguridad y, a continuación, seleccione Certificado en la lista desplegable Tipo de credencial de cliente de mensaje. Esto configura el adaptador de WCF-NetTcp para que use el modo de seguridad de mensaje.

    8. Configure el certificado del servicio para usarlo con el modo de seguridad de mensaje. En el cuadro de diálogo Propiedades de transporte de WCF-NetTcp , en la sección Certificación del servicio , haga clic en Examinar. En el cuadro de diálogo Seleccionar certificado de servicio , seleccione el certificado de autenticación de servidor que instaló en el procedimiento anterior y, a continuación, haga clic en Aceptar para cerrar el cuadro de diálogo y guardar los cambios.

    9. Cierre todos los cuadros de diálogo abiertos.

      Nota

      Para autenticar los certificados de cliente con los adaptadores de recepción de WCF, la cadena de certificados de CA para los certificados de cliente debe instalarse en el almacén de certificados de entidades de certificación raíz de confianza del equipo que ejecuta las instancias de host para los adaptadores de WCF. Dado que este tutorial presupone que el servicio de certificado se encuentra instalado en el mismo equipo que los adaptadores de WCF y el cliente de WCF, no es necesario instalar la cadena de certificados de la entidad emisora en el equipo.

  5. Cree un puerto de envío de archivos para la aplicación de BizTalk. Esta es la ubicación donde la orquestación enviará el mensaje de salida de la solicitud de pedido que representa el servicio WCF.

    1. En la consola de administración de BizTalk Server, expanda WcfMessageSecurity, haga clic con el botón derecho en Puertos de envío, seleccione Nuevoy, a continuación, haga clic en Puerto de envío unidireccional estático.

    2. En el cuadro de diálogo Propiedades de puerto de envío, en la pestaña General , en el cuadro de texto Nombre , escriba WcfMessageSecurity.OrderRequest.Send.FILE.

    3. En el cuadro de diálogo Propiedades del puerto de envío, en la sección Transporte situada junto a Tipo, seleccione ARCHIVO en la lista desplegable y, a continuación, haga clic en Configurar.

    4. En el cuadro de diálogo Propiedades de transporte de archivos , en la pestaña General , escriba C:\WCFMessageSecurity\OrderRequestOut en el cuadro de texto Carpeta de destino y, a continuación, haga clic en Aceptar.

    5. En el cuadro de diálogo Propiedades del puerto de envío, en la pestaña Filtros , seleccione BTS. ReceivePortName para el campo Propiedad , escriba WcfMessageSecurity.OrderRequest.Receive para el campo Valor y, a continuación, haga clic en Aceptar. Esta expresión de filtro enruta los mensajes WCF entrantes del cliente al puerto de recepción WcfMessageSecurity.OrderRequest.Receive a este puerto de envío.

Prueba del cliente WCF en la aplicación de BizTalk

  1. En la consola de administración de BizTalk Server, haga clic con el botón derecho en WcfMessageSecurityy, a continuación, haga clic en Iniciar. En el cuadro de diálogo Inicio , haga clic en Iniciar.

  2. En la consola de administración de BizTalk Server, expanda Configuración de la plataforma, expanda Instancias de host, haga clic con el botón derecho en BizTalkServerApplication u otra instancia de host adecuada y, a continuación, haga clic en Reiniciar.

  3. Cree una carpeta denominada C:\WCFMessageSecurity para la carpeta de trabajo de este tutorial. Extraiga los archivos del tutorial en esta carpeta.

  4. En Visual Studio, abra el archivo WcfMessageSecurity.sln en la carpeta C:\WCFMessageSecurity .

  5. En Visual Studio, en Explorador de soluciones, expanda WcfClient y abra Program.cs para revisarlo.

    • El cliente envía un mensaje a la ubicación de recepción WCF-NetTcp que creó en el procedimiento anterior.

    • El cliente crea un canal con NetTcpBinding y, a continuación, configura el enlace para usar certificados para el tipo de credencial de cliente.

    • El cliente configura el comportamiento del extremo para que use el certificado de autenticación del cliente que instaló en el procedimiento anterior para la autenticación del cliente.

    • La clase Program implementa las interfaces IClientMessageInspector e IEndpointBehavior para mostrar mensajes WCF salientes de este cliente en un símbolo del sistema.

  6. En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en la solución WcfMessageSecurity y, a continuación, haga clic en Recompilar.

  7. En Visual Studio, en el menú Depurar , haga clic en Iniciar sin depurar para ejecutar WcfClient para enviar un mensaje a la WCF-NetTcp ubicaciones de recepción. Se abrirá un símbolo del sistema para mostrar el resultado de la ejecución.

    1. En el símbolo del sistema, revise el mensaje de solicitud de pedido. Preste atención al campo OrderId y a la estructura del mensaje.

    2. En el símbolo del sistema, vaya a la C:\WCFMessageSecurity\OrderRequestOut carpeta y asegúrese de que aparece el mensaje de solicitud de pedido enviado por el cliente WCF.

    3. Cierre el símbolo del sistema.