ในบทความนี้ เราจะมาดูวิธีการมอบสิทธิ์การดูแลระบบในโดเมน Active Directory การมอบหมายช่วยให้คุณให้สิทธิ์ดำเนินการจัดการ AD บางอย่างแก่ผู้ใช้โดเมนทั่วไป (ที่ไม่ใช่ผู้ดูแลระบบ) โดยไม่ต้องกำหนดให้ผู้ใช้เป็นสมาชิกของกลุ่มโดเมนที่มีสิทธิ์ เช่น ผู้ดูแลระบบโดเมน ผู้ให้บริการบัญชี เป็นต้น ตัวอย่างเช่น คุณสามารถใช้การมอบหมายเพื่อ ให้สิทธิ์กลุ่มความปลอดภัย AD (เช่น Helpdesk) ในการเพิ่มผู้ใช้ในกลุ่ม สร้างผู้ใช้ใหม่ใน AD และรีเซ็ตรหัสผ่านของบัญชี
ทำความเข้าใจเกี่ยวกับสิทธิ์ที่ได้รับมอบสิทธิ์ของ Active Directory
ในการมอบหมายสิทธิ์ใน AD การมอบหมายตัวช่วยสร้างการควบคุม ใน Active Directory Users and Computers (DSA.msc) ถูกใช้
คุณสามารถมอบสิทธิ์ผู้ดูแลระบบใน AD ในระดับที่ค่อนข้างละเอียด คุณสามารถให้สิทธิ์กลุ่มหนึ่งในการรีเซ็ตรหัสผ่านใน OU อีกกลุ่มหนึ่ง – เพื่อสร้างและลบบัญชีผู้ใช้ และกลุ่มที่สาม – เพื่อสร้างและเปลี่ยนความเป็นสมาชิกกลุ่ม คุณสามารถกำหนดค่าการสืบทอดสิทธิ์ใน OU ที่ซ้อนกันได้ สามารถมอบหมายสิทธิ์ใน Active Directory ในระดับต่อไปนี้:
- ไซต์โฆษณา
- ทั้งโดเมน
- หน่วยขององค์กร (OU) เฉพาะใน Active Directory
- วัตถุ AD เฉพาะ
แนวทางปฏิบัติที่ดีที่สุดสำหรับการควบคุมการมอบหมายใน Active Directory:
- ไม่แนะนำให้มอบหมาย (กำหนด) สิทธิ์โดยตรงให้กับบัญชีผู้ใช้เฉพาะ สร้างกลุ่มความปลอดภัยใหม่ใน AD แทน เพิ่มผู้ใช้ และมอบหมายสิทธิ์ใน OU สำหรับกลุ่มนั้น หากคุณต้องการให้สิทธิ์เดียวกันกับผู้ใช้รายอื่น คุณสามารถเพิ่มเขาในกลุ่มความปลอดภัยนี้ได้
- หลีกเลี่ยงการใช้การอนุญาตการปฏิเสธ เนื่องจากจะมีความสำคัญเหนือกว่าการอนุญาต
- ตรวจสอบสิทธิ์ที่ได้รับมอบหมายเป็นระยะในโดเมน (สามารถสร้างรายงานพร้อมรายการสิทธิ์ต่อ OU ปัจจุบันได้โดยใช้ PowerShell)
- อย่าให้สิทธิ์ใดๆ ในการจัดการ OU ด้วยบัญชีผู้ดูแลระบบ มิเช่นนั้น เจ้าหน้าที่ฝ่ายสนับสนุนสามารถรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมนได้ ผู้ใช้และกลุ่มที่มีสิทธิ์ทั้งหมดควรอยู่ใน OU แยกต่างหากที่ไม่อยู่ภายใต้กฎการมอบหมาย
มอบหมายการรีเซ็ตรหัสผ่านและปลดล็อกการอนุญาตบัญชีในโฆษณา
สมมติว่างานของคุณคือการให้สิทธิ์กลุ่ม HelpDesk เพื่อรีเซ็ตรหัสผ่านและปลดล็อกบัญชีผู้ใช้ในโดเมน มาสร้างกลุ่มความปลอดภัยใหม่ใน AD โดยใช้ PowerShell:
New-ADGroup "HelpDesk" -path 'OU=Groups,OU=Paris,OU=Fr,dc=woshub,DC=com' -GroupScope Global
เพิ่มผู้ใช้ที่คุณต้องการในกลุ่มนี้:
Add-AdGroupMember -Identity HelpDesk -Members rdroz, jdupont
เรียกใช้ Active Directory Users and Computers mmc snap-in (dsa.msc
) คลิกขวาที่ OU กับผู้ใช้ (ในตัวอย่างของเราคือ 'OU=Users,OU=Paris,OU=Fr,dc=woshub,DC=com') และเลือก การควบคุมผู้รับมอบสิทธิ์ รายการเมนู
เลือกกลุ่มที่คุณต้องการให้สิทธิ์ผู้ดูแลระบบ
เลือกชุดสิทธิ์ที่กำหนดไว้ล่วงหน้าชุดใดชุดหนึ่ง (มอบหมายงานทั่วไปต่อไปนี้):
- สร้าง ลบ และจัดการบัญชีผู้ใช้
- รีเซ็ตรหัสผ่านของผู้ใช้และบังคับให้เปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งถัดไป
- อ่านข้อมูลผู้ใช้ทั้งหมด;
- สร้าง ลบ และจัดการกลุ่ม
- แก้ไขความเป็นสมาชิกของกลุ่ม
- จัดการลิงก์นโยบายกลุ่ม
- สร้างชุดนโยบายผลลัพธ์ (การวางแผน)
- สร้างชุดนโยบายผลลัพธ์ (การบันทึก)
- สร้าง ลบ และจัดการบัญชี inetOrgPerson
- รีเซ็ตรหัสผ่าน inetOrgPerson และบังคับเปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งถัดไป
- อ่านข้อมูล inetOrgPerson ทั้งหมด
หรือ สร้างงานที่กำหนดเองเพื่อมอบหมาย . ฉันเลือกตัวเลือกที่สอง
เลือกประเภทของวัตถุ AD ที่คุณต้องการให้สิทธิ์ผู้ดูแลระบบ เนื่องจากเราต้องการให้สิทธิ์ในการควบคุมบัญชีผู้ใช้ เลือก User Object รายการ. หากคุณต้องการให้สิทธิ์ในการสร้างหรือลบผู้ใช้ใน OU ให้เลือกตัวเลือก สร้าง/ลบวัตถุที่เลือกในโฟลเดอร์นี้ . ในตัวอย่างของเรา เราไม่ให้สิทธิ์ดังกล่าว
ในรายการสิทธิ์ ให้เลือกรายการที่คุณต้องการมอบหมาย ในตัวอย่าง เราจะเลือกสิทธิ์ในการปลดล็อกบัญชีผู้ใช้ (อ่าน lockoutTime และ เขียน lockoutTime ) และเพื่อรีเซ็ตรหัสผ่าน (รีเซ็ตรหัสผ่าน )
เพื่อให้ทีม HelpDesk ระบุแหล่งที่มาของการล็อกเอาต์บัญชีในโดเมน คุณต้องให้สิทธิ์พวกเขาเพื่อค้นหาบันทึกการรักษาความปลอดภัยบนตัวควบคุมโดเมน
คลิกถัดไป และยืนยันการมอบหมายสิทธิ์ที่เลือกในหน้าจอสุดท้าย
ตอนนี้ ภายใต้บัญชีผู้ใช้จากกลุ่ม HelpDesk พยายามรีเซ็ตรหัสผ่านของผู้ใช้จาก OU เป้าหมายโดยใช้ PowerShell:
Set-ADAccountPassword gchaufourier -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “P@ssdr0w1” -Force -Verbose) –PassThru
รหัสผ่านควรรีเซ็ตสำเร็จ (หากตรงกับนโยบายรหัสผ่านของโดเมน)
ตอนนี้ให้ลองสร้างผู้ใช้ใน OU นี้โดยใช้ cmdlet ของ ADUser ใหม่:
New-ADUser -Name gmicheaux -Path 'OU=Users,OU=Paris,OU=FR,DC=woshub,DC=com' -Enabled $true
ข้อผิดพลาดการปฏิเสธการเข้าถึงควรปรากฏขึ้นเนื่องจากคุณไม่ได้มอบสิทธิ์ในการสร้างบัญชี AD ใหม่
คุณสามารถใช้บันทึกการรักษาความปลอดภัยของตัวควบคุมโดเมนเพื่อตรวจสอบการดำเนินการของผู้ใช้ที่คุณมอบสิทธิ์ระดับผู้ดูแลให้ ตัวอย่างเช่น คุณสามารถติดตามได้ว่าใครรีเซ็ตรหัสผ่านผู้ใช้ในโดเมน ใครเป็นผู้สร้างบัญชีผู้ใช้ใน AD หรือติดตามการเปลี่ยนแปลงในกลุ่มโฆษณาที่ละเอียดอ่อน
มอบสิทธิ์ในการเข้าร่วมคอมพิวเตอร์กับโดเมน AD
ตามค่าเริ่มต้น ผู้ใช้โดเมนทุกคนสามารถเข้าร่วมคอมพิวเตอร์กับโดเมนได้สูงสุด 10 เครื่อง เมื่อบวก 11 th คอมพิวเตอร์ ข้อผิดพลาดจะปรากฏขึ้น:
Your computer could not be joined to the domain. You have exceeded the maximum number of computer accounts you are allowed to create in this domain. Contact your system administrator to have this limit reset or increased.
คุณสามารถเปลี่ยนข้อจำกัดนี้ได้ในระดับทั่วทั้งโดเมนโดยการเพิ่มค่าของ ms-DS-MachineAccountQuota คุณลักษณะ. หรือ (ซึ่งถูกต้องและปลอดภัยกว่า) โดยการมอบสิทธิ์ในการเข้าร่วมคอมพิวเตอร์กับ OU เฉพาะกับกลุ่มผู้ใช้เฉพาะ (helpdesk) ในการดำเนินการนี้ ให้มอบสิทธิ์ในการสร้างออบเจ็กต์ของออบเจ็กต์คอมพิวเตอร์ พิมพ์. ใน Delegation of Control Wizard ให้เลือก สร้างวัตถุที่เลือกในโฟลเดอร์นี้ .
เลือก สร้างวัตถุลูกทั้งหมด ในส่วนการอนุญาต
หากคุณต้องการมอบสิทธิ์ในการย้ายออบเจ็กต์ระหว่างหน่วยขององค์กรใน AD คุณต้องให้สิทธิ์ต่อไปนี้:ลบออบเจ็กต์ผู้ใช้ เขียนชื่อเฉพาะ เขียนชื่อ (**) สร้างออบเจ็กต์ผู้ใช้ (หรือคอมพิวเตอร์)
จะดูและลบสิทธิ์ที่ได้รับมอบหมายใน Active Directory ได้อย่างไร
สามารถกำหนดกฎการมอบหมายจำนวนเท่าใดก็ได้ให้กับ OU ใน AD คุณสามารถรับรายชื่อกลุ่มและการอนุญาตที่มอบหมายให้กับพวกเขาในคุณสมบัติของ OU ในคอนโซล ADUC ไปที่ ความปลอดภัย แท็บ
ประกอบด้วยรายการหัวข้อ AD ที่ได้รับสิทธิ์สำหรับคอนเทนเนอร์นี้ คุณสามารถดูรายการของสิทธิ์ที่ได้รับใน ขั้นสูง แท็บ อย่างที่คุณเห็น กลุ่ม HelpDesk ได้รับอนุญาตให้รีเซ็ตรหัสผ่านได้
คุณสามารถเพิกถอนกลุ่มของสิทธิ์การดูแลระบบที่กำหนดก่อนหน้านี้ผ่านการมอบสิทธิ์ได้ ค้นหาชื่อกลุ่มที่คุณมอบสิทธิ์ให้แล้วคลิก ลบ .
นอกจากนี้ ใน ความปลอดภัย -> ขั้นสูง แท็บคุณสามารถกำหนดสิทธิ์ที่ได้รับมอบหมายให้กับกลุ่มความปลอดภัยต่างๆ ได้ด้วยตนเอง
วิธีการมอบหมายสิทธิ์ใน Active Directory ด้วย PowerShell
คุณสามารถรับรายการสิทธิ์ที่มอบหมายให้กับ OU หรือเปลี่ยนการอนุญาตปัจจุบันโดยใช้ PowerShell Get-ACL
และ Set-ACL
cmdlets ถูกใช้เพื่อดูและเปลี่ยนการอนุญาตใน Active Directory (PowerShell cmdlets เดียวกันถูกใช้เพื่อจัดการสิทธิ์ NTFS บนไฟล์และโฟลเดอร์)
สคริปต์อย่างง่ายต่อไปนี้จะแสดงรายการสิทธิ์ที่ไม่เป็นมาตรฐานทั้งหมดที่มอบหมายให้กับหน่วยขององค์กรเฉพาะใน AD:
# get the OU
$OUs = Get-ADOrganizationalUnit -Filter 'DistinguishedName -eq "OU=Users,OU=Paris,DC=woshub,DC=com"'| Select-Object -ExpandProperty DistinguishedName
$schemaIDGUID = @{}
$ErrorActionPreference = 'SilentlyContinue'
Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -LDAPFilter '(schemaIDGUID=*)' -Properties name, schemaIDGUID |
ForEach-Object {$schemaIDGUID.add([System.GUID]$_.schemaIDGUID,$_.name)}
Get-ADObject -SearchBase "CN=Extended-Rights,$((Get-ADRootDSE).configurationNamingContext)" -LDAPFilter '(objectClass=controlAccessRight)' -Properties name, rightsGUID |
ForEach-Object {$schemaIDGUID.add([System.GUID]$_.rightsGUID,$_.name)}
$ErrorActionPreference = 'Continue'
ForEach ($OU in $OUs) {
$report += Get-Acl -Path "AD:\$OU" |
Select-Object -ExpandProperty Access |
Select-Object @{name='organizationalUnit';expression={$OU}}, `
@{name='objectTypeName';expression={if ($_.objectType.ToString() -eq '00000000-0000-0000-0000-000000000000') {'All'} Else {$schemaIDGUID.Item($_.objectType)}}}, `
@{name='inheritedObjectTypeName';expression={$schemaIDGUID.Item($_.inheritedObjectType)}}, `
*
}
# report with assigned OU permissions
คุณสามารถรับรายงานการอนุญาตที่ได้รับมอบสิทธิ์ด้วย Out-GridView cmdlet แบบกราฟิก:
$report| where {($_.IdentityReference -notlike "*BUILTIN*") -and ($_.IdentityReference -notlike "*NT AUTHORITY*") }| Out-GridView
หรือส่งออกรายการสิทธิ์ไปยังไฟล์ CSV เพื่อการวิเคราะห์เพิ่มเติมใน Excel (คุณสามารถเขียนข้อมูลไปยังไฟล์ Excel ได้โดยตรงจากสคริปต์ PowerShell):$report | Export-Csv -Path "C:\reports\AD_OU_Permissions.csv" –NoTypeInformation
รายงานผลลัพธ์แสดงให้เห็นว่ากลุ่ม HelpDesk ได้รับมอบหมายสิทธิ์ในการรีเซ็ตรหัสผ่านของผู้ใช้ (ObjectTypeName=User-Force-Change-Password) ใน OU
คุณสามารถใช้ dsacls เครื่องมือในการมอบสิทธิ์ให้กับ OU ตัวอย่างเช่น:
dsacls "ou=users,ou=paris,dc=woshub,dc=com" /I:S /G "WOSHUB\HELPDESK:CA;Reset Password;user" "WOSHUB\HELPDESK:WP;pwdLastSet;user" "WOSHUB\HELPDESK:WP;lockoutTime;user
คุณยังสามารถกำหนดสิทธิ์ให้กับคอนเทนเนอร์หน่วยขององค์กรโดยใช้ PowerShell (ในตัวอย่างนี้ สิทธิ์ในการรีเซ็ตรหัสผ่านจะได้รับการมอบหมาย):
$ou = "AD:\OU=users,OU=Paris,DC=woshub,DC=com"
$group = Get-ADGroup helpdesk
$sid = new-object System.Security.Principal.SecurityIdentifier $group.SID
$ResetPassword = [GUID]"00299570-246d-11d0-a768-00aa006e0529"
$UserObjectType = "bf967aba-0de6-11d0-a285-00aa003049e2"
$ACL = get-acl $OU
$RuleResetPassword = New-Object System.DirectoryServices.ActiveDirectoryAccessRule ($sid, "ExtendedRight", "Allow", $ResetPassword, "Descendents", $UserObjectType)
$ACL.AddAccessRule($RuleResetPassword)
Set-Acl -Path $OU -AclObject $ACL
ในทำนองเดียวกัน คุณสามารถมอบหมายการอนุญาตอื่นๆ ให้กับคอนเทนเนอร์ขององค์กร AD โดยใช้ PowerShell