none
LDAP search filter: memberof - users of local group inherited by another domain RRS feed

  • Frage

  • Hi,

    I have 3 domains which trusts each other directly or via transitiv flag.
    DC1 <-> DC2 <-> DC3 (DC=DomainController-PC)

    Now I have configured a local group on DC1 "All-Domain-Users" which inherits the users of all 3 DCs.

    • D1User
    • DC2\D2User
    • DC3\D3User

    I have a running program on a win10 PC which is member of domain DC1 that gets already LDAP groups and users by using Windows API like it is done in the example here:
    https://docs.microsoft.com/en-us/windows/win32/ad/example-code-for-searching-for-users

    But with the configuration mentioned above (local group with users of other domains), I only gets the users of DC1 of that local group and not the users of DC2 nor DC3.

    The current search filter which is used:
    &(memberOf=CN=All-Domain-Users,CN=Users,DC=DC1,DC=local)(sAMAccountType=805306368)

    on powershell, the following command prints all users but no further information can be found to that "foreign" users:
    net localgroup /domain "All-Domain-Users"

    • D1User
    • DC2\D2User
    • DC3\D3User


    I tried to modify the search filter above in sevearal ways, but I never get All 3 Users of the 3 Domains.

    Does anybody have a hint how to get ALL users from the local group?

    Is it perhaps not possible to read this information via LDAP

    Thanks in advance
    AME




    • Bearbeitet AME_153 Freitag, 30. Oktober 2020 08:07
    Freitag, 30. Oktober 2020 08:00

