Active Directory delegerade behörigheter (Visa/ta bort)

för att helt låsa upp det här avsnittet måste du logga in

Active Directory (AD) delegering är en viktig del av många organisationers IT-infrastruktur. Genom att delegera administration kan du bara ge användare eller grupper de behörigheter de behöver utan att lägga till användare i privilegierade grupper (t.ex. domänadministratörer, Kontooperatörer). Det enklaste sättet att utföra delegering är att använda guiden delegering av kontroll i snapin-modulen Microsoft Management Console (MMC) Active Directory-användare och datorer.

även om guiden delegering av kontroll ger ett enkelt sätt att delegera behörigheter finns det ingen motsvarande guide för att ta bort delegerade behörigheter. Någon hos Microsoft måste ha märkt denna brist och skapat ett kommandoradsprogram med namnet Dsrevoke.exe som kan ta bort behörighetsposter som lagts till av guiden delegering av kontroll.

emellertid Dsrevoke.exe-programmet har två viktiga tekniska begränsningar, som dokumenteras i Microsoft-artikeln ”När du använder kommandoradsverktyget dsrevoke för att rapportera behörigheter för alla organisationsenheter i en Windows Server 2003-baserad domän, kanske verktyget inte returnerar alla åtkomstkontrollposter.”Dessa begränsningar är:

  • Dsrevoke.exe kan bara hitta upp till 1000 OUs i en enda sökning. Den föreslagna lösningen för denna begränsning är att starta programmets sökning i en djupare kapslad organisationsenhet (OU) för att minska antalet resultat.
  • Dsrevoke.exe misslyckas om några ou: er innehåller ett snedstreck (/) tecken i deras namn. Det finns ingen lösning för denna begränsning annat än att byta namn på den kränkande OUs.

av organisatoriska skäl är det vanligtvis inte ett alternativ att byta namn på OUs för att ta bort slash-tecknet. Dessutom är snedstrecket ett giltigt tecken i ett OU-namn och Dsrevoke.exe ska fungera oavsett om en OU innehåller ett snedstreck i sitt namn eller inte. Att arbeta runt 1000 ou-gränsen i min miljö var också tidskrävande.

börjar i de senaste versionerna av Windows, Dsacls.exe-programmet ger ett sätt att ta bort de behörigheter som lagts till av delegeringen av Kontrollguiden. Även om det inte misslyckas om en OU innehåller ett snedstreck i sitt namn, Dsacls.exe kan inte söka underbehållare för behörigheter som Dsrevoke.exe gör.

Dsrevoke.exe och Dsacl.exe kan producera en lista med behörigheter, men utgången är mycket lång och teknisk.

vi måste ha lite bakgrundsinformation om vad som händer när vi använder delegering av Kontrollguiden samt täcka några grundläggande Windows-säkerhetskoncept.

Varför Delegera?

Tänk dig att du är chef för ett stort företag med flera avdelningar: ekonomi, HR, försäljning, högsta ledningen.

om varje användare som glömde sitt lösenord var tvungen att ringa IT-helpdesk, skulle du bli översvämd med samtal.

istället kan du delegera behörigheter till chefen för varje avdelning så att han eller hon kan återställa sitt eget lags lösenord.

en annan klassisk användningsfall för delegering är möjligheten för personalen att skicka e-post som varandra, antingen en delad brevlåda, eller en PA skicka e-post på uppdrag av hans eller hennes chef.

ge alla domänadministratör?

du kanske har tänkt, låt oss ge varje avdelningschef Domänadministratörsbehörigheter, då kan de återställa lösenorden när det behövs.

även om detta är tekniskt sant, skulle de då kunna göra allt du kan göra, inklusive åtkomst till användardata.

så var noga med att ge Domänadministratörsroll till icke-IT-användare för att sänka administrationsuppgifterna: detta tillvägagångssätt kan leda till flera problem.

för att förstå informationen som tillhandahålls i dialogrutan Avancerade säkerhetsinställningar måste du veta om följande Windows-säkerhetskoncept: access control list (ACL), access control entry (ACE), förvaltare och arv. Du måste också förstå dessa begrepp för att använda Remove-DSACE. ps1.

ACL: det finns två typer av ACL: diskretionära ACL (DACL) och system ACL (SACL). En DACL identifierar de konton som tillåts eller nekas åtkomst till ett objekt. En SACL beskriver hur en administratör vill logga försök att komma åt ett objekt (dvs. granskning).

ACE: en ACL består av ess. Varje ACE identifierar en förvaltare och anger förvaltarens åtkomst (Tillåt, neka eller granska) för objektet. Delegering av Styrguiden lägger ess till en annons containers DACL. Den föregående figuren visar DACL för alla användare OU. I denna figur är termen tillståndsinmatning synonymt med ACE.

förvaltare: en förvaltare är entiteten (en användare, säkerhetsgrupp eller inloggningssession) som ett ACE gäller. Varje ess gäller för en enda förvaltare. I Figur 5 är termen rektor synonymt med förvaltare. Figur 5 visar att det finns två ess som tilldelats gruppen för återställning av lösenord. Med andra ord är Lösenordsåterställningsgruppen förvaltaren (rektor) för dessa två ess.

arv: Ett ess kan appliceras direkt på ett objekt, eller det kan ärvas från resursens överordnade objekt. I föregående figur är de två esserna för alla användare OU som innehåller Lösenordsåterställningsgruppen som förvaltare inte ärvda från moderbehållaren (dvs den ärvda från kolumnen läser ingen) eftersom delegeringen av Kontrollguiden lade dem direkt till DACL.

