Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7550637
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 30, 20262026-05-30T10:15:52+00:00 2026-05-30T10:15:52+00:00

This is something of an architectural question – I hope this is the right

  • 0

This is something of an architectural question – I hope this is the right stack-exchange for this one – there doesn’t seem to be a natural home for these…

The systems I work on are distributed within a data-centre – web-servers in a DMZ then call web-services in a secure zone (through a firewall) for access to data. This currently uses asmx services with WSE, passing username and password credentials in the SOAP header. These are passed unencrypted. The view has been that this provides some measure of security (an attacker on the internet DMZ servers cannot access credentials for services accessed from the intranet DMZ server).

We’re looking to move to using WCF, but sticking with webservices. We’d like to use wsHttpBinding for best interoperability with other clients and for standards compliance. Continuing to use username authentication this seems to mandate using SSL or message encryption, which is seeming like overkill to a lot of people to be encrypting the connection within our own data-centre where we control both endpoints.

I’d be interested to know if this is what other people do and what alternatives we have. I’ve considered (and ruled out a few below)

  • SecurityMode = None – don’t use any credentials. Our security people aren’t happy with this as attackers on the external web-servers could gain access to any services they like
  • Use BasicHttpBinding – I think this can be configured to pass user credentials unencrypted using TransportCredentialOnly . However, somewhat concerned that BasicHttpBinding is intended as a legacy approach and less inter-operable with other technologies
  • Use the Clear Username Binding – however, this is open source and my organisation don’t want to go near open source for legal reasons
  • Accept that we have to move to encrypted messages even within the data-centre
  • Change to using a different authentication type e.g. Windows credentials – concern that this is a potentially big change to how we currently operate these services and also whether we have access to a directory server from the DMZ.

Any thoughts on how other people use WCF within a data-centre with security zones would be greatly appreciated

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-30T10:15:54+00:00Added an answer on May 30, 2026 at 10:15 am

    Use BasicHttpBinding – I think this can be configured to pass user
    credentials unencrypted using TransportCredentialOnly . However,
    somewhat concerned that BasicHttpBinding is intended as a legacy
    approach and less inter-operable with other technologies

    Basic HTTP authentication is the most interoperable built-in authentication mechanism you can use however it sends passwords in a plain text. Also usage can have some little complications if you host your services in IIS and you don’t want to use windows accounts for authentication.

    SecurityMode = None – don’t use any credentials. Our security people
    aren’t happy with this as attackers on the external web-servers could
    gain access to any services they like

    Securing services in corporate environment is a must.

    Change to using a different authentication type e.g. Windows
    credentials – concern that this is a potentially big change to how we
    currently operate these services and also whether we have access to a
    directory server from the DMZ.

    Once you start using Windows credentials you will have to use the same or trusted domains for both networks.

    Much better option in this case are Certificates (CertificateOverTransport custom security mode). The problem with Basic authentication and UserNameToken authentication in WCF is that user name and password is transported as a plain text. That is also reason why WCF by default (and prior to .NET 4 always) demands encryption either through HTTPS or through message security. Any attacker (including internal attackers which are much more dangerous) can sniff communication either in DMZ or internal network and get all credentials he needs to access your services.

    Once you start using certificates the certificate itself with the private key will be securely stored on the server in DMZ – you can even make the certificate non exportable. Once the DMZ application calls your internal service it will add information about the used certificate into SOAP header and signs the timestamp of the message. Anybody can verify the signature (and prove identity of the caller) but only holder of the private key can create one = even if attacker get access to network communication he will not be able to steal the identity. There are other security mechanism related to certificates.

    UserNameToken (as you used in WSE) supports encrypted passwords but WCF doesn’t have this feature implemented.

    To avoid requesting encryption for UserNameOverTransport or CertificateOverTransport you must use custom binding (works only in .NET 4 – prior version needs some KB from MS).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

This is more of an architectural question than a technological one per se. I
This question is about making an architectural choice prior to delving into the details
this question may seem too basic to some, but please bear with be, it's
This is more a theoretical question than a practical one, but given I undestand
This is more of a is this possible? question than one seeking help with
My code is identical to this question I asked earlier so there's no point
This isn't a question of what stress testing tools are out there. I'm afraid
I have an architectural question. I have a project that is conceptually something like
Coming from this previous question: Using Obscure and UnObscure...Am I doing this right? 1:
I know this is something of a classic question, but does the mysql/grails (deployed

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.