Velika dodjela prava korisnicima domena iz različitih šuma

Očigledno je moja karma sljedeća: implementirati standardne zadatke na sve vrste netrivijalnih načina. Ako neko ima drugačiju viziju problema, raspravite o tome kako bi se problem riješio.

Jednog lijepog jutra pojavio se zanimljiv zadatak da se podijele prava grupama korisnika za različita dijeljenja koja sadrže podfoldere projekata sa folderima dokumenata. Sve je bilo u redu i napisana je skripta za dodjelu prava na foldere. A onda se pokazalo da grupe treba da sadrže korisnike iz različitih domena, iz različitih šuma (za one koji su zaboravili šta je). Recimo da se sam dionica nalazi na Synology mediju, registrovanom na FB domenu PSI šume. Zadatak: omogućiti korisnicima domena u drugoj šumi da imaju pristup sadržaju ovog dijeljenja, i to vrlo selektivno.

Nakon nekog vremena, tehničke specifikacije su poprimile sljedeći oblik:

  • 2 šume: PSI šuma, TG šuma.

    Velika dodjela prava korisnicima domena iz različitih šuma

  • Svaka šuma ima 3 domene: PSI (ZG, PSI, FB); TG (TG, HU, KC).
  • Između šuma postoji odnos povjerenja; Synology vidi sve sigurnosne grupe u svim šumama.
  • Dijelovi i folderi/podfolderi moraju imati administratorske račune FB domena sa FullControl pravima
  • Nazive fascikli treba sistematizirati. Menadžment je koordinirao ID-ove projekta; odlučio sam da povežem naziv sigurnosnih grupa sa ID-ovima projekta.
  • Fascikle projekta u sistemskim dijeljenjima moraju sadržavati strukturu pripremljenu unaprijed u .xlsx datoteci, sa odgovarajućim privilegijama pristupa (R/RW/NA, gdje NA – nema pristupa)

    Velika dodjela prava korisnicima domena iz različitih šuma

  • Trebalo bi biti moguće ograničiti prava korisnika/članova grupe jednog projekta samo na određene direktorije tog projekta. Korisnik možda neće imati pristup drugim direktorijima/projektima, ovisno o članstvu u grupi.
  • Prilikom kreiranja fascikle projekta, grupe treba kreirati što je moguće automatski u odgovarajućim domenima sa nazivima koji odgovaraju ID-ovima projekta.

Napomene uz tehničke specifikacije

  • Postavljanje odnosa povjerenja nije uključeno u opseg tehničkih specifikacija
  • ID projekta sadrži brojeve i latinične znakove
  • Uloge korisnika projekta za sve domene imaju standardna imena
  • Prije početka cijelog projekta priprema se .xlsx datoteka sa folderima i pravima pristupa (pristupna matrica)
  • Prilikom realizacije projekata moguće je kreirati korisničke grupe u odgovarajućim domenima
  • Automatizacija se postiže korištenjem standardnih MS Windows administrativnih alata

Implementacija tehničkih specifikacija

Nakon formalizovanja ovih zahteva, napravljena je taktička pauza za testiranje metoda za kreiranje direktorijuma i dodeljivanje prava na njih. Namjera je bila da se koristi samo PowerShell, kako ne bi komplicirao projekat. Kao što sam ranije napisao, algoritam skripte je izgledao prilično jednostavan:

  • registrujemo grupe sa imenom izvedenim iz ID-a projekta (na primer KC40587) i odgovarajućim ulogama navedenim u pristupnoj matrici: KC40587-EN- za inženjera; KC40587-PM – za menadžera proizvoda, itd.
  • dobijamo SID-ove kreiranih grupa
  • registrirajte projektnu mapu i odgovarajući skup direktorija (lista podmapa ovisi o udjelu u kojem je kreirana i definirana u pristupnoj matrici)
  • dodijeliti prava grupama za nove poddirektorije projekta prema pristupnoj matrici.