lägga till delegerade behörigheter med guiden

guiden delegering av kontroll ger ett enkelt sätt att delegera behörigheter. Anta till exempel att du vill att medlemmar i gruppen för återställning av lösenord ska kunna återställa lösenord för användare i OU för alla användare i din ANNONSDOMÄN. För att göra detta måste du utföra dessa steg:

öppna Active Directory-användare och datorer konsol och högerklicka sedan på alla användare OU (eller vad OU) och välj delegera kontroll, som visas i Figur 1. Klicka på knappen Nästa för att gå förbi guidens välkomstsida.

 Active Directory delegerade behörigheter (Visa / ta bort)

klicka på knappen Lägg till på sidan användare eller grupper i guiden.

i dialogrutan Välj användare, datorer eller grupper anger du gruppens namn (återställning av lösenord), klickar på knappen Kontrollera namn för att se till att gruppens namn är korrekt och klickar på OK, som visas i följande figur:

Active Directory delegerade behörigheter (Visa / ta bort)

när du har kontrollerat att gruppens namn är listat på sidan Användare eller grupper klickar du på nästa, som visas i följande figur:

 Active Directory delegerade behörigheter (Visa / ta bort)

på sidan uppgifter att delegera väljer du Återställ användarlösenord och tvinga lösenordsändring vid nästa inloggning och klicka på nästa, som visas i följande figur:

Active Directory delegerade behörigheter (Visa / ta bort)

när du klickar på knappen Slutför lägger guiden delegering av kontroll till de begärda behörigheterna för alla användare. Du kan visa effekterna av delegeringen genom att högerklicka på OU för alla användare, välja Egenskaper och välja fliken Säkerhet. (Om fliken Säkerhet inte är synlig aktiverar du alternativet Avancerade funktioner på menyn Visa i konsolen Active Directory-användare och datorer.)

för en detaljerad vy kan du klicka på knappen Avancerat. Följande bild visar dialogrutan Avancerade säkerhetsinställningar som visas.

 Active Directory delegerade behörigheter (Visa / ta bort)

kontrollera behörighet (med PowerShell)

nu när vi har upptäckt delegation kanske du undrar om det finns några delegationer som du inte känner till, antingen från tidigare anställda eller skadliga administratörer.

vi har satt ihop ett kort PowerShell-skript som söker efter varje delegerbar objekttyp och listar de två vanliga behörighetsdelegationerna, Återställ lösenord och skicka-som (från Exchange).

här är ett prov som körs från en domän:

 Active Directory delegerade behörigheter (Visa / ta bort)

och här skriptkoden:

###### Search common delegation targets$filter = "(|(objectClass=domain)(objectClass=organizationalUnit)(objectClass=group)(sAMAccountType=805306368)(objectCategory=Computer))" ###### Search just OUs and Groups#$filter = "(|(objectClass=organizationalUnit)(objectClass=group))"###### More filters can be found here: http://www.ldapexplorer.com/en/manual/109050000-famous-filters.htm###### Connect to DOMAINCONTROLLER using LDAP path, with USERNAME and PASSWORD#$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP"), "USERNAME", "PASSWORD") ###### Connect to DOMAINCONTROLLER using LDAP path$bSearch = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DOMAINCONTROLLER/LDAP") $dSearch = New-Object System.DirectoryServices.DirectorySearcher($bSearch)$dSearch.SearchRoot = $bSearch$dSearch.PageSize = 1000$dSearch.Filter = $filter #comment out to look at all object types$dSearch.SearchScope = "Subtree"####### List of extended permissions available here: https://technet.microsoft.com/en-us/library/ff405676.aspx$extPerms = '00299570-246d-11d0-a768-00aa006e0529', 'ab721a54-1e2f-11d0-9819-00aa0040529b', '0'$results = @()foreach ($objResult in $dSearch.FindAll()){ $obj = $objResult.GetDirectoryEntry() Write-Host "Searching... " $obj.distinguishedName $permissions = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,) $results += $permissions | Where-Object { $_.AccessControlType -eq 'Allow' -and ($_.ObjectType -in $extPerms) -and $_.IdentityReference -notin ('NT AUTHORITY\SELF', 'NT AUTHORITY\SYSTEM', 'S-1-5-32-548') } | Select-Object ` @{n='Object'; e={$obj.distinguishedName}}, @{n='Account'; e={$_.IdentityReference}}, @{n='Permission'; e={$_.ActiveDirectoryRights}}}$results | Out-GridView

för att använda detta skript på din egen domän:

  • öppna Active Directory-användare och datorer och navigera till domänen (eller organisationsenheten) du undersöker.
  • högerklicka på den och välj Egenskaper.
  • på fliken Attributredigerare letar du efter egenskapen distinguishedName.
  • markera den och tryck på Visa och kopiera sedan LDAP-sökvägen. Du kommer att behöva detta senare.
  • redigera rad 6 ($bSearch = …), ersätter DOMAINCONTROLLER med namnet på en av domänens DCs.
  • redigera rad 6, ersätta LDAP med Sökvägen du kopierade tidigare.
  • spara skriptet och tryck på Kör.
  • låt scriptet söka igenom din Active Directory; framsteg rapporteras i konsolen och när det är klart får du en popup som beskriver objekt som har behörigheter delegerade till dem.

Lämna ett svar

Din e-postadress kommer inte publiceras.