I am looking for some recommendations on the best authentication method in my WebService. Right now I have a standard WebService on .NET 3.5 and an MVC website that sits on top of this WebService.
The MVC website uses OpenID to authenticate users, and during the development phase, we simply passed the authenticated OpenID user ID to WebService for authentication. Obviously, this is not what we will release to the client when we live.
So my question is: What is the best authentication method in WebService?
Some of the APIs I've played with use authentication tokens. Another idea we had was that when connecting to the WebService, pass the encryption key to the client, which they could use for all transfers.
I listen here, and again, any help is greatly appreciated! Thanks!
...
UPDATE: Right now I have created a custom SoapAuthenticationHeader that has the OpenIdURL property. This is used for all service calls to authenticate the user. The problem is twofold:
- If the hacker knows the OpenIdURL user, he can easily access the WebService.
- OpenIdURL is currently being transmitted in text format.
That way, I can pass the encryption key to the client when connecting to WebService and ask the client to encrypt OpenIdURL in the SoapAuthentication header. But I'm not sure how best to do this ...
c # web-services asp.net-mvc oauth openid
Matt McCormick
source share