Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

Blykber is myn karma dit: standerttaken útfiere op allerhanne net-triviale manieren. As immen in oare fyzje fan it probleem hat, besykje it dan asjebleaft sadat it probleem útwurke wurde kin.

Op in moaie moarn ûntstie in nijsgjirrige taak om rjochten te fersprieden oan groepen brûkers foar ferskate oandielen mei submappen fan projekten mei dokumintmappen. Alles wie goed en der waard in skript skreaun om rjochten ta te jaan oan de mappen. En doe die bliken dat de groepen brûkers moatte befetsje fan ferskate domeinen, út ferskate bosken (foar dyjingen dy't fergetten wat it is). Litte wy sizze dat it diel sels op Synology media leit, registrearre yn it FB-domein fan it PSI-bosk. Taak: om brûkers fan domeinen yn in oar bosk tagong te krijen ta de ynhâld fan dit diel, en tige selektyf.

Nei in skoft naam de technyske spesifikaasjes de folgjende foarm:

  • 2 bosken: PSI bosk, TG bosk.

    Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

  • Eltse bosk hat 3 domeinen: PSI (ZG, PSI, FB); TG (TG, HU, KC).
  • D'r is in fertrouwensrelaasje tusken bosken; Synology sjocht alle feiligensgroepen yn alle bosken.
  • Dielen en mappen/submappen moatte FB-domeinbehearderaccounts hawwe mei FullControl-rjochten
  • De nammen fan de mappen moatte systematisearre wurde. Management koördinearre de projekt-ID's; Ik besleat de namme fan 'e Feiligensgroepen te keppeljen oan de projekt-ID's.
  • Projektmappen yn systeemoandielen moatte in struktuer befetsje dy't foarôf taret is yn in .xlsx-bestân, mei passende tagongsrjochten (R/RW/NA, wêrby NA - gjin tagong)

    Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

  • It soe mooglik wêze moatte om de rjochten fan brûkers/groepleden fan ien projekt te beheinen ta allinnich bepaalde mappen fan dat projekt. De brûker hat mooglik gjin tagong ta oare mappen/projekten, ôfhinklik fan groepslidmaatskip.
  • By it meitsjen fan in projektmap moatte groepen sa automatysk mooglik makke wurde yn de passende domeinen mei nammen dy't oerienkomme mei projekt-ID's.

Notysjes oan de technyske spesifikaasjes

  • It opsetten fan fertrouwensrelaasjes is net opnommen yn 'e omfang fan' e technyske spesifikaasjes
  • Project ID befettet nûmers en Latynske tekens
  • Projekt brûkersrollen foar alle domeinen hawwe standertnammen
  • In .xlsx-bestân mei mappen en tagongsrjochten (tagongsmatrix) wurdt taret foar it begjin fan it hiele projekt
  • By it útfieren fan projekten is it mooglik om brûkersgroepen te meitsjen yn 'e oerienkommende domeinen
  • Automatisearring wurdt berikt troch it brûken fan standert MS Windows administraasje ark

Útfiering fan technyske spesifikaasjes

Nei it formalisearjen fan dizze easken, waard in taktyske pauze nommen om metoaden te testen foar it meitsjen fan mappen en it tawizen fan rjochten oan har. It wie bedoeld om allinich PowerShell te brûken, om it projekt net te komplisearjen. Lykas ik earder skreau, like it skriptalgoritme frij simpel:

  • wy registrearje groepen mei in namme ôflaat fan it projekt ID (bygelyks KC40587) en de oerienkommende rollen oantsjutte yn de tagong matrix: KC40587-EN- foar yngenieur; KC40587-PM - foar produktbehearder, ensfh.
  • wy krije de SID's fan 'e oanmakke groepen
  • registrearje de projektmap en de byhearrende set mappen (de list mei submappen hinget ôf fan it diel wêryn it is makke en definieare yn 'e tagongsmatrix)
  • tawize rjochten oan groepen foar nije submappen fan it projekt neffens de tagongsmatrix.

Swierrichheden dy't tsjinkaam by faze 1:

  • misbegryp fan 'e metoade foar it opjaan fan' e tagongsmatrix yn it skript (in multydimensionale array is no ymplementearre, mar it paad nei it ynfoljen wurdt socht basearre op de ynhâld fan 'e .xlsx-bestân/tagongsmatrix)

    Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

  • ûnmooglikheid om tagongsrjochten yn te stellen yn SMB-oandielen op synologyskiven mei PoSH (https://social.technet.microsoft.com/Forums/en-US/3f1a949f-0919-46f1-9e10-89256cf07e65/error-using-setacl-on- nas -share?forum=winserverpowershell), wêrtroch in protte tiid ferlern gie en alles oanpast wurde moast oan skripts mei it icacls-bewurkingsprogramma foar tagongsrjochten, dat it oanmeitsjen fan in tuskenlizzende repository fan tekst- en cmd-bestannen easke.

Yn 'e aktuele modus wurdt de útfiering fan cmd-bestannen manuell regele, ôfhinklik fan de needsaak om in map foar it projekt te registrearjen.

Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

It die ek bliken dat it skript ek útfierd wurde moast om groepen yn oare bosken te registrearjen (de term Cross-domains waard brûkt), en de ferhâlding kin net allinich 1 op ien wêze, mar ek 1 op in protte.

Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

Dit betsjut dat groepen fan oare cross-domeinen, ynklusyf in oanbuorjende bosk, no tagong krije kinne ta de boarnen fan elk domein. Om uniformiteit te berikken, waard besletten om in symmetryske struktuer te meitsjen yn 'e OU fan alle betsjinne domeinen fan alle bosken (swarte fertikale ovalen). Sa't se sizze, yn it leger moat alles lelijk wêze, mar unifoarm:

Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

Sa, by it registrearjen fan projekt 80XXX yn it TG-domein, fiert it skript út:

1. skepping fan de oerienkommende OU (reade horizontale ovalen) yn dit domein en cross-domeinen, dat is, dy domeinen waans meiwurkers moatte hawwe tagong ta dizze boarne.

2. folje OU mei groepen mei nammen lykas -, Wêr:

  • SRC_-domein - cross-domein wêrfan meiwurkers tagong krije ta DST-domeinboarnen
  • DST_domain - it domein wêrfan de boarnen yn feite tagong moatte wurde levere, dat is, om't alles begon is
  • - projekt nûmer
  • ROLLEN - nammen fan de rollen neamd yn de tagong matrix.

3. it array fan SID's fan alle groepen fan alle belutsen domeinen lêze en it bewarje foar folgjende gegevensferfier nei in bestân dat de rjochten definiearret foar in spesifike projektsubmap

4. generaasje fan boarne triemmen (parameter / weromsette) mei in set fan rjochten foar gebrûk troch de icacKC utility yn útfierbere triem modus "icacKC "as-nasNNKCProjects" / weromsette C: TempKCKC40XXKC40XX.txt"

5. it meitsjen fan in CMD triem dat kombinearret alle lansearre icacls foar alle projekt mappen

Grutskalige tawizing fan rjochten oan domein brûkers út ferskate bosken

Lykas earder skreaun, wurdt it útfieren fan it útfierbere bestân mei de hân dien en evaluaasje fan 'e útfieringsresultaten wurdt ek mei de hân dien.

Swierrichheden dy't wy op it lêst te krijen hiene:

  • as de projektmap al fol is mei in grut oantal bestannen, dan kin it útfieren fan it kommando icacls op de besteande folumes in soad tiid nimme, en yn guon gefallen liede ta mislearring (bygelyks as d'r lange triempaden binne);
  • neist de parameter / weromsette, wy moasten tafoegje rigels mei de parameter / reset yn it gefal dat de mappen waarden net oanmakke, mar waarden oerbrocht út earder besteande mappen, mei erfskip rjochten út de root útskeakele;
  • In part fan it skript foar it meitsjen fan groepen moast wurde útfierd op in willekeurige dc fan elke bosk, it probleem giet om bestjoerlike akkounts foar elke beam.

Algemiene konklúzje: it is heul nuver dat d'r noch gjin nutsbedriuwen mei ferlykbere funksjonaliteit op 'e merke binne. It liket mooglik om ferlykbere funksjonaliteit te ymplementearjen basearre op it Sharepoint-portaal.
It is ek ûnbegryplik dat it net mooglik is om PoSH-hulpprogramma's te brûken foar it ynstellen fan maprjochten op sinology-apparaten.

As jo ​​​​wolle, bin ik ree om it skript te dielen troch wat projekt te meitsjen op github as immen ynteressearre is.

Boarne: www.habr.com

Add a comment