Poteškoće na koje ste naišli u fazi 1:

  • nerazumijevanje metode specificiranja pristupne matrice u skriptu (sada je implementiran višedimenzionalni niz, ali se put do njegovog popunjavanja traži na osnovu sadržaja .xlsx datoteke/pristupne matrice)

    Velika dodjela prava korisnicima domena iz različitih šuma

  • nemogućnost postavljanja prava pristupa u SMB dionicama na Synology diskovima koristeći PoSH (https://social.technet.microsoft.com/Forums/en-US/3f1a949f-0919-46f1-9e10-89256cf07e65/error-using-setacl-on- nas -share?forum=winserverpowershell), zbog čega je izgubljeno dosta vremena i sve je trebalo prilagoditi skriptama pomoću uslužnog programa za uređivanje prava pristupa icacls, što je zahtijevalo kreiranje srednjeg spremišta tekstualnih i cmd datoteka.

U trenutnom režimu, izvršavanje cmd fajlova se kontroliše ručno, u zavisnosti od potrebe da se registruje folder za projekat.

Velika dodjela prava korisnicima domena iz različitih šuma

Takođe se pokazalo da bi skriptu trebalo izvršiti i za registraciju grupa u drugim šumama (koristio se termin Cross-domains), a omjer može biti ne samo 1 prema jedan, već i 1 prema mnogo.

Velika dodjela prava korisnicima domena iz različitih šuma

To znači da grupe iz drugih unakrsnih domena, uključujući susjednu šumu, sada mogu tražiti pristup resursima bilo kojeg domena. Da bi se postigla ujednačenost, odlučeno je da se napravi simetrična struktura u OU svih opsluživanih domena svih šuma (crni vertikalni ovali). Kako kažu, u vojsci bi sve trebalo biti ružno, ali uniformno:

Velika dodjela prava korisnicima domena iz različitih šuma

Dakle, prilikom registracije projekta 80XXX u TG domenu, skripta izvršava:

1. kreiranje odgovarajuće OU (crveni horizontalni ovali) u ovom domenu i cross-domene, odnosno onih domena čiji zaposleni moraju imati pristup ovom resursu.

2. popunjavanje OU grupama sa imenima kao što su -, gdje:

  • SRC_ domena – unakrsna domena čiji će zaposleni imati pristup resursima DST domena
  • DST_domain – domena čijim resursima, zapravo, treba omogućiti pristup, odnosno radi koje je sve pokrenuto
  • — broj projekta
  • ULOGE – nazivi uloga navedenih u pristupnoj matrici.

3. čitanje niza SID-ova svih grupa svih uključenih domena i spremanje za naknadni prijenos podataka u datoteku koja definira prava na određenu podmapu projekta

4. generiranje izvornih datoteka (parametar /restore) sa skupom prava za korištenje od strane icacKC uslužnog programa u načinu izvršne datoteke “icacKC "as-nasNNKCProjects" /restore C:TempKCKC40XXKC40XX.txt"

5. kreiranje CMD fajla koji kombinuje sve pokrenute icacls za sve fascikle projekta

Velika dodjela prava korisnicima domena iz različitih šuma

Kao što je ranije napisano, pokretanje izvršne datoteke se vrši ručno, a evaluacija rezultata izvršenja se takođe vrši ručno.

Poteškoće sa kojima smo se na kraju morali suočiti:

  • ako je fascikla projekta već popunjena velikim brojem datoteka, tada pokretanje naredbe icacls na postojećim volumenima može potrajati dosta vremena, au nekim slučajevima dovesti do neuspjeha (na primjer, kada postoje duge putanje datoteka);
  • pored /restore parametra, morali smo da dodamo redove sa parametrom /reset u slučaju da folderi nisu kreirani, već su prebačeni iz prethodno postojećih foldera, sa onemogućenim pravima nasleđivanja od root-a;
  • Dio skripte za kreiranje grupa morao je da se izvrši na proizvoljnom dc-u svake šume, problem se tiče administrativnih naloga za svako drvo.

Opšti zaključak: vrlo je čudno da na tržištu još nema uslužnih programa slične funkcionalnosti. Čini se da je moguće implementirati sličnu funkcionalnost na osnovu Sharepoint portala.
Također je neshvatljivo da nije moguće koristiti PoSH uslužne programe za postavljanje prava foldera na sinološkim uređajima.

Po želji, spreman sam podijeliti skriptu kreiranjem nekog projekta na githubu ako je neko zainteresiran.

izvor: www.habr.com

Dodajte komentar