LOL.

Ok, we just found a ton of duped x400 addresses so I will answer this and then I am 
off to take some drugs (Labatts) and go to sleep...

Our provisioning is pretty much ok, our data is what sucks. :op  Though I do have some 
choice words for the process of doing the info entry on web pages and flat files (they 
call them data bases...shhh don't tell anyone) on mainframes, ftping the data from 
mainframe to wintel, then processing the work, and then the mainframe pulling a 
results file back from wintel to mainframe via ftp... 

Speaking of mainframes... I had a startling conversation a day or so ago about our 
conference rooms which have managed to have the actual information for the real world 
mailboxes getting WAY out of sync with the <QUOTE>Authoritative</QUOTE> Mainframe Data 
<cough>flat file<cough> Base. I made the silly suggestion of keeping the info we keep 
in the mainframe on the actual conference room user objects in AD where Zeus intended 
and you would think I went up and kicked the manager's baby frog or something. Oh my 
god no... The world needs that data to be on the mainframe because the mainframe is 
the only thing that could truly be authoritative because it is... Well a mainframe and 
mainframes are built to be authoritative... I mean come on, ever meet a mainframe who 
didn't seem impressive and authoritative. Just sitting in the corner humming like you 
aren't even there or something... Yep, I'm telling you... That is authoritative, how 
dare the world get out of sync from its authoritative data... It is the world's fault, 
not the mainframe, not the data. 



Anyway back to your off topic request... :op



Adfind... Its just this tool you know... [1]

Re: One Off Error....

There are NO errors!!! Heh. Primary group membership is not maintained in the memberof 
attribute for several reasons...

1. Nothing is maintained in the memberof attribute, it is a generated attribute. The 
information is really in the members attribute of groups. People discover this when 
they think they can add users to groups because they have full control over a 
userid... Heheh Hello, we call this security! Allowing you to do that would be bad. 

2. You will note that primary groups do not have the users who have that group as a 
primary group listed in the members attribute. This is due to the implementation of DN 
style multivalue attributes... Multivalued LVR attributes which should be ringing 
bells in your head... Think of this. In W2K you have more than 5k members in a group, 
you live on the edge of having the opportunity to experience unique results... Now 
take say one of my domains... 110k users... All of them in Domain Users... Umm yeah, I 
already live on the edge of having the opportunity to experience unique results, I 
don't need more. I especially don't need a lack of replication and is a unique result 
I can do without. So they store primary group membership info as a RID in the user's 
primaryGroupID attribute.... So groups aren't stored in the user object... Well except 
that one so wait... You can change the group a user is in.... Hmmm. What if I make 
myself an Exchange Domain Server.... Hmmmmmmmmmmmmm :op


Re: Decode primaryGroupID into a name...

Correct. It doesn't. That takes me having to figure out the domain SID, tacking on the 
RID, then doing a SID lookup. It is in the todo for someday, but I can live without it 
in ADFIND because it is in memberof which is oriented towards group schtuff.... Also 
it is kind of slow compared to everything else I do, I don't like slow. No time for 
slow for this work stuff. Slow is for hammocks and other things like that. 


Re: msExchMailboxSecurityDescriptor: â <-- displays a non-printable character here

You will recall my special feelings for Exchange.... And a smiley face is indeed 
printable because I can see that you sent it to me... :op 

Actually I intend to do something about that as well some day. Along with 
ntsecuritydescriptor which isn't normally displayed because AD doesn't return it with 
the normal * return set, you have  to ask specially for it. I actually have enough 
from Robbie and Richard's good book (not that silly stuff Robbie is doing now...) to 
display that info but again time flies like an arrow and fruit flies like a banana...


Re: It would be nice to be able to suppress the display of blobs 

Hey blobs are data 2! Generally 0's and 1's that you normally like just fine. 

Anyway and almost seriously, some blobs are nice to see such as logon times, etc which 
can be sort of worked out by looking at them... See the problem is that I refuse to 
let MS make me hard code attributes. I should be able to read from the schema how to 
properly handle these like I did with SIDS/GUIDS (and MS was no help there either 
thankyouverymuch). The first versions of ADFIND had me manually updating tables of how 
to deal with things... I started getting requests to add custom schema attributes and 
in the words of one of my favorite TV heroes (Aeryn Sun) - Frell that. So I sat down 
and noodled out a way to figure out programmatically what was a sid attribute and what 
was a GUID attribute so I could decode them as I thought they were some of the more 
important binary fields to decode and I personally wanted that functionality and in 
terms of feature sets that get coded in, I have an in with the programmer... So we 
have gotten to where we are and every time you turn around there you are. I have some 
urges building concerning ADFIND so the dust cover will be coming off of it sometime 
in the next couple of months and I will tackle it again and maybe put some of these 
types of things in... In the meanwhile, I am working out in my head feature sets and 
program flow of oldcmpNT and olduser and maybe if everyone is nice an olduserNT as 
well... Also Service driven versions of oldcmp and olduser but only because I think I 
will charge for those just because I probably can. :o)  Any companies out there that 
currently produce expensive tools that you sell for doing migrations and reporting and 
cleanup and such, I am willing to be bribed not to plant corn... Err write these 
freeware tools. :o)  Just put me on the payroll as Idea Guy Emeritus or something. I 
don't need an office, well not a big one. Nor too many windows. A pool table and a 
pinball machine are pretty much mandatory though. 


