Ignoring the conversation on FPOs / FSPs / SIDs / DN-refs / DB-layer
meaning / "membership or group defintion" / etc for a little bit
(something I'm keen to come back to though) ... and going back to the
original question about where the "membership is stored" and how to
check/see the Enterprise Domain Controllers "membership" list ...

So based on my 17% certainty that it is a bit in the userAccountControl,
and joe's suggestion (which I think is likely correct) that it is bit 8192
(UF_SERVER_TRUST_ACCOUNT), you can make a repadmin command to show the
list ...


Repadmin can tell you who belongs "in EDC" (or to state it how joe or Dean
might say it [which is more accurate anyway], who should get the EDC SID
in thier token):

D:\src\adam\r2\ds\adam\src\util\repadmin>portable\obj\i386\repadmin.exe
/showattr root-dc-74 "" /subtree
/filter:"(userAccountControl:1.2.840.113556.1.4.803:=8192)" 
/atts:samAccountName,userAccountControl /gc
<... list of DCs in forest showed up ...>

_NOTE_: And this is important, the query is inefficient, and so in
addition to having adverse effects on the DC's performance, the query can
fail ...
        Aside: It fails with an error I do _not_ expect, BTW
        "8240(0x2030): There is no such object on the server"
        I am looking into that.  Does nothing work anymore?
So if you run it a few times you'll probably pull in enough DB cache to
get the query to finish.  I'd be curious if you got a different error, the
error I'd expect, is some sort of "timeout" error ...


BTW, if you want see the list of DCs in a single domain, change the above
command thusly:
 - drop "/gc" option, 
 - replace "" with "ncobj:domain:" 
 - change root-dc-74 to be DC for the domain you want to target.


I thought for sure I'd have to add phantom root support to repadmin to
make it get all DCs in the enterprise, but apparently /gc implies it.  
Smart.  And that is why you have to change the "" to ncobj:domain: (which
gets expanded to the domain NC's DN) when you drop the /gc.


Anyway, I hypothesize, it might be possible to get a machine that doesn't
belong "in" EDC, by force demotion.  So you can review this list for
anyone you don't want in that "group".

Cheers,
BrettSh
SDE _ESE_

P.S. - I used an ADAM repadmin.exe to do the above commands, but I think
they would work on the repadmin that shipped in Win2k3 as well.


On Wed, 24 Aug 2005, joe wrote:

> I expect more than one person is confused by Dean's post since he is
> responding to comments I sent to him offline... But since he brought it up
> here, I guess will respond here. :o)
> 
> BTW, the basics of the items brought up offline were...
> 
> 1. The FSPs are for LDAP I think more than the DB underpinnings.
> 
> 2. As an aside, if you had to guess, what do you think the query ANR=* gets
> you. Don't look until you make your guess.
> 
> 
> So now that you know the previous responses, Dean's response may make more
> sense. Now on to my responses to Dean's responses to my offline responses.
> ;o)
> 
> 
> 1. We certainly could use something other than DNs to represent membership
> in groups. The questions up of what? SIDs may, on the surface, seem like a
> good answer. However I think there are three major failings to using SIDS.
> 
> A. This is an underpinning issue so I will let Dean/Brett and possibly ~Eric
> duke it out, but the MV attributes that can contain the most values are
> Linked-Value attributes. Those attributes currently need to be DN based.
> This would mean if using SIDs you could put far less members in any given
> group. Actually that goes for any attribute syntax other than the DN based
> attribute syntaxes.  
> 
> B. Not every object you want to put in a group has a SID, do we then start
> sticking SIDs on everything? That would seem to be a step backwards. Not
> because SIDs are bad, but because MS doesn't seem to be really going forward
> with them. Specifically, as a realistic example right now, think of contacts
> in a mailenabled group. Further think of the future when people really start
> using groups, say for example I want to group some OUs together for password
> complexity but don't want to have them hierarchical or have to specify each
> individually to the password filter I could add all of the OUs to a group.
> The fact that member is a DN attribute makes that possible. If it were a
> SID, then I couldn't do it because an OU doesn't have a SID. Already I have
> seen several LDAP based applications that are used for security though not
> for Windows Security. Windows security wouldn't touch the groups because the
> groups aren't security enabled and have all sorts of different objects but
> they are still used for security within the app. 
> 
> C. This isn't specifically against SIDs again like A, but I think the
> defacto standard for LDAP representation of group members is DN based. 
> 
> 
> I guess another mechanism that could be used is a unicode string attribute
> where each value has a prefix like keywords are used for ADAM SCPs or each
> value is a whole XML record which can be broken out. But at that point I
> think we are adding confusion to applications and people looking at the
> results. Of course you also have the problem outlines in 1A still. 
> 
> I am not saying that it can't be done, but I think it would take
> considerable work to get there from where we are now and the first thing we
> would need to do is decide if we were willing to break with the LDAP
> "standard" for representing group membership.
> 
> 
> 
> 
> 2. The query of (ANR=*) is converted by AD into (FALSE). I agree that that
> is probably in some way related to the fact that the query is converted to
> some invalid value and bounced or the directory is tossing it out on its own
> merit. For those not familiar with ANR, normally an ANR query will get
> expanded to something a bit larger prior to the actual search, for instance
> in my test forest that has Exchange in it (where ANR is used quite a bit)
> the query (ANR=joe) gets converted to
> 
> (|
>   (displayName=joe*)
>   (mail=joe*)
>   (givenName=joe*)
>   (legacyExchangeDN=joe)
>   (msDS-AdditionalSamAccountName=joe*)
>   (mailNickname=joe*)
>   (physicalDeliveryOfficeName=joe*)
>   (proxyAddresses=joe*)
>   (name=joe*)
>   (sAMAccountName=joe*)
>   (sn=joe*)
> )
> 
> In ADAM that gets converted to
> 
> (|
>   (displayName=joe*)
>   (physicalDeliveryOfficeName=joe*)
>   (proxyAddresses=joe*)
>   (name=joe*)
> )
> 
> 
> So at a guess, anr=* gets converted to anr=** which is an invalid query.
> Interestingly enough though, anr=joe* doesn't get converted to anr=joe** and
> thrown out... Also interesting is that anr=*joe gets converted to
> (<UNKNOWN>). 
> 
>     joe
> 
> 
>  
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Dean Wells
> Sent: Wednesday, August 24, 2005 1:24 PM
> To: Send - AD mailing list
> Subject: RE: [ActiveDir] Enterprise Domain Controllers
> 
> Interesting conversation ... I'd certainly agree with Joe's assessment of
> well-known membership in that the SIDs denote something that you are by
> virtue of what you're doing as opposed to something that you are an
> explicitly configured member of.
> 
> Assuming I understand you (Joe) correctly, you're saying that LDAP needs the
> FSP (or FPO[1])  to maintain foreign domain membership since no object
> reference exists locally?  If that understanding is correct, I would wonder
> if you've (Joe) not been blinkered by the way we're doing it at present :o)
> 
> 
> If I adopt the role of the devil's advocate for a second; who says that
> group membership has to be maintained using a pair of database-local objects
> (or rows if we're to expand the terminology) ... that was intended as a
> rhetorical question but please feel free to offer up an opinion.  I
> certainly that the current approach offers many advantages and that its
> absence would likely cause an array of potentially painful scenarios but
> when used within the context of foreign membership, such justifications
> don't apply IMO ... for example, why not merely maintain the members SID in
> those instances where the member exists in a foreign forest or are
> well-known?  Maybe because this single property wasn't designed to (or
> can't) work in a way requiring 2 distinct behaviors and FSPs are a means of
> 'making it fit' the behavior that we do have.  That's nothing more than a
> hypothesis since I'm not aware of the motivation behind such design
> decisions.  Anyway, with all of that said, I remain unconvinced that FSPs
> should be deemed a requirement of LDAP.
> 
> Regarding your earlier ANR question; that's interesting, I'd expected far
> more than an empty result set.  It appears to be using the generic dn index
> (i.e. the index that it reverts to when a non-existent property is specified
> within the filter).  I suppose this may indicate that the ANR behaviors are
> not triggered when wildcarding the entire value ... possibly because ANR
> uses an implicitly wildcarded query which is mis-generated and dismissed
> when it results in a double asterisk (**) or because it is designed to
> ignore silly queries ?? :o)
> 
> [1] FSP vs. FPO - that specific piece of terminology seems to depend on
> whether you're an aging Borg or just a familiar.
> 
> --
> Dean Wells
> MSEtechnology
> * Email: [EMAIL PROTECTED]
> http://msetechnology.com
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of joe
> Sent: Wednesday, August 24, 2005 12:48 PM
> To: [email protected]
> Subject: RE: [ActiveDir] Enterprise Domain Controllers
> 
> I would stay the course and say there is no membership. 
> 
> There are security principals that could have the SID added to their token
> which I agree is most likely controlled by userAccountControl & 8192.
> However it is a state of being authenticated coupled with being a domain
> controller that controls what objects have that SID at any given moment. 
> 
> It is like an authenticated user, what is the membership? Given the idea
> stated below, authenticated users are any security principal that can be
> authenticated, but wait, if someone isn't logged on, how could they be
> "authenticated"? We know that authenticated users are only the users that
> are currently authenticated and have the authenticated users SID in their
> token. 
> 
> Now for a group which has real membership. You can look at an attribute and
> it tells you who is at this exact moment a member of the group. State of
> authentication has no bearing. For instance, if you have Exchange,
> mailenable and send an email to some random group you have in your domain.
> Then try the same with Enterprise Domain Controllers. 
> 
> Those are some of the reasons why I say there is no membership to list,
> there are only principals that occasionally have the SID in their token. If
> you want, I guess you could consider it a dynamic group with the membership,
> if I were to admit it had membership, completely dependent on the state of
> being both a domain controller (or at least flagged in a way in the
> directory to indicate such) and authenticated.
> 
> 
> :o)
> 
> 
>    joe
> 
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Brett Shirley
> Sent: Wednesday, August 24, 2005 11:48 AM
> To: [email protected]
> Cc: Send - AD mailing list
> Subject: RE: [ActiveDir] Enterprise Domain Controllers
> 
> 
> After reading joe's description, which sounds accurate to a non-expert like
> myself, I am willing to raise my confidence in my answer from a measly 12%
> to a full 17%.
> 
> Well, I agree with most of what joe said, except for the part about not
> being able to "look" at the membership, you _sort of_ can as I alluded to in
> my mail, just not via the typical member attribute as joe was pointing out.
> 
> Cheers,
> Brett
> 
> On Wed, 24 Aug 2005, Dean Wells wrote:
> 
> >  
> > To further clarify Joe's point; the subset of 
> > foreignSecurityPrincipals within the domain NC under the 
> > ForeignSecurityPrincipals container (many [or all] of which will be 
> > well-known security principals) are present there because of a
> relationship with another object within that partition.
> > 
> > The foreignSecurityPrincipals within the config. NC serve as a 
> > template and represent the well-known security principals listed by 
> > the object picker when, for example, editing an ACL (do not test this 
> > by deleting one, unless it's a sandpit, since recreating them can be
> problematic).
> > 
> > As a general rule of thumb, and as far as I can recollect, foreign 
> > security principals are created to represent any security principal 
> > that cannot be resolved by a forest-local GC, e.g. users from a 
> > foreign forest's domain or well-known security principals ...
> > <teasing> and are necessary because of the archaic underlying database 
> > engine we continue to insist on using :o) </teasing>.
> > 
> > --
> > Dean Wells
> > MSEtechnology
> > * Email: [EMAIL PROTECTED]
> > http://msetechnology.com
> > 
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of joe
> > Sent: Wednesday, August 24, 2005 9:01 AM
> > To: [email protected]
> > Subject: RE: [ActiveDir] Enterprise Domain Controllers
> > 
> > It isn't an actual group. 
> > 
> > It is a Well-Known security principal (SID=S-1-5-9) like Authenticated 
> > Users or Everyone or Terminal Server User. You don't have the ability 
> > to look at the membership, let alone modify it. When a token for a 
> > domain controller is built, the SID is simply added to it.
> > 
> > It is represented in the directory as a foreignSecurityPrincipal so it 
> > can be added to groups and ACEs like Everyone is. As Tom indicated, it 
> > is maintained in the Wellknown Security Principals container of the 
> > configuration partition with other Well Known Security Principals.
> > 
> > Here is a quick listing of all the FSPs listed in that container
> > 
> > Anonymous Logon
> > Authenticated Users
> > Batch
> > Creator Group
> > Creator Owner
> > Dialup
> > Digest Authentication
> > Enterprise Domain Controllers
> > Everyone
> > Interactive
> > Local Service
> > Network
> > Network Service
> > NTLM Authentication
> > Other Organization
> > Proxy
> > Remote Interactive Logon
> > Restricted
> > SChannel Authentication
> > Self
> > Service
> > Terminal Server User
> > This Organization
> > Well-Known-Security-Id-System
> > WellKnown Security Principals
> > 
> > 
> >     joe
> > 
> > 
> > 
> > -----Original Message-----
> > From: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] On Behalf Of Smith, Brad
> > Sent: Wednesday, August 24, 2005 5:17 AM
> > To: [email protected]
> > Subject: [ActiveDir] Enterprise Domain Controllers
> > 
> > Hey All,
> > 
> > Can anyone tell me where this group is stored?  It isn't in the 
> > directory, and it isn't a local group...any ideas on how to check it's 
> > membership list is correct?
> > 
> > TIA,
> > 
> > 
> > Brad
> > 
> > 
> > This email and any attached files are confidential and copyright
> protected.
> > If you are not the addressee, any dissemination of this communication 
> > is strictly prohibited. Unless otherwise expressly agreed in writing, 
> > nothing stated in this communication shall be legally binding.
> > List info   : http://www.activedir.org/List.aspx
> > List FAQ    : http://www.activedir.org/ListFAQ.aspx
> > List archive: 
> > http://www.mail-archive.com/activedir%40mail.activedir.org/
> > 
> > List info   : http://www.activedir.org/List.aspx
> > List FAQ    : http://www.activedir.org/ListFAQ.aspx
> > List archive: 
> > http://www.mail-archive.com/activedir%40mail.activedir.org/
> > 
> > 
> > 
> > List info   : http://www.activedir.org/List.aspx
> > List FAQ    : http://www.activedir.org/ListFAQ.aspx
> > List archive: 
> > http://www.mail-archive.com/activedir%40mail.activedir.org/
> > 
> 
> List info   : http://www.activedir.org/List.aspx
> List FAQ    : http://www.activedir.org/ListFAQ.aspx
> List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
> 
> List info   : http://www.activedir.org/List.aspx
> List FAQ    : http://www.activedir.org/ListFAQ.aspx
> List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
> 
> 
> 
> List info   : http://www.activedir.org/List.aspx
> List FAQ    : http://www.activedir.org/ListFAQ.aspx
> List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
> 
> List info   : http://www.activedir.org/List.aspx
> List FAQ    : http://www.activedir.org/ListFAQ.aspx
> List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/
> 

List info   : http://www.activedir.org/List.aspx
List FAQ    : http://www.activedir.org/ListFAQ.aspx
List archive: http://www.mail-archive.com/activedir%40mail.activedir.org/

Reply via email to