Transfer Security

The next crucial aspect of security is how to transfer the message through the service bus to the service securely. The service bus refers to transfer security as end-to-end security. On top of message transfer, an important design consideration is which client credentials (if any at all) the message should contain. Transfer security is independent of how the client and the service authenticate themselves against the service bus.

The service bus offers four options for transfer security, represented by the enum EndToEndSecurityMode, defined as:

public enum EndToEndSecurityMode
{
   None,
   Transport,
   Message,
   TransportWithMessageCredential //Mixed
}

The four options are None, Transport, Message, and Mixed. None means just that—the message is not secured at all. Transport uses either SSL or HTTPS to secure the message transfer. Message security encrypts the body of the message so it can be sent over non-secured transports. Mixed uses Message security to contain the client’s credentials, but transfers the message over a secured transport.

You configure transfer security in the binding. While the relay bindings all default to Transport security, all the relay bindings offer at least one constructor that takes EndToEndSecurityMode as a construction parameter. You can also configure transfer security post construction by accessing the Security property and its Mode property, such as in the following example of a TCP relay binding:

public class NetTcpRelayBinding : NetTcpRelayBindingBase ...

Get Programming WCF Services, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.