Good night!
 
   joe




[1] Paraphrased from a storyline near and dear to my heart...

 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael B. Smith
Sent: Wednesday, January 28, 2004 1:24 AM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3

Doing non-GUI provisioning for Exchange is a PITA, at best. Not to mention poorly 
documented. I've got way too many lines of vbscript for my environment, and even so, I 
couldn't figure out how to do some of it in script (primarily address list ACEs).

Microsoft's MPS for Exchange 2003 is _slick_. But I haven't had a chance to spend any 
time looking under the hood yet.

While you're here -- some info/questions about a tool near/dear to your heart -- 
adfind:

It appears to have an off-by-one error (or something) -- it doesn't seem to display 
the primary group for a user in the memberOf attribute (does that mean it isn't there?)

Prolly somewhat related to the above, it doesn't decode primaryGroupID into a name.

msExchMailboxSecurityDescriptor: â <-- displays a non-printable character here

It would be nice to be able to suppress the display of blobs (like msExchRecordedName 
and mSMQSignCertificates).

Thanks again,
Michael

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of joe
Sent: Wednesday, January 28, 2004 1:07 AM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3


LOL no problem... Joe's late night troubleshooting service at your... Well service.

Now we have found we actually have a bunch of garbage in many of our proxyaddresses 
attributes... Trying to pull all that out... Another perl script of course.  Going to 
have to chat with the people who do the data provisioning in the morning....


  joe
 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael B. Smith
Sent: Wednesday, January 28, 2004 12:52 AM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3

Word.

Word. Word. Word.

Note: those are all four-letter words.

Those other combinations WORK on both Windows 2000 and Windows 2003. To date, I'd used 
what the manual and the vendor support staff said to use. (And no, I don't know why it 
failed otherwise, and I find myself not horribly concerned, now that I have something 
that works.)

Thanks for talking me through this.

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of joe
Sent: Wednesday, January 28, 2004 12:07 AM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3


Actually with AD you can specify the bind principal as 

        NetBIOS name:  domain\username
        UPN             :  [EMAIL PROTECTED]   (Assuming that is the UPN)
        DN              :  cn=user,ou=blah,dc=blah,dc=com

Should be able to do the same with your program as well unless they do a sanity check 
on the input and defines sane as DN format only... 

You can use the same DN for adfind if you would like as well to test it. I just 
usually tell people the netbios form because they are more familiar with it.

On the PS... We are working it out and yes it does seem to not like it... 


  joe

 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael B. Smith
Sent: Tuesday, January 27, 2004 11:43 PM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3

Adfind works just dandy on w2k3. I tested it too, with -simple.

Another question on ldap_simple_bind_s()....

What is the format of the DN parameter?

This application has me specify the user as CN=username,CN=Users,DC=domain,DC=com 
along with a base DN for the search (DC=domain,DC=com) whereas adfind needs the base 
in the same format, but requires the username parameter in the 
netbiosdomainname\username format.

Does adfind rewrite the username or could this be where the change is?

Thanks!

Michael

PS: Exchange hates duplicate proxyAddresses. Whose code let THAT slip by? :-)

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of joe
Sent: Tuesday, January 27, 2004 11:07 PM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3


