I think the bottom line of my argument boils down to "simple bind without SSL is evil, but simple bind with SSL is acceptable". Secure bind is generally acceptable, with or without SSL.

As such, I'd love to see an AD and ADAM option that would allow the DS to reject simple bind operations on non-SSL ports. I think this would go a long way towards helping enforce my mantra and would likely only have a negative impact on non-MS apps using simple bind. The vast majority of code from the MS world uses secure bind by default and actually requires the developer to go out of their way to get a simple bind. For example, the basic vbscript:

Set obj = GetObject("LDAP://DC=domain,DC=com")

results in a secure bind with GSS-SPNEGO (hopefully negotiating to Kerberos :)). The same goes in .NET:

DirectoryEntry entry = new DirectoryEntry("LDAP://DC=domain,DC=com")

To get a simple bind, you must use OpenDSObject in script and pass in the appropriate flags to NOT have Secure bind set, or set the appropriate AuthenticationTypes. In general, ADSI does the right thing.

Another thing that would be helpful would be an unencrypted simple bind audit event that could be configured, so that you could find the IP address of any client issuing these operations and track them down.

I think one of the reasons why simple bind is used by many vendors is that it is the only common denominator between other directories and a lot of LDAP protocol libraries don't support Microsoft auth mechanisms. However, the good news is that just about every LDAP library does have some sort of support for SSL. Now, if it was only easy to force all DCs and ADAM instances to have valid server certs, we'd be in business. :)

Regarding the evolution of authentication protocols with some of the stuff in WS-*, I have to say that I like the vision. WS-Trust is the plumbing under not only ADFS, but also CardSpace and the security framework for Windows Communication Foundation (WCF). The vision is pretty appealing, because the notion of how a user can be authenticated (via a security token service) is more abstract and based on open and fairly simple web protocols (HTTP, XML, PKI). The notion of a security token is now more abstract and flexible than a Windows token too, in that a token describing an authenticated user now just contains "claims", not just SIDs. Claims can be anything (including their group SIDs), so this makes it easier to provide all the information an app needs to authorize a user without having to resort to post authentication lookups to go back and get their first name or their email address. It also allows you to address privacy concerns, in that each app can be configured to just get the info it needs and none that it doesn't. Users can be given the right to control what information is provided about them (which is very explicit in CardSpace, but is more of a corporate policy thing with ADFS).

All in all, I'm digging the vision. I do think it has a long way to go before it can become ubiquitous, but I do think it is a better model than what we have now and the implementation is really simple and open enough that everyone can play. Some would argue, probably rightly, that MS and IBM have the keys to the kingdom and the stack is pretty complex with all the layers of XML protocols. However, Kim Cameron has successfully demonstrated CardSpace login to his blog running on the LAMP stack, so I'm convinced that it is pretty doable.

When will we see the Security Token Service and WS-Trust displace the KDC and SSPI in Windows? I think that will be a while. :)

And I love ADFS. It rocks. Bring on the Active Requester Profile (and a better GUI)!

Joe K.

----- Original Message ----- From: "joe" <[EMAIL PROTECTED]>
To: <ActiveDir@mail.activedir.org>
Sent: Sunday, September 24, 2006 10:10 AM
Subject: RE: [ActiveDir]SUBDOMAIN AND LDAP


Yeah I understand, lots of vendors use LDAP for auth, but it doesn't make it
good/right. Just like lots of vendors requiring admin access or always
passing NULL for LPSECURITY_ATTRIBUTES when working with securable objects.

ADAM is another story, if you need to use ADAM principals you are stuck with
using LDAP for the auth. I still don't like it though. :)

Of course you are correct on the using SSL can help beef up the security but that seems to be done in the minority of the cases. Far too many times that I have looked at LDAP traces I see passwords and IDs just flowing across the
wire like there was no tomorrow. The thing is most of the users I expect
have no clue that they are being exposed in such a way because they trust
that the Administrators and vendors actually know what they are doing.
Course this is the case with many web based apps as well, but folks have
started to learn to mistrust these automatically as time goes by. The little
"key" on the browser helps a little but it tells you nothing about the
backend and how insecure it is.

I guess a possible configuration to help with this would be to configure
IPSEC to only allow port 389/3268 to be used by replication partners. This
would probably just break a ton of other stuff including anything using say
kerberos/ntlm LDAP packet encryption or TSL as well as all of the
non-secured stuff.

As for the WS-* stuff, this is obviously more prevalent than just Web
related techs. I admit to being completely uninformed on those protocols. Is
your thought that those protocols are headed in the direction to be more
universal and used even when Web access isn't even involved?

joe


--
O'Reilly Active Directory Third Edition -
http://www.joeware.net/win/ad3e.htm



List info   : http://www.activedir.org/List.aspx
List FAQ    : http://www.activedir.org/ListFAQ.aspx
List archive: http://www.activedir.org/ml/threads.aspx

Reply via email to