3

We have a web solution (running in IIS) where AD users and non-AD users need to log into. We sell this to companies and will run this on-prem only.

non-AD-FS and only AD question (so no federation)

I asked on stackoverflow if it is valid to pass the username and password to the web application and have the application logon in their behalf versus using Windows authentication enabled sites. Where of course the credentials are never stored or logged etc. here: https://stackoverflow.com/questions/63047112/is-it-wrong-to-send-active-directory-credentials-of-a-user-to-a-backend-system/63055942#63055942

At first this seemed a very bad idea which was my initial reaction. But it seems it is an acceptable pattern.

Will security officers (CSO) in companies, in general, accept this or not for a 3rd party solution installed on prem? Because the risk is that it is implemented in this way and CSO or static security code analyses will later on whistle.

1
  • What is "later on whistle"? Can you rephrase that?
    – schroeder
    Jul 24, 2020 at 19:16

1 Answer 1

2

Will security officers (CSO) in companies in general accept this or not for a 3rd party solution installed on prem?

Nobody CSO can tell you how another CSO will answer that question. Personally, as an Active Directory admin I successfully advised against implementing dozens of applications already, that provide LDAP or local authentication already.

At first this seemed a very bad idea which was my initial reaction. But it seems it is an acceptable pattern.

Yes, it's common that applications provide only LDAP authentication. That does not negate the drawbacks.

Your application is asking your company's employees for their credentials to your company's internal Active Directory. There is trust there. (From the Stackoverflow answer)

Trust has nothing to do with security. Hundreds of thousands of companies trust in Cisco, yet they implemented backdoors in some of their switches. Trust can be betrayed.

As an Active Directory sysadmin I generally advise against implementing any software that asks my users for their password for several reasons:

  • It opens up a new attack surface, for no good reason.
  • Code audits are cost and time expensive, if possible at all. And they still don't provide 100% security.

If the application asks for credentials, an attacker (which may even be the developer itself) is able to collect users Active Directory credentials. Regardless of whether they're never logged or stored in the app. With the credentials, the attacker is able to access everything outside the app the user has access to.

Many companies provide passwordless authentication mechanisms like Kerberos/AD, SAML/ADFS/AzureAD, oAuth/ADFS/AzureAD. And for good reason. They work passwordless and if any attacker targets the third-party system, they will not be able to gain access with credentials outside the application they compromised.

1
  • So I take this as "in the case of a customer who only has ad no adfs or anything alike use windows authentication" UNLESS there are requirements such as the need to logon to a remote non-trust domain that requires passing a username and password (and even then check beforehand if there is no synchronization possible based on hashes so that no passwords need to be send over the line)
    – edelwater
    Jul 28, 2020 at 10:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .