Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

Rupanya karma saya adalah ini: melaksanakan tugas-tugas standar dengan segala cara yang tidak sepele. Jika ada yang mempunyai pandangan berbeda mengenai masalah tersebut, silakan berdiskusi agar masalah tersebut dapat diselesaikan.

Suatu pagi yang cerah, muncul tugas menarik untuk mendistribusikan hak kepada kelompok pengguna untuk berbagai bagian yang berisi subfolder proyek dengan folder dokumen. Semuanya baik-baik saja dan skrip ditulis untuk memberikan hak pada folder. Dan ternyata grup tersebut harus berisi pengguna dari domain berbeda, dari hutan berbeda (bagi yang lupa apa itu). Misalkan sharenya sendiri ada di media Synology yang terdaftar di domain FB hutan PSI. Tugas: mengizinkan pengguna domain di hutan lain untuk mengakses konten share ini, dan dengan sangat selektif.

Setelah beberapa waktu, spesifikasi teknisnya berbentuk sebagai berikut:

  • 2 hutan: hutan PSI, hutan TG.

    Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

  • Setiap hutan memiliki 3 domain: PSI (ZG, PSI, FB); TG (TG, HU, KC).
  • Ada hubungan kepercayaan antar hutan; Synology melihat semua kelompok Keamanan di semua hutan.
  • Share dan folder/subfolder harus memiliki akun administrator domain FB dengan hak FullControl
  • Nama folder harus disistematisasikan. Manajemen mengoordinasikan ID proyek; Saya memutuskan untuk menghubungkan nama grup Keamanan ke ID proyek.
  • Folder proyek di berbagi sistem harus berisi struktur yang disiapkan sebelumnya dalam file .xlsx, dengan hak akses yang sesuai (R/RW/NA, di mana NA – tidak ada akses)

    Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

  • Seharusnya dimungkinkan untuk membatasi hak pengguna/anggota grup dari satu proyek hanya pada direktori tertentu dari proyek tersebut. Pengguna mungkin tidak memiliki akses ke direktori/proyek lain, bergantung pada keanggotaan grup.
  • Saat membuat folder proyek, grup harus dibuat seotomatis mungkin di domain yang sesuai dengan nama yang sesuai dengan ID proyek.

Catatan untuk spesifikasi teknis

  • Membangun hubungan saling percaya tidak termasuk dalam cakupan spesifikasi teknis
  • ID Proyek berisi angka dan karakter Latin
  • Peran pengguna proyek untuk semua domain memiliki nama standar
  • File .xlsx dengan folder dan hak akses (matriks akses) disiapkan sebelum dimulainya keseluruhan proyek
  • Saat mengimplementasikan proyek, dimungkinkan untuk membuat grup pengguna di domain terkait
  • Otomatisasi dicapai dengan menggunakan alat administrasi standar MS Windows

Penerapan spesifikasi teknis

Setelah memformalkan persyaratan ini, jeda taktis diambil untuk menguji metode pembuatan direktori dan pemberian hak padanya. Hal ini dimaksudkan untuk hanya menggunakan PowerShell, agar tidak mempersulit proyek. Seperti yang saya tulis sebelumnya, algoritma skrip tampak cukup sederhana:

  • kami mendaftarkan grup dengan nama yang berasal dari ID proyek (misalnya KC40587) dan peran terkait yang ditentukan dalam matriks akses: KC40587-EN- untuk insinyur; KC40587-PM – untuk manajer produk, dll.
  • kami mendapatkan SID dari grup yang dibuat
  • daftarkan folder proyek dan kumpulan direktori yang sesuai (daftar subfolder bergantung pada bagian pembuatannya dan ditentukan dalam matriks akses)
  • menetapkan hak ke grup untuk subdirektori baru proyek sesuai dengan matriks akses.

