Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

Das ist offenbar mein Karma: Standardaufgaben auf alle möglichen nicht trivialen Arten umzusetzen. Wenn jemand eine andere Sicht auf das Problem hat, beteiligen Sie sich bitte an der Diskussion, um das Problem zu lösen.

Eines schönen Morgens ergab sich eine interessante Aufgabe: Rechte an Benutzergruppen auf verschiedenen Freigaben zu verteilen, die Projektunterordner mit Dokumentordnern enthielten. Alles war in Ordnung und es wurde ein Skript geschrieben, das den Ordnern Rechte zuweist. Und dann stellte sich heraus, dass die Gruppen Benutzer aus verschiedenen DomĂ€nen, aus verschiedenen WĂ€ldern enthalten sollten (fĂŒr diejenigen, die vergessen haben, was es istAngenommen, die Freigabe selbst befindet sich auf einem Synology-Laufwerk, das in der FB-DomĂ€ne der PSI-Gesamtstruktur registriert ist. Die Aufgabe besteht darin, Benutzern den Zugriff zu ermöglichen. domenov ein anderer Wald, um Zugang zum Inhalt dieser Kugel zu erhalten, und zwar sehr selektiv.

Nach einiger Zeit nahmen die technischen Spezifikationen folgende Form an:

  • 2 WĂ€lder: PSI-Wald, TG-Wald.

    Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

  • Jeder Wald hat 3 DomĂ€nen: PSI (ZG, PSI, FB); TG (TG, HU, KC).
  • Zwischen den Gesamtstrukturen besteht eine Vertrauensbeziehung. Synology sieht alle Sicherheitsgruppen in allen Gesamtstrukturen.
  • Freigaben und Ordner/Unterordner mĂŒssen ĂŒber FB-DomĂ€nenadministratorkonten mit Vollzugriffsrechten verfĂŒgen
  • Die Namen der Ordner im Ball sollten systematisiert werden. Das Management war fĂŒr die Koordinierung der Projekt-IDs verantwortlich und ich beschloss, die Namen der Sicherheitsgruppen mit den Projekt-IDs zu verknĂŒpfen.
  • Projektordner in Systemfreigaben mĂŒssen eine vorab in einer XLSX-Datei vorbereitete Struktur mit den entsprechenden Zugriffsrechten (R/RW/NA, wobei NA keinen Zugriff bedeutet) enthalten.

    Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

  • Es sollte möglich sein, die Rechte von Benutzern/Gruppenmitgliedern eines Projekts auf bestimmte Verzeichnisse dieses Projekts zu beschrĂ€nken. Aufgrund der Gruppenmitgliedschaft hat der Benutzer möglicherweise keinen Zugriff auf andere Verzeichnisse/Projekte.
  • Beim Anlegen eines Projektordners sollen möglichst automatisch Gruppen in den entsprechenden DomĂ€nen angelegt werden, deren Namen den Projekt-IDs entsprechen.

Hinweise zu den technischen Daten

  • Der Aufbau von Vertrauensbeziehungen ist nicht im Leistungsumfang enthalten.
  • Die Projekt-ID enthĂ€lt Zahlen und lateinische Buchstaben
  • Projektbenutzerrollen fĂŒr alle DomĂ€nen haben Standardnamen
  • Die .xlsx-Datei mit Ordnern und Zugriffsrechten (Zugriffsmatrix) wird vor Beginn des gesamten Projekts erstellt.
  • Bei der Umsetzung von Projekten besteht die Möglichkeit, Benutzergruppen in den entsprechenden DomĂ€nen zu erstellen.
  • Die Automatisierung wird durch den Einsatz von Standard-MS-Verwaltungstools erreicht. Windows

Umsetzung der technischen Spezifikationen

Nach der Formalisierung dieser Anforderungen wurde eine taktische Pause eingelegt, um Methoden zum Erstellen von Verzeichnissen und zum Zuweisen von Rechten an diese zu testen. Um das Projekt einfach zu halten, sollte nur PowerShell verwendet werden. Wie ich bereits schrieb, schien der Skriptalgorithmus recht einfach zu sein:

  • Wir registrieren Gruppen mit einem Namen, der aus der Projekt-ID abgeleitet ist (z. B. KC40587) und den entsprechenden Rollen, die in der Zugriffsmatrix angegeben sind: KC40587-EN – fĂŒr einen Ingenieur; KC40587-PM – fĂŒr Produktmanager usw.
  • wir erhalten SIDs der erstellten Gruppen
  • Registrieren Sie den Projektordner und die entsprechenden Verzeichnisse (die Liste der Unterordner hĂ€ngt von der Freigabe ab, in der sie erstellt und in der Zugriffsmatrix definiert wird).
  • FĂŒr neue Projektunterverzeichnisse vergeben wir Rechte an Gruppen entsprechend der Zugriffsmatrix.

In Phase 1 aufgetretene Schwierigkeiten:

  • MissverstĂ€ndnis der Methode zur Angabe der Zugriffsmatrix im Skript (derzeit ist ein mehrdimensionales Array implementiert, es wird jedoch nach einer Möglichkeit gesucht, es basierend auf dem Inhalt der XLSX-Datei/Zugriffsmatrix zu fĂŒllen)

    Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

  • Unmöglichkeit, Zugriffsrechte in SMB-Freigaben auf Synology-Laufwerken mit PoSH festzulegen (https://social.technet.microsoft.com/Forums/en-US/3f1a949f-0919-46f1-9e10-89256cf07e65/error-using-setacl-on-nas-share?forum=winserverpowershell), wodurch viel Zeit verloren ging und alles fĂŒr Skripte mit dem Dienstprogramm zur Bearbeitung von Zugriffsrechten icacls angepasst werden musste, was die Erstellung eines Zwischenrepositorys mit Text- und Befehlsdateien erforderte.

Im aktuellen Modus wird die AusfĂŒhrung von cmd-Dateien manuell gesteuert, basierend auf der Notwendigkeit, einen Ordner fĂŒr das Projekt zu registrieren.

Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

Es stellte sich auch heraus, dass das Skript ausgefĂŒhrt werden muss, auch um Gruppen in anderen Gesamtstrukturen zu registrieren (der Begriff „Cross-Domains“ wurde verwendet) und das VerhĂ€ltnis nicht nur 1 zu eins, sondern auch 1 zu viele betragen kann.

Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

Dies bedeutet, dass Gruppen aus anderen domĂ€nenĂŒbergreifenden Bereichen, einschließlich benachbarter Gesamtstrukturen, nun Zugriff auf Ressourcen jeder beliebigen DomĂ€ne beanspruchen können. Um Einheitlichkeit zu erreichen, wurde beschlossen, in der OU eine symmetrische Struktur aller bedienten DomĂ€nen aller WĂ€lder zu erstellen (schwarze vertikale Ovale). Wie man sagt, sollte in der Armee alles hĂ€sslich, aber einheitlich sein:

Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

Daher fĂŒhrt das Skript beim Registrieren des 80XXX-Projekts in der TG-DomĂ€ne Folgendes aus:

1. Erstellen der entsprechenden OU (rote horizontale Ovale) in der angegebenen DomĂ€ne und domĂ€nenĂŒbergreifend, d. h. in den DomĂ€nen, deren Mitarbeiter Zugriff auf die angegebene Ressource haben sollen.

2. FĂŒllen der OU mit Gruppen mit Namen wie -, Wo:

  • SRC_-DomĂ€ne – domĂ€nenĂŒbergreifend, deren Mitarbeiter Zugriff auf die DST-DomĂ€nenressourcen haben
  • DST_domain – die DomĂ€ne, auf deren Ressourcen eigentlich Zugriff gewĂ€hrt werden sollte, d. h. fĂŒr die alles gestartet wurde
  • — Projektnummer
  • ROLLEN – Namen der in der Zugriffsmatrix aufgefĂŒhrten Rollen.

3. Lesen des SID-Arrays aller Gruppen aller beteiligten DomĂ€nen und Speichern fĂŒr die spĂ€tere DatenĂŒbertragung in einer Datei, die die Rechte fĂŒr einen bestimmten Projektunterordner definiert

4. Generieren von Quelldateien (Parameter /restore) mit einer Reihe von Rechten zur Verwendung durch das Dienstprogramm icacKC im ausfĂŒhrbaren Dateimodus "icacKC "as-nasNNKCProjects" /restore C:TempKCKC40XXKC40XX.txt"

5. Erstellen einer CMD-Datei, die alle fĂŒr alle Projektordner gestarteten icacls kombiniert

Umfangreiche Rechtevergabe an DomÀnenbenutzer aus unterschiedlichen Forests

Wie bereits erwĂ€hnt, wird die ausfĂŒhrbare Datei manuell gestartet und die Auswertung der AusfĂŒhrungsergebnisse erfolgt ebenfalls manuell.

Schwierigkeiten, die am Ende bewÀltigt werden mussten:

  • Wenn der Projektordner bereits mit einer großen Anzahl von Dateien gefĂŒllt ist, kann die Verarbeitung des icacls-Befehls auf den verfĂŒgbaren DatentrĂ€gern sehr viel Zeit in Anspruch nehmen und in einigen FĂ€llen zu einem Fehler fĂŒhren (z. B. bei langen Dateipfaden).
  • zusĂ€tzlich zum Parameter /restore mussten Zeilen mit dem Parameter /reset hinzugefĂŒgt werden, falls die Ordner nicht erstellt, sondern aus bereits vorhandenen Ordnern ĂŒbertragen wurden, wobei die Vererbungsrechte vom Stammverzeichnis deaktiviert waren;
  • Ein Teil des Skripts zum Erstellen von Gruppen musste auf einem zufĂ€lligen DC jedes Forests ausgefĂŒhrt werden. Das Problem betrifft Administratorkonten fĂŒr jeden Baum.

Allgemeines Fazit: Es ist sehr merkwĂŒrdig, dass es noch keine Dienstprogramme mit Ă€hnlicher FunktionalitĂ€t auf dem Markt gibt. Es scheint möglich, Ă€hnliche Funktionen auf Basis des Sharepoint-Portals zu implementieren.
Unklar ist auch, dass es keine Möglichkeit gibt, mithilfe von PoSH-Dienstprogrammen Rechte fĂŒr einen Ordner auf Sinology-GerĂ€ten festzulegen.

Falls gewĂŒnscht, bin ich bereit, das Skript zu teilen, indem ich ein Projekt auf GitHub erstelle, falls jemand Interesse hat.

Source: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz und VPS-VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster