Mendelegasikan akses commandlet Ad FS PowerShell ke pengguna nonadmin

Secara default, hanya administrator Layanan Federasi Direktori Aktif yang dapat melakukan administrasi Layanan Federasi Direktori Aktif melalui PowerShell. Bagi banyak organisasi besar, ini mungkin bukan model operasional yang layak saat berhadapan dengan persona lain seperti personel help desk.

Dengan Just Enough Administration (JEA), pelanggan sekarang dapat mendelegasikan izin untuk commandlet tertentu ke grup personel yang berbeda.

Contoh yang baik dari kasus penggunaan ini adalah memungkinkan personel staf dukungan untuk meminta status penguncian akun Ad FS dan mengatur ulang status penguncian akun di Layanan Federasi Direktori Aktif setelah pengguna diperiksa. Dalam hal ini, commandlet yang perlu didelegasikan adalah:

  • Get-ADFSAccountActivity
  • Set-ADFSAccountActivity
  • Reset-ADFSAccountLockout

Kami menggunakan contoh ini di sisa dokumen ini. Namun, Anda dapat menyesuaikan ini untuk juga memungkinkan delegasi mengatur properti pihak yang mengandalkan dan menyerahkan ini kepada pemilik aplikasi dalam organisasi.

Membuat grup yang diperlukan untuk memberikan izin kepada pengguna

  1. Buat Akun Layanan Terkelola Grup. Akun gMSA digunakan untuk memungkinkan pengguna JEA mengakses sumber daya jaringan sebagai komputer atau layanan web lainnya. Ini menyediakan identitas domain yang dapat digunakan untuk mengautentikasi terhadap sumber daya pada komputer apa pun dalam domain. Akun gMSA diberikan hak administratif yang diperlukan nanti dalam penyiapan. Untuk contoh ini, kami memanggil akun gMSAContoso.
  2. Membuat grup Direktori Aktif dapat diisi dengan pengguna yang perlu diberikan hak atas perintah yang didelegasikan. Dalam contoh ini, personel staf staf dukungan diberikan izin untuk membaca, memperbarui, dan mengatur ulang status penguncian Layanan Federasi Direktori Aktif. Kami menyebut grup ini di seluruh contoh sebagai JEAContoso.

Menginstal akun gMSA di server LAYANAN Federasi Direktori Aktif

Buat akun layanan yang memiliki hak administratif ke server Layanan Federasi Direktori Aktif. Ini dapat dilakukan pada pengendali domain atau dari jarak jauh selama paket AD RSAT diinstal. Akun layanan harus dibuat di forest yang sama dengan server LAYANAN Federasi Direktori Aktif.

Ubah nilai contoh ke konfigurasi farm Anda.

 # This command should only be run if this is the first time gMSA accounts are enabled in the forest
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10)) 

# Run this on every node that you want to have JEA configured on
$adfsServer = Get-ADComputer server01.contoso.com

# Run targeted at domain controller
$serviceaccount = New-ADServiceAccount gMSAcontoso -DNSHostName <FQDN of the domain containing the KDS key> -PrincipalsAllowedToRetrieveManagedPassword $adfsServer –passthru

# Run this on every node
Add-ADComputerServiceAccount -Identity server01.contoso.com -ServiceAccount $ServiceAccount

Instal akun gMSA di server Layanan Federasi Direktori Aktif. Ini perlu dijalankan pada setiap simpul Layanan Federasi Direktori Aktif di farm.

Install-ADServiceAccount gMSAcontoso

Memberikan hak admin Akun gMSA

Jika farm menggunakan administrasi yang didelegasikan, berikan hak admin Akun gMSA dengan menambahkannya ke grup yang ada, yang telah mendelegasikan akses admin.

Jika farm tidak menggunakan administrasi yang didelegasikan, berikan hak admin akun gMSA dengan menjadikannya grup administrasi lokal di semua server AD FS.

Membuat file peran JEA

Di server Layanan Federasi Direktori Aktif, buat peran JEA dalam file notepad. Instruksi untuk membuat peran disediakan pada kemampuan peran JEA.

Commandlet yang didelegasikan dalam contoh ini adalah Reset-AdfsAccountLockout, Get-ADFSAccountActivity, and Set-ADFSAccountActivity.

Contoh peran JEA yang mendelegasikan akses dari commandlet 'Reset-ADFSAccountLockout', 'Get-ADFSAccountActivity', dan 'Set-ADFSAccountActivity':

@{
GUID = 'b35d3985-9063-4de5-81f8-241be1f56b52'
ModulesToImport = 'adfs'
VisibleCmdlets = 'Reset-AdfsAccountLockout', 'Get-ADFSAccountActivity', 'Set-ADFSAccountActivity'
}

Membuat file konfigurasi sesi JEA

Ikuti instruksi untuk membuat file konfigurasi sesi JEA. File konfigurasi menentukan siapa yang dapat menggunakan titik akhir JEA dan kemampuan apa yang dapat mereka akses.

Kemampuan peran dirujuk oleh nama datar (nama file tanpa ekstensi) dari file kemampuan peran. Jika beberapa kemampuan peran tersedia pada sistem dengan nama datar yang sama, PowerShell menggunakan urutan pencarian implisitnya untuk memilih file kemampuan peran yang efektif. Ini tidak memberikan akses ke semua file kemampuan peran dengan nama yang sama.

Untuk menentukan File Kemampuan Peran dengan jalur, gunakan RoleCapabilityFiles argumen . Untuk subfolder, JEA mencari modul PowerShell valid yang berisi RoleCapabilities subfolder, di mana RoleCapabilityFiles argumen harus dimodifikasi menjadi RoleCapabilities.

Contoh file konfigurasi sesi:

@{
SchemaVersion = '2.0.0.0'
GUID = '54c8d41b-6425-46ac-a2eb-8c0184d9c6e6'
SessionType = 'RestrictedRemoteServer'
GroupManagedServiceAccount =  'CONTOSO\gMSAcontoso'
RoleDefinitions = @{ JEAcontoso = @{ RoleCapabilityFiles = 'C:\Program Files\WindowsPowershell\Modules\AccountActivityJEA\RoleCapabilities\JEAAccountActivityResetRole.psrc' } }
}

Simpan file konfigurasi sesi.

Disarankan untuk menguji file konfigurasi sesi Anda jika Anda telah mengedit file pssc secara manual menggunakan editor teks untuk memastikan sintaksnya benar. Jika file konfigurasi sesi tidak lulus pengujian ini, file tersebut tidak berhasil didaftarkan pada sistem.

Menginstal konfigurasi sesi JEA di server LAYANAN Federasi Direktori Aktif

Menginstal konfigurasi sesi JEA di server LAYANAN Federasi Direktori Aktif

Register-PSSessionConfiguration -Path .\JEASessionConfig.pssc -name "AccountActivityAdministration" -force

Instruksi operasional

Setelah disiapkan, pengelogan dan audit JEA dapat digunakan untuk menentukan apakah pengguna yang benar memiliki akses ke titik akhir JEA.

Untuk menggunakan perintah yang didelegasikan:

Enter-pssession -ComputerName server01.contoso.com -ConfigurationName "AccountActivityAdministration" -Credential <User Using JEA>
Get-AdfsAccountActivity <User>