• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 323
  • Last Modified:

Anyone a security guru out there WCF question.

Hello all,

I need some opinions on this and education really as I continue to research.    I work at a company where we have sensitive data in a core Intranet based application in-house of course.   The backend is a SQL Server database.    There is a need to expose externally to some vendors some of the data within the core system as well as 'provide' us some data we would be inserting or updating to a few tables.   We created a service layer to eventually be able to expose some of our service call methods such as gets etc. external to our application.  So I have a few questions I am concerned about and need to understand better:

- Is it good practice to have a second database that only has data relevant to the external based system to have that separation.  My thinking is this is kind of getting away with secure WCF messaging so this would be a waste of time.   If they can compromise a second database why not the first etc.   Then the idea would be replication etc. to move data back and forth to our core database.   This is the main question that came up as the core database has a lot of sensitive data.  

- Not sure where we would be 'hosting' this external application but of course it would be on the DMZ so it can be exposed.   Any thoughts or use case scenarios on this is it WCF with certificate based security etc.

Anyway I know this is a loaded question but looking to understand it better because of the personal data we need to be careful is not exposed.   I am not a WCF guru and have used in the past here and there.

Thanks for any information, links etc. you can provide.
1 Solution
From the application side using below would secure your request coming in.

*  Request comes over https
*  Each request comes with a custom authentication in the header which you can share with your clients

From db level you can have this setting. This way it is like a second database, logically.
*You can create separate views for this application to get data.
* Also create a separate database user that will used in above application and they have permission only to these views.

same thing can be done in "asp.net web api"(Rest based HTTP Call), just in case if you are just starting...

Hope this gives a start.
Bob LearnedCommented:
With 4.5, the Windows Identity Foundation (WIF) was fully integrated into the framework.  The WCF Security Token Service works with certificates to sign the tokens.

WCF Security Token Service

Here is some good reading material on WCF security:

Fundamentals of WCF Security
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now