Heh, I was done with work faster than I expected. You have got to love perl... :op  We 
seem to have a small issue with multiple user/contact objects having the same proxy 
addresses and it is throwing errors on the E2K servers and I had to go find all the 
dupes out of some 220k objects with the proxyaddresses attribute... There were 64... 


Ok back to the problem at hand; I tested this against one of my W2K3 Test DCs running 
in a VPC session... As expected it worked fine.

You might want to get a network trace of the traffic between the DC and the server 
trying to talk to the DC, I am curious. If they are indeed using just simple LDAP 
calls ala ldap_simple_bind_s you will totally see that traffic nearly in clear text in 
NetMon including the password being sent. You will see right where it is failing. 

Actually let me get on the podium for a minute on the benefits of network tracing and 
your friendly neighborhood LDAP apps... It is good to do to understand what calls the 
LDAP is making to see how bad or how good it is. You will find a lot of LDAP apps make 
a lot of unnecessary calls (<cough>e2k<cough>)and do a lot of unnecessary 
authentications. I would say one of my favorite "screwups" is an app that 
authenticates people and the way it does it is it binds with an app ID to do a search 
of the user's dn and then unbinds and rebinds with the user's dn... This is great, 2 
authentications for every one needed. Anyway, if you can find the time, it is always 
good to look at the apps and profile the traffic they generate and the queries they 
use so you can catch those stupid objectclass=something queries (<cough>e2k<cough>) 
and other inefficient things (<cough>e2k<cough>). You can also do this by cranking up 
various debugging on your DC but you usually don't want to do that with a prod box. 
NetMON is much lighter... 

Just so I don't go away without insulting at least one person.... If you call yourself 
an admin and DO NOT know how to use some sort of network analysis/sniffer tool, you 
really need to do your job and go learn one. This is invaluable for solving problems 
around AD and computers in general. Otherwise when you get that weird issue where some 
network switch or router is throwing away UDP packets from the Kerberos authentication 
process you will have to have someone who knows how to do the job come in and do it. 
It is also very handy for DNS issues. 



[Tue 01/27/2004 22:54:00.81]
F:\DEV\cpp\OldCmp>Adfind -h vw2k3a -default -f name=administrator -simple -u 
vtest\testuser -up Password1

AdFind V01.12.00cpp Joe Richards ([EMAIL PROTECTED]) May 2003

Using server: VW2K3a.vtest.local
Base DN: DC=vtest,DC=local

dn:CN=Administrator,CN=Users,DC=vtest,DC=local
>objectClass: top
>objectClass: person
>objectClass: organizationalPerson
>objectClass: user
>cn: Administrator
>description: Built-in account for administering the computer/domain
>distinguishedName: CN=Administrator,CN=Users,DC=vtest,DC=local
>instanceType: 4
>whenCreated: 20031026153618.0Z
>whenChanged: 20031230164947.0Z
>uSNCreated: 8194
>memberOf: CN=TestUni,CN=Users,DC=vtest,DC=local
>memberOf: CN=Group Policy Creator Owners,CN=Users,DC=vtest,DC=local
>memberOf: CN=Domain Admins,CN=Users,DC=vtest,DC=local
>memberOf: CN=Enterprise Admins,CN=Users,DC=vtest,DC=local
>memberOf: CN=Schema Admins,CN=Users,DC=vtest,DC=local
>memberOf: CN=Administrators,CN=Builtin,DC=vtest,DC=local
>uSNChanged: 28711
>name: Administrator
>objectGUID: {AE5284F2-257D-479D-8776-F46BDAE17028}
>userAccountControl: 66048
>badPwdCount: 0
>codePage: 0
>countryCode: 0
>badPasswordTime: 127122886467739888
>lastLogoff: 0
>lastLogon: 127172765879264320
>pwdLastSet: 127115734585121920
>primaryGroupID: 513
>objectSid: S-1-5-21-1851711904-3339057820-1962739558-500
>adminCount: 1
>accountExpires: 9223372036854775807
>logonCount: 32
>sAMAccountName: Administrator
>sAMAccountType: 805306368
>objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=vtest,DC=local
>isCriticalSystemObject: TRUE
>lastLogonTimestamp: 127172765879264320