Alle Antworten

  • Hi,

    if all of those groups are universal and all of the users actually connect to resources in DC1, you might get lucky talking to the GC instead of DC. This might give you the memberships, but it will not give you the user details.

    If you need results you can rely on, you should talk to each domain to receive group memberships *and* user details form it.

    Apart form that: this is a German forum. For English language content, you should start moving to Q&A


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Freitag, 30. Oktober 2020 09:33
  • Sorry,

    wusste nicht dass das ein deutsches Forum ist.
    Habe ein ähnliches Problem hier im Forum auf englisch gesehen, und dachte die Leute kennen sich aus und hab einfach den post auf englisch geschrieben...

    Soweit ich weiß, kann man nur in lokale domänen gruppen Benutzer anderer Domöänen hinzufügen.
    Hab auch schon den Port für den Global Catalog benutzt und auch keine Antwort bekommen.
    Wenn ich zumindest alle user hätte und aus welcher Domäne die kommen, dann könnte ich da evtl. in der entsprechenden Domäne direkt die User auslesen.
    Aber ich bekomme über "ExecuteSearch(...)" und dem entsprechenden Filter von oben keine anderen User zurück als die der eigenen Domäne, in der auch die Gruppe erstellt wurde.

    VG
    Andreas

    Freitag, 30. Oktober 2020 13:57

  • Soweit ich weiß, kann man nur in lokale domänen gruppen Benutzer anderer Domöänen hinzufügen.

    Das ist nicht richtig. Universelle Gruppen können auch Gruppen und Benutzer aus anderen Domänen aufnehmen. Man sollte es damit nicht übertreiben, weil alle Änderungen der Mitgliedschaften überallhin repliziert werden, aber funktionieren tut das schon. Nichtsdestotrotz, da Du der Gruppe in DC1 ja keine Benutzer hinzufügst, sondern Gruppen, werden die Mitgliedschaften erst bei Verwendung aufgelöst und nicht vorab.

    Was hindert Dich denn, die Gruppen auszulesen, die Mitglied in der "Hauptgruppe" sind? dann weißt Du ja, aus welcher Domäne sie kommen, und kannst dort die Mitglieder auflisten.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Freitag, 30. Oktober 2020 14:23
  • Das ist mein erster Kontakt mit LDAP.
    Und kann dir glaub daher nicht ganz folgen.

    Ich habe ein Gruppe, in der user aus anderer Domänen enthalten sind.

    Wenn ich dich richtig verstanden habe, soll ich jetzt einfach mal versuchen die "Benutzer" aus der Gruppe All-Domain-Users auslesen. Um dann in der entsprechenden Domäne direkt die Daten der User zu holen?

    Aber wo bekomme ich die Infos her?
    Der Code bisher benutzt ein IDirectorySearch.
    Wenn ich versuche das Attribut "member" auszulesen, dann bekomme ich da nichts zurück.
    Zudem steht im Attribut member auch nicht drin, von welcher Domäne die benutzer ursprünglich kommen...

    PS: Ich kann wohl keine Bilder hier rein machen, bis irgendwie mein Konto überprüft wurde.
    • Bearbeitet AME_153 Montag, 2. November 2020 10:53
    Montag, 2. November 2020 10:52
  • Moin,

    OK, aus Deiner englischen Erklärung habe ich angenommen, warum auch immer, dass Du Gruppen schachtelst. Wenn da einzelne User aus Fremddomänen direkt drin sind, ist es einerseits einfacher, andererseits auch wieder nicht.

    Im "member"-Attribut der Gruppe stehen entweder Distinguished Names oder SIDs. Beides erlaubt einen eindeutigen Rückschluss auf die Domäne des Mitglieds - die DNs unmittelbar für Menschen lesbar, die SIDs über die DomainSID, die alle Objekte in jener Domäne gemeinsam haben.

    Warum bei Deinem Search das "member" Attribut leer ist, obwohl die Gruppe belegt ist, kann ich Dir nicht sagen. Musst Du die Stelle suchen, wo Du Deinem Searcher Attribute hinzufügst, und einen "Sanity Check" mit einem AD Browser Deiner Wahl machen.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Montag, 2. November 2020 11:07
  • Das hier steht in meinem member drin:
    CN=S-1-5-21-2661828736-1071331424-3309969996-1108,CN=ForeignSecurityPrincipals,DC=dev-1,DC=local
    CN=S-1-5-21-3737119219-3234005163-1459424031-1109,CN=ForeignSecurityPrincipals,DC=dev-1,DC=local
    CN=D1User,CN=Users,DC=dev-1,DC=local

    Okay, dann muss ich mal tiefer forschen, warum da mein member leer ist.

    Und mit dem memberof das bisher direkt im suchfilter benutzt wurde, geht das nicht?
    Denn der zeigt mit nur den Benutzer der eigenen Domäne an.

    • Bearbeitet AME_153 Montag, 2. November 2020 11:23
    Montag, 2. November 2020 11:21
  • Moin,

    memberOf ist ein Backlink, also ein berechnetes Attribut. Dort werden fremde Gruppen nicht eingetragen, da ein DC keine Möglichkeit hat, für die Integrität dieser Werte über Domänengrenzen hinweg zu sorgen.

    Das wäre mein Ansatz gewesen, wenn Du *Gruppen* geschachtelt hättest: Für jede Gruppe ihre Heimatdomäne bestimmen und dort jeweils per memberOF nachfragen. So musst Du aus der SID die Domäne eruieren (kannst beim Starten einfach alle Trusts auslesen und enummerieren), und dann zeigt Dir ja die SID des Members, wenn Du die RID weglässt, sofort an, mit welcher Domäne Du sprechen musst, um an die Detaildaten des Users zu kommen. Das ist das, was ich meinte mit "wird andererseits doch nicht einfacher" - Du musst es halt pro Eintrag machen.

    Wenn einerseits diese Auswertungen von Gruppenmitgliedschaften häufig sind und schnell gehen müssen und andererseits die Domänen jeweils nicht groß sind - im Bereich ein paar Tausend User - würde ich evtl. darüber nachdenken, ob ich sie alle halbe Stunde komplett auslese und dann im RAM meines Prozesses das Matching mache und nicht mit wiederholten LDAP-Abfragen...


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Montag, 2. November 2020 11:41

  • Wo finde ich die Infos über alle trusts? -Wie kann man die auslesen?
    Zeitlich ist das ganze kein Problem.
    Das passiert manuell oder ein mal pro Tag automatisch.

    Aber ich habe zumindest schon mal verstanden, wo die Reise hingehen soll / kann und wie der grobe Weg ist, man an die Infos dran kommen könnte.

    Danke für die ganzen Infos!

    Jetzt muss ich schauen, dass ich

    1. die trusts auslese,
    2. an die member-Einträge der Gruppe dran komme (die Gruppen können evtl. auch geschachtelt sein bzw. geschachtelte Gruppen von einer anderen Domäne könnten in dieser Gruppe drin sein. - Es kann alles mögliche sein).
    3. die member aus der entsprächenden Domäne auslese

    • Bearbeitet AME_153 Montag, 2. November 2020 14:28
    Montag, 2. November 2020 14:17
  • Moin,

    Trusts = Objekte vom Typ "trustedDomain" in CN=SYSTEM,DC=...


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Montag, 2. November 2020 15:32
  • Hi, nochmals vielen Dank für die Hilfe!
    Ich denke so könnte es funktionieren.
    Leider kann ich da erstmal nicht weiter dran arbeiten.

    VG
    AME

    Mittwoch, 4. November 2020 08:29