הקצאת הרשאות ניהול ב- Active Directory
במאמר זה, נבחן כיצד להקצות הרשאות ניהול בתחום Active Directory. הקצאה מאפשרת לך להעניק הרשאות לביצוע משימות ניהול AD מסוימות למשתמשי תחום משותף (שאינם מנהלי מערכת) מבלי להפוך אותם לחברים בקבוצות התחומים המורשים, כגון מנהלי דומיין, מפעילי חשבונות וכו'. לדוגמה, באפשרותך להשתמש בהקצאה כדי להעניק לקבוצת אבטחה מסוימת של AD (לדוגמה, מחלקת תמיכה) הרשאות להוסיף משתמשים לקבוצות, ליצור משתמשים חדשים ב- AD ולאפס את סיסמאות החשבון.
הבנת הרשאות מוקצות של Active Directory
כדי להקצות הרשאות ב- AD, נעשה שימוש באשף הקצאת השליטה במסוף המשתמשים והמחשבים של Active Directory (DSA.msc).
באפשרותך להאציל הרשאות ניהול ב- AD ברמה פרטנית למדי. אתה יכול להעניק לקבוצה אחת הרשאה לאפס סיסמאות ב-OU, קבוצה אחרת - ליצור ולמחוק חשבונות משתמשים, והשלישית - ליצור ולשנות חברות בקבוצה. באפשרותך לקבוע תצורה של קבלת הרשאות בירושה ברכיבי ה-OU המקוננים. ניתן להקצות הרשאות ב- Active Directory ברמות הבאות:
אתר AD;
כל התחום;
-
יחידה ארגונית ספציפית (OU) ב- Active Directory;
אובייקט AD ספציפי.
שיטות עבודה מומלצות עבור בקרת הקצאה ב- Active Directory:
לא מומלץ להקצות (להקצות) הרשאות ישירות לחשבונות משתמשים ספציפיים. צור קבוצת אבטחה חדשה ב- AD במקום זאת, הוסף אליה משתמש והקצה הרשאות ב- OU עבור קבוצה זו. אם ברצונך להעניק את אותן הרשאות למשתמש אחר, באפשרותך פשוט להוסיף אותו לקבוצת אבטחה זו;
הימנע משימוש בהרשאות דחוי, מכיוון שהן עדיפות על אלה המותרות;
ביקורת תקופתית של ההרשאות שהוקצו בתחום (ניתן ליצור דוח עם רשימות ההרשאות הנוכחיות לכל OU באמצעות PowerShell);
אל תעניק לאף אחד הרשאות לנהל את ה-OU באמצעות חשבונות מנהל המערכת. אחרת, כל חבר צוות תמיכה יכול לאפס את סיסמת מנהל התחום. יש למקם את כל המשתמשים והקבוצות המורשים ב-OU נפרד שאינו כפוף לכללי הקצאה.
איפוס סיסמת נציג וביטול נעילה של הרשאות חשבון ב- AD
נניח שהמשימה שלך היא להעניק לקבוצת HelpDesk הרשאות לאיפוס סיסמאות ולביטול נעילה של חשבונות משתמשים בתחום. בוא ניצור קבוצת אבטחה חדשה ב- AD באמצעות PowerShell:
New-ADGroup "HelpDesk" -path 'OU=Groups,OU=Paris,OU=Fr,dc=a-d,DC=com' -GroupScope Globalהוסף משתמשים רצויים לקבוצה זו:
Add-AdGroupMember -Identity HelpDesk -Members rdroz, jdupontהפעל את יישום ה- Snap-in MMC של משתמשים ומחשבים של Active Directory (
dsa.msc
), לחץ באמצעות לחצן העכבר הימני על ה-OU עם המשתמשים (בדוגמה שלנו הוא 'OU=Users,OU=Paris,OU=Fr,dc=a-d,DC=com') ובחר בפריט התפריט Delegate Control.
בחר את הקבוצה שברצונך להעניק לה הרשאות ניהול.
בחר אחת מקבוצת ההרשאות המוגדרת מראש (הקצה את המשימות הנפוצות הבאות):
יצירה, מחיקה וניהול של חשבונות משתמשים;
אפס סיסמאות משתמש וכפה שינוי סיסמה בכניסה הבאה;
קרא את כל פרטי המשתמש;
יצירה, מחיקה וניהול של קבוצות;
לשנות את החברות בקבוצה;
-
ניהול קישורי מדיניות קבוצתית;
ליצור קבוצה תוצאתית של מדיניות (תכנון);
יצירת קבוצת מדיניות תוצאתית (רישום);
ליצור, למחוק ולנהל חשבונות inetOrgPerson;
אפס סיסמאות inetOrgPerson וכפה שינוי סיסמה בכניסה הבאה;
קרא את כל המידע של inetOrgPerson.
לחלופין, צור משימה מותאמת אישית להקצאה. אני בוחר באפשרות השנייה.
בחר את סוג אובייקטי AD שברצונך להעניק להם הרשאות ניהול. מאחר שברצוננו להעניק שליטה על חשבונות משתמשים, בחר את הפריט אובייקט משתמש. אם ברצונך להעניק הרשאות ליצירה או מחיקה של משתמשים ב-OU, בחר באפשרויות יצירה/מחיקה של אובייקטים שנבחרו בתיקייה זו. בדוגמה שלנו, אנחנו לא מעניקים פריבילגיות כאלה.
ברשימת ההרשאות, בחר את ההרשאות שברצונך להקצות. בדוגמה שלנו, נבחר את ההרשאות לביטול נעילה של חשבונות משתמשים (Read lockoutTime ו-Write lockoutTime) ולאיפוס סיסמה (איפוס סיסמה).
כדי שצוות צוות התמיכה יוכל לזהות את המקור של נעילות החשבון בתחום, עליך להעניק לו הרשאות לחפש ביומני האבטחה בבקרי התחום.
לחץ על הבא ואשר את הקצאת ההרשאות שנבחרו במסך האחרון.
כעת, תחת חשבון משתמש מקבוצת HelpDesk נסה לאפס סיסמה של המשתמש מ- OU היעד באמצעות PowerShell:
Set-ADAccountPassword gchaufourier -Reset -NewPassword (ConvertTo-SecureString -AsPlainText “P@ssdr0w1” -Force -Verbose) -PassThruהסיסמה אמורה להתאפס בהצלחה (אם היא תואמת למדיניות סיסמת התחום).
כעת נסה ליצור משתמש ב- OU זה באמצעות ה- cmdlet New-ADUser:
New-ADUser -Name gmicheaux -Path 'OU=Users,OU=Paris,OU=FR,DC=a-d,DC=com' -Enabled $trueשגיאת גישה נדחתה אמורה להופיע מכיוון שלא הקצית את הזכויות ליצירת חשבונות AD חדשים.
באפשרותך להשתמש ביומני אבטחה של בקר תחום כדי לבקר את הפעולות של משתמשים שהקצית להם הרשאות ניהול. לדוגמה, באפשרותך לעקוב אחר מי איפס סיסמת משתמש בתחום, מי יצר חשבון משתמש ב- AD או לעקוב אחר שינויים בקבוצות AD רגישות.
הקצאת הרשאות לצירוף מחשבים לתחום AD
כברירת מחדל, כל משתמש תחום יכול לצרף עד 10 מחשבים לתחום. בעת הוספת המחשבה -11, תופיע שגיאה:
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). לשם כך, הקצה את ההרשאות ליצירת אובייקטים מסוג אובייקטי מחשב. באשף הקצאת הפקדים, בחר צור אובייקטים שנבחרו בתיקיה זו.
בחר צור את כל אובייקטי הצאצא במקטע הרשאות.
אם ברצונך להקצות את הזכות להעביר אובייקטים בין יחידות ארגוניות ב- AD, עליך להעניק את ההרשאות הבאות: מחיקת אובייקטי משתמש, כתיבת שם מובחן, כתיבת שם (**), יצירת אובייקטי משתמש (או מחשב).
כיצד להציג ולהסיר הרשאות מוסמכות ב- Active Directory?
ניתן להקצות כל מספר של כללי הקצאה ל-OU ב-AD. באפשרותך לקבל רשימה של קבוצות וההרשאות שהוקצו להן במאפייני ה- OU במסוף ADUC. עבור אל הכרטיסיה אבטחה.
מידע זה מכיל רשימה של נושאי AD שהוענקו להם הרשאות עבור גורם מכיל זה. באפשרותך לראות את רשימת ההרשאות שהוענקו בכרטיסיה מתקדם. כפי שניתן לראות, קבוצת HelpDesk רשאית לאפס סיסמאות.
באפשרותך לבטל קבוצה ספציפית של הרשאות ניהול שהוקצו בעבר באמצעות הקצאה. אתר את שם הקבוצה שהקצית לה הרשאות ולחץ על הסר.
בנוסף, בכרטיסיה אבטחה -> מתקדם באפשרותך להקצות הרשאות מוקצות באופן ידני לקבוצות אבטחה שונות.
כיצד להקצות הרשאות ב- Active Directory באמצעות PowerShell?
באפשרותך לקבל רשימה של הרשאות המוקצות ל- OU או לשנות את ההרשאות הנוכחיות באמצעות PowerShell. ה
Get-ACLו
Set-ACLרכיבי cmdlet משמשים להצגה ושינוי של הרשאות ב- Active Directory (אותם רכיבי cmdlet של PowerShell משמשים לניהול הרשאות NTFS בקבצים ותיקיות).
קובץ ה- Script הפשוט הבא יפרט את כל ההרשאות הלא סטנדרטיות המוקצות ליחידה ארגונית ספציפית ב- AD:
# get the OU
$OUs = Get-ADOrganizationalUnit -Filter 'DistinguishedName -eq "OU=Users,OU=Paris,DC=a-d,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באפשרותך לקבל את דוח ההרשאות שהוקצו באמצעות cmdlet גרפי של Out-GridView:
$report| where {($_.IdentityReference -notlike "*BUILTIN*") -and ($_.IdentityReference -notlike "*NT AUTHORITY*") }| Out-GridViewלחלופין, יצא את רשימת ההרשאות לקובץ CSV לצורך ניתוח נוסף ב- Excel (באפשרותך לכתוב נתונים ישירות לקובץ Excel מתוך קובץ script של 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=a-d,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=a-d,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.