1 Objects returned

[Tue 01/27/2004 22:55:04.82]
F:\DEV\cpp\OldCmp>



 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of joe
Sent: Tuesday, January 27, 2004 10:44 PM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3

I would have to say no, ldap_bind_s is still fine and dandy. Taking that away would 
break nearly every UNIX LDAP app written it would appear as they all like it because 
it is simple. It would also break many Windows Apps that were ported from UNIX because 
they didn't know better. 

If you want to do a simple test, grab adfind and do this

Adfind -h domaincontroller -default -f name=someobjectname -simple -u domain\user -up 
userpassword 

Ex:

[Tue 01/27/2004 22:41:29.41]
F:\DEV\cpp\OldCmp>Adfind -h w2kasdc1 -default -f name=joe -simple -u joehome\joebob 
-up test

AdFind V01.12.00cpp Joe Richards ([EMAIL PROTECTED]) May 2003

Using server: w2kasdc1.joehome.com
Base DN: DC=joehome,DC=com

dn:CN=joe,CN=Users,DC=joehome,DC=com
>directReports: CN=$$jricha34,CN=Users,DC=joehome,DC=com
>managedObjects: CN=_DIST_TestGroup,OU=Test,DC=joehome,DC=com
>accountExpires: 127193976000000000
>badPasswordTime: 127182179962809320
>badPwdCount: 0
>codePage: 0
>cn: joe
>countryCode: 0
>instanceType: 4
>lastLogoff: 0
>lastLogon: 127193024241243522
>lockoutTime: 0
>logonCount: 91
>logonHours: FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF
>msNPAllowDialin: TRUE
>distinguishedName: CN=joe,CN=Users,DC=joehome,DC=com
>objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=joehome,DC=com
>objectClass: top
>objectClass: person
>objectClass: organizationalPerson
>objectClass: user
>objectGUID: {DF6AC5DC-3EBA-41FD-8893-E1ED7FAA5929}
>objectSid: S-1-5-21-1275210071-789336058-1957994488-218285
>primaryGroupID: 513
>pwdLastSet: 127189408129723189
>name: joe
>sAMAccountName: joe
>sAMAccountType: 805306368
>telephoneNumber: 555
>userAccountControl: 512
>userParameters: m:                    d
>uSNChanged: 1257854
>uSNCreated: 1163453
>whenChanged: 20040123043244.0Z
>whenCreated: 20021022040334.0Z


1 Objects returned

[Tue 01/27/2004 22:42:19.51]
F:\DEV\cpp\OldCmp>



I am looking at a work issue right now, if I get done soon I will spin up my W2K3 test 
environment and test it, but again I would be shocked to death if it didn't work. 

  joe

 

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael B. Smith
Sent: Tuesday, January 27, 2004 10:36 PM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3

The application does indeed use LDAP.

It _appears_ that the issue is the API ldap_simple_bind_s. 

MSDN documentation says that nothing Microsoft supplies uses that API in Windows XP. 
One may reasonably extrapolate that to include Windows 2003. But I can't find anything 
that states that the API was deprecated between Windows 2000 and Windows 2003. Or 
between windows 2000 sp3 to sp4 (although there are minor hints).

