Welcome to MSDN Blogs Sign in | Join | Help

Supporting Multiple Security Mechanisms

How do I write a service that gives clients the option to choose between different security mechanisms for protecting a service call? For example, how can I allow clients to choose between certificates and passwords?

I think that if the example choice had been between message security and transport security, then many people would have immediately suggested having two bindings for the different security mechanisms hosted on two different endpoints of the same service. There's no reason why you couldn't use the same strategy in this case where the alternatives are two different kinds of message security. The binding configuration process involves a series of choices, including choosing from enumerations of security mechanisms. It's difficult to craft configurations that accept a wide range of valid formats at the same time.

This choice of configurations can of course also be made less apparent by moving the choice farther away from the service endpoint. If you create an abstraction by defining an intermediate credential type, then the service endpoint is simplified by only accepting the intermediate credentials and the choice is offered by giving multiple mechanisms to obtain those intermediate credentials.

Next time: Trace Transfer

Published Friday, August 17, 2007 5:00 AM by Nicholas Allen

Comments

Friday, August 17, 2007 10:48 AM by Nicholas Paldino [.NET/C# MVP]

# re: Supporting Multiple Security Mechanisms

I am curious, isn't this what the ClaimSet class is meant for, to some degree (assuming that the security mechanism we are talking about here is authentication and authorization, not message and transport security)?

Friday, August 17, 2007 1:30 PM by Nicholas Allen's Indigo Blog

# Security and Streaming

Can I secure a message without having to buffer the message in memory? The answer to this question is

Friday, August 17, 2007 1:46 PM by Nicholas Allen

# re: Supporting Multiple Security Mechanisms

Hi Nicholas,

A ClaimSet is a typically used piece for implementing this scenario when the security mechanism is for auth rather than for integrity or confidentiality.

New Comments to this post are disabled
 
Page view tracker