wcf authentication authorization binding net.tcp

Enlaces de WCF net.tcp, formatos de mensaje y preguntas de seguridad



authentication authorization (2)

En un nivel muy básico, ¿es correcto que WCF use Binary (Net.Tcp), HTTP o MSMQ para transferir mi mensaje en el cable?

Estás confundiendo la capa de transporte con el mecanismo de serialización. Las opciones de transporte de WCF son TCP, Canalizaciones con nombre, HTTP y MSMQ. Las opciones de serialización de WCF son binarias, Texto (que incluye SOAP, POX y JSON) y MTOM.

Sin embargo, ¿es cierto que en todos los casos, independientemente de cómo se transfieren los datos, el mensaje en sí mismo en formato SOAP con encabezados y un cuerpo? Entonces es una especie de mensaje XML que se transmite en HTTP / S o en formato binario.

No. WCF usa la clase Message como la unidad atómica para las comunicaciones. Es similar a SOAP en estructura, pero no es un formato de serialización como SOAP.

¿Net.Tcp es una buena opción para mi aplicación de servidor cliente? Es similar a una aplicación de mensajería en que los clientes son todos los usuarios remotos del otro lado del servidor de seguridad de mi servidor. La mayoría de las cosas que estoy leyendo me dicen que use WS * y HTTP.

Parece que TCP no sería una buena opción. Los cortafuegos podrían dificultar el TCP a menos que pueda operar su servidor en el puerto 80 o 443. Desde mi propia experiencia, también recomendaría no usar WCF con un enlace TCP en implementaciones de Internet. Cuando se pierde una conexión TCP, WCF lo hace saltar a través de muchos aros para atraparlo y restablecerlo. Los enlaces HTTP son mucho más fáciles de administrar.

¿Net.Tcp está protegido por estándar y sin certificados? - es decir, la gente no puede escuchar por cable y descifrar los datos que van y vienen.

El enlace de NetTCP está protegido por defecto con TLS .

¿Es posible enviar un nombre de usuario y contraseña usando net.tcp y sin un certificado instalado?

Puede usar un cerificate preinstalado para autenticación con el enlace TCP. También puede agregar un nombre de usuario y contraseña a sus encabezados de mensaje, pero eso es algo separado.

Si es así, supongo que puedo conectar esto a mi proveedor de membresía y autenticar el acceso a cada método en la implementación de mi contrato de servicio.

Puede extraer los encabezados de mensaje usando OperationContext y extraer la información que desee y utilizarla con su proveedor de autenticación.

Supongo que con el nombre de usuario y la contraseña de seguridad, el proxy se inicializa con el nombre de usuario y la contraseña y que esta información se envía con cada solicitud.

y

Luego se invocará a mi proveedor de membresía para cada llamada a un método y haré lo que sea necesario para obtener la autorización del método.

Parece que quiere echar un vistazo a Cómo: Usar el proveedor de membresía de ASP.NET .

lo siento por las preguntas estúpidas, pero hay algunas cosas sobre WCF que no puedo entender. Sería muy agradecido por algunos consejos sobre lo siguiente ...

  • En un nivel muy básico, ¿es correcto que WCF use Binary (Net.Tcp), HTTP o MSMQ para transferir mi mensaje en el cable?

  • Sin embargo, ¿es cierto que en todos los casos, independientemente de cómo se transfieren los datos, el mensaje en sí mismo en formato SOAP con encabezados y un cuerpo? Entonces es una especie de mensaje XML que se transmite en HTTP / S o en formato binario.

  • ¿Net.Tcp es una buena opción para mi aplicación de servidor cliente? Es similar a una aplicación de mensajería en que los clientes son todos los usuarios remotos del otro lado del servidor de seguridad de mi servidor. La mayoría de las cosas que estoy leyendo me dicen que use WS * y HTTP.

  • ¿Net.Tcp está protegido por estándar y sin certificados? - es decir, la gente no puede escuchar por cable y descifrar los datos que van y vienen.

  • ¿Es posible enviar un nombre de usuario y contraseña usando net.tcp y sin un certificado instalado?

  • Si es así, supongo que puedo conectar esto a mi proveedor de membresía y autenticar el acceso a cada método en la implementación de mi contrato de servicio.

  • Supongo que con el nombre de usuario y la contraseña de seguridad, el proxy se inicializa con el nombre de usuario y la contraseña y que esta información se envía con cada solicitud.

  • Luego se invocará a mi proveedor de membresía para cada llamada a un método y haré lo que sea necesario para obtener la autorización del método.

Lo siento por el montón de preguntas, pero sería genial saber si estoy pensando de la manera correcta sobre cómo funciona WCF.

Gracias.


Además de la excelente respuesta de Sipwiz:

Sin embargo, ¿es cierto que en todos los casos, independientemente de cómo se transfieren los datos, el mensaje en sí mismo en formato SOAP con encabezados y un cuerpo? Entonces es una especie de mensaje XML que se transmite en HTTP / S o en formato binario.

Si casi. La mayoría de los enlaces para WCF usan SOAP como su formato en el cable, excepto para el webHttpBinding y otros servicios asociados, como WCF Data Services (anteriormente conocido como "Astoria" o ADO.NET Data Services) o WCF RIA Services. Usan un enfoque REST para transferir datos y no tienen nada que ver con SOAP.

Para obtener más información sobre REST, consulte el Centro de desarrolladores de WCF REST en MSDN.