I've turned on auditing (hours ago) and almost nothing shows -- either success or 
failure. I don't know what it takes to trigger an audit event, but a simple ldap query 
doesn't seem to do it, or a failed ldap_simple_bind_s.

I've suggested (requested) a change to ldap_bind_s but is there documentation 
somewhere that I am missing that says ldap_simple_bind_s will no longer work properly?

Thanks for your hint, it got me headed down the proper path.

Michael

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of GRILLENMEIER,GUIDO 
(HP-Germany,ex1)
Sent: Tuesday, January 27, 2004 2:48 PM
To: [EMAIL PROTECTED]
Subject: RE: [ActiveDir] Change in A/D security between 2k and 2k3

yes, there are various security changes in Win2k3, incl. different default ACLs on 
various objects.

But as you've created a special account for the app, you shouldn't need to enable 
anonymous LDAP operations on your Win2k3 DCs => however, the app needs to leverage the 
credentials correctly to bind to the LDAP server (the DC).

The real question is: what does the app really do? Do they even perform LDAP queries 
or do they use some NT4 APIs to read data from AD (I've seen this too many times, 
although the vendor swore they were not).
You need to understand what the App does, before you can apply the correct security - 
as you've mentioned, often you don't require to change anything if all the app 
requires is to list user accounts or groups etc.

A good place to start to help figure out this issue is AUDITING: go to your Default DC 
policy and enable "Audit directory service access" for success and failure 
(preferrably in a lab, ofcourse). Then start up your mis-behaving Application, wait 
for it to fail and take some time to wade through the security Eventlogs => often you 
can find a particular AD object (incl. the DN) which an app tries to access when it 
fails.  This gives you new options to check out the permissions really required by the 
app (or to tell the vendor how to correct a problem in their application).

/Guido


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael B. Smith
Sent: Dienstag, 27. Januar 2004 16:51
To: [EMAIL PROTECTED]
Subject: [ActiveDir] Change in A/D security between 2k and 2k3

I run an application (ModusGate by Vircom, if anyone cares) that requires "read 
access" (their phrasing) to A/D for LDAP queries.
 
In Windows 2000, this was easily done in ADU&C -- create a user,
View->Advanced, properties on the domain, Security tab, add the user and
grant "READ".
 
I can do exactly the same thing in Windows 2003, but it doesn't work anymore (and, in 
fact, the way I read the permissions I shouldn't even need to do it with the change in 
the default permissions). The ONLY account that works is the Administrator account. I 
can create an account, add it to domain admins, enterprise admins, blah blah blah -- 
so it looks just like Administrator and it still fails. So, I presumed it was User 
Rights -- so I add this account and give it the same everything there too (in Domain 
Controller Policy and Domain Policy). Still no joy.
 
Applied change suggested in KB 326690. Still no joy.
 
Vircom is baffled as well, they say.
 
Any hints or suggestions for me?
 
Thanks.
 
.+-wÈi0g-í+YbémPiæ0æ-í+bíÚf.+-j!ç0j!åoræyØIíV+v*
List info   : http://www.activedir.org/mail_list.htm
List FAQ    : http://www.activedir.org/list_faq.htm
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/

.  .+-j! 0j! or yïíIãV+v* 

List info   : http://www.activedir.org/mail_list.htm
List FAQ    : http://www.activedir.org/list_faq.htm
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/

List info   : http://www.activedir.org/mail_list.htm
List FAQ    : http://www.activedir.org/list_faq.htm
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
.  .+-j! 0j! or yïíIãV+v* 

List info   : http://www.activedir.org/mail_list.htm
List FAQ    : http://www.activedir.org/list_faq.htm
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
.+w  ííY P  íí .+-j! 0j! or yïíIãV+v* 

List info   : http://www.activedir.org/mail_list.htm
List FAQ    : http://www.activedir.org/list_faq.htm
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
.  .+-j! 0j! or yïíIãV+v* 

List info   : http://www.activedir.org/mail_list.htm
List FAQ    : http://www.activedir.org/list_faq.htm
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/

Reply via email to