Kesulitan yang dihadapi pada tahap 1:

  • kesalahpahaman tentang metode menentukan matriks akses dalam skrip (array multidimensi sekarang diterapkan, tetapi jalur untuk mengisinya sedang dicari berdasarkan konten file .xlsx/matriks akses)

    Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

  • ketidakmungkinan mengatur hak akses di bagian SMB pada drive synology menggunakan PoSH (https://social.technet.microsoft.com/Forums/en-US/3f1a949f-0919-46f1-9e10-89256cf07e65/error-using-setacl-on- nas -share?forum=winserverpowershell), yang menyebabkan banyak waktu terbuang dan semuanya harus diadaptasi ke skrip menggunakan utilitas pengeditan hak akses icacls, yang memerlukan pembuatan repositori perantara file teks dan cmd.

Dalam mode saat ini, eksekusi file cmd dikontrol secara manual, tergantung pada kebutuhan untuk mendaftarkan folder untuk proyek tersebut.

Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

Ternyata skrip tersebut juga harus dijalankan untuk mendaftarkan grup di hutan lain (istilah Cross-domain digunakan), dan rasionya tidak hanya 1 banding satu, tetapi juga 1 banding banyak.

Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

Ini berarti bahwa kelompok-kelompok dari lintas-domain lain, termasuk hutan di sekitarnya, kini dapat mengklaim akses terhadap sumber daya di domain mana pun. Untuk mencapai keseragaman, diputuskan untuk membuat struktur simetris di OU semua domain yang dilayani di semua hutan (oval vertikal hitam). Seperti kata pepatah, segala sesuatu di ketentaraan harus jelek, tetapi seragam:

Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

Jadi, ketika mendaftarkan proyek 80XXX di domain TG, skrip dijalankan:

1. pembuatan OU yang sesuai (oval horizontal merah) di domain ini dan lintas domain, yaitu domain yang karyawannya harus memiliki akses ke sumber daya ini.

2. mengisi OU dengan grup dengan nama seperti -, Di mana:

  • SRC_ domain – lintas domain yang karyawannya akan memiliki akses ke sumber daya domain DST
  • DST_domain – domain yang sumber dayanya, pada kenyataannya, aksesnya harus disediakan, yaitu untuk tujuan dimulainya segala sesuatu
  • - nomor proyek
  • PERAN – nama peran yang tercantum dalam matriks akses.

3. membaca susunan SID dari semua grup dari semua domain yang terlibat dan menyimpannya untuk transfer data selanjutnya ke file yang menentukan hak atas subfolder proyek tertentu

4. pembuatan file sumber (parameter /pemulihan) dengan seperangkat hak untuk digunakan oleh utilitas icacKC dalam mode file yang dapat dieksekusi β€œicacKC "as-nasNNKCProjects" /restore C:TempKCKC40XXKC40XX.txt"

5. membuat file CMD yang menggabungkan semua icacl yang diluncurkan untuk semua folder proyek

Penugasan hak secara besar-besaran kepada pengguna domain dari hutan yang berbeda

Seperti yang telah ditulis sebelumnya, peluncuran file executable dilakukan secara manual dan evaluasi hasil eksekusi juga dilakukan secara manual.

Kesulitan yang harus kami hadapi pada akhirnya:

  • jika folder proyek sudah diisi dengan sejumlah besar file, menjalankan perintah icacls pada volume yang ada dapat memakan waktu lama, dan dalam beberapa kasus menyebabkan kegagalan (misalnya, ketika ada jalur file yang panjang);
  • selain parameter /restore, kami harus menambahkan baris dengan parameter /reset jika folder tidak dibuat, tetapi ditransfer dari folder yang sudah ada sebelumnya, dengan hak warisan dari root dinonaktifkan;
  • Bagian dari skrip untuk membuat grup harus dijalankan pada DC sembarang di setiap hutan, masalahnya menyangkut akun administratif untuk setiap pohon.

Kesimpulan umum: sangat aneh bahwa belum ada utilitas dengan fungsi serupa di pasaran. Tampaknya mungkin untuk mengimplementasikan fungsi serupa berdasarkan portal Sharepoint.
Juga tidak dapat dipahami bahwa tidak mungkin menggunakan utilitas PoSH untuk mengatur hak folder pada perangkat sinologi.

Jika diinginkan, saya siap membagikan skrip dengan membuat beberapa proyek di github jika ada yang tertarik.

Sumber: www.habr.com

Tambah komentar