R – WCF Security Transport Security Questions

wcfwcf-security

I'm writing a set of WCF services that rely on transport security with Windows Authentication using the trusted subsystem model. However, I want to perform authorization based on the original client user that initiated the request (e.g. a user from a website with a username/password). I'm planning to achieve this by adding the original user's credentials in the header before the client sends the message and then the service will use the supplied credentials to authorize the user. So I have a few questions about this implementation:

1) using transport security with windows auth, I do NOT need to worry about again encrypting the passed credentials to ensure the validity… WCF automatically takes care of this – is this correct?

2) how does this implementation prevent a malicious service, running under some windows account within the domain, to send a message tagged with spoofed credentials. for e.g. a malicious service replaces the credentials with an Admin user to do something bad?

Thanks for any help.

Best Answer

What binding are you using? Is this service only within your corporate LAN, or do you plan to go outside the firewall?

To answer your question (as far as I can)

1) With Windows authentication over transport security, the transport layer will be encrypted and safe - no need to worry about additional encryption of credentials etc.

2) It cannot. If a malicious service manages to "hijack" some valid Windows credentials and poses as "John Doe" who has an account on your corporate network, there's no way the WCF service can distinguish this from a valid request by John Doe.

Related Topic