kei
kei

Reputation: 20521

Setting up web services with x509 and multiple clients and how to distinguish clients?

Following these two links, I was able to implement a simple web service with x509 certification, and an authenticated test client to consume the service.

Right now, it looks something like this:

 --------------
| ServiceA.svc | ------------> Test Client 1
|  -GetData()  |
 --------------

How can I extend what I have to accomplish something like this:

 --------------
| ServiceA.svc | ------------> Test Client 1
|  -GetData()  | ------------> Test Client 2
|  -SaveData() |
 --------------
| ServiceB.svc |-------------> Test Client 1
|  -GetData()  |
 --------------
| ServiceC.svc |-------------> Test Client 2
|  -SaveData() |
 --------------

I already have services set up, and Test Client 2 ready to go.

So here are some of my questions:

I can post what I have on the config files if needed, but it looks basically what the two aforementioned links have.

Upvotes: 1

Views: 409

Answers (1)

Yaron Naveh
Yaron Naveh

Reputation: 24436

yes, each client needs a separate certificate. Then from within the operation you can get its distinguished identity:

ServiceSecurityContext.Current.PrimaryIdentity.Name

The best practice is to separate the authorization process like described here: http://msdn.microsoft.com/en-us/magazine/cc948343.aspx

Upvotes: 2

Related Questions