se eller Fjern delegerede tilladelser til Active Directory

Active Directory (AD) delegation er en kritisk del af mange organisationers it-infrastruktur. Ved at uddelegere administration kan du kun tildele brugere eller grupper de tilladelser, de har brug for, uden at tilføje brugere til privilegerede grupper (f.eks. domæneadministratorer, kontooperatører). Den enkleste måde at udføre delegering er ved hjælp af guiden delegering af kontrol i Microsoft Management Console (MMC) Active Directory-brugere og computere snap-in.

relateret: administration af Active Directory med Startside

selvom guiden delegering af kontrol giver en nem måde at delegere tilladelser på, er der ingen tilsvarende guide til fjernelse af delegerede tilladelser. Nogen hos Microsoft må have bemærket denne mangel og oprettet et kommandolinjeprogram ved navn Dsrevoke.kan fjerne de tilladelsesposter, der er tilføjet af guiden delegering af kontrol.

dog Dsrevoke.programmet har to vigtige tekniske begrænsninger, som er dokumenteret i Microsoft-artiklen ” når du bruger kommandolinjeværktøjet dsrevoke til at rapportere tilladelser for alle organisationsenheder i et domæne baseret på Server 2003, returnerer værktøjet muligvis ikke alle adgangskontrolposter.”Disse begrænsninger er:

  • Dsrevoke.op til 1.000 Ou ‘ er i en enkelt søgning. Den foreslåede løsning for denne begrænsning er at starte programmets søgning i en mere dybt indlejret organisatorisk enhed (OU) for at reducere antallet af resultater.
  • Dsrevoke.hvis nogen Ou ‘ er indeholder et fremad skråstreg ( / ) tegn i deres navne. Der er ingen løsning på denne begrænsning andet end at omdøbe de fornærmende Ou ‘ er.

når du arbejder med dsrevoke.eks for nylig, jeg var i stand til at løse det første problem, men så løb jeg ind i det andet problem. Af organisatoriske årsager var omdøbning af ou ‘ erne for at fjerne skråstreg ikke en mulighed. Desuden er skråstregen et gyldigt tegn i et ou-navn og Dsrevoke.eks skal fungere, uanset om en OU indeholder en skråstreg i sit navn eller ej. Det var også tidskrævende at arbejde omkring 1.000 OU-grænsen i mit miljø.

på grund af disse problemer besluttede jeg at se, om der var nogen indbyggede alternativer til dsrevoke.eks. Startende i de seneste versioner af vinduer, Dsacls.programmet giver mulighed for at fjerne de tilladelser, der er tilføjet af guiden delegering af kontrol. Selvom det ikke mislykkes, hvis en OU indeholder en skråstreg i sit navn, Dsacls.vi kan ikke søge i undercontainere efter tilladelser som Dsrevoke.eks gør.

jeg besluttede først at skrive et simpelt script for at søge efter OUs og ringe til Dsacls.for at fjerne de delegerede tilladelser fra hver OU. Men da jeg tænkte på, hvordan jeg ville designe et sådant script, faldt det mig ind, at jeg også gerne vil se en liste over hvilke Ou ‘ er havde tilladelser delegeret til en bestemt bruger eller gruppe. Dsrevoke.dsacls og dsacls.vi kan producere en liste over tilladelser, men output er meget lang og teknisk. Jeg ville have noget enklere.

på grund af begrænsningerne i Dsrevoke.dsacls og dsacls.jeg besluttede at skrive et script for at få den funktionalitet, jeg ønskede. Resultatet er Fjern-DSACE. ps1. Før jeg diskuterer dette script, skal jeg dog give nogle baggrundsoplysninger om, hvad der sker, når du bruger delegationen af Kontrolguiden samt dækker nogle grundlæggende vindues sikkerhedskoncepter.

tilføjelse af delegerede tilladelser med guiden

som jeg tidligere nævnte, giver guiden delegering af kontrol en nem måde at delegere tilladelser på. Antag f.eks., at du vil have medlemmer af gruppen nulstilling af adgangskode til at kunne nulstille adgangskoder til brugere i OU ‘ En alle brugere i dit ANNONCEDOMÆNE. For at gøre dette skal du udføre disse trin:

  1. Åbn Active Directory-brugere og Computerkonsollen.
  2. Højreklik på OU ‘ En alle brugere, og vælg delegeret kontrol, som vist i Figur 1. Klik på knappen Næste for at gå videre forbi guidens velkomstside.

Figur 1: Start af delegationen af Kontrolguiden

  1. klik på knappen Tilføj på siden Brugere eller grupper i guiden.
  2. i dialogboksen Vælg brugere, computere eller grupper skal du indtaste gruppens navn (nulstilling af adgangskode), klikke på knappen Kontroller navne for at sikre, at gruppens navn er korrekt, og klikke på OK, som vist i figur 2.
figur 2: indtastning af gruppens navn
figur 2: indtastning af gruppens navn
  1. når du har sørget for, at gruppens navn er angivet på siden Brugere eller grupper, skal du klikke på Næste, som vist i figur 3.
figur 3: Sørg for, at gruppens navn er angivet
figur 3: Sørg for, at gruppens navn er angivet
  1. på siden opgaver, der skal delegeres, skal du vælge Nulstil brugeradgangskoder og tvinge adgangskodeændring ved næste logon og klikke på Næste, som vist i figur 4.
figur 4: Valg af opgaver, der skal delegeres
figur 4: Valg af opgaver, der skal delegeres
  1. Bekræft oplysningerne på den sidste side i guiden, og klik på Udfør.

når du klikker på knappen Udfør, tilføjer guiden delegering af kontrol de ønskede tilladelser til OU ‘ en alle brugere. Du kan se virkningerne af delegationen ved at højreklikke på OU ‘ en alle brugere, vælge Egenskaber og vælge fanen Sikkerhed. (Hvis fanen Sikkerhed ikke er synlig, skal du aktivere indstillingen Avancerede funktioner i menuen Vis på Active Directory-brugere og Computerkonsollen.) For en detaljeret visning kan du klikke på knappen Avanceret. Figur 5 viser dialogboksen Avancerede sikkerhedsindstillinger, der vises.

figur 5: gennemgang af DACL for alle brugere OU
figur 5: gennemgang af DACL for alle brugere OU

ACLs, Esser og Trustees—Åh min!

for at forstå de oplysninger, der gives i dialogboksen Avancerede sikkerhedsindstillinger, skal du vide om følgende sikkerhedskoncepter: adgangskontrolliste (ACL), adgangskontrolindgang (ACE), administrator og arv. Du skal også forstå disse begreber for at bruge Remove-dsace. ps1.

ACL. Der er to slags ACL ‘er: diskretionære ACL’ er (Dacl ‘er) og System ACL’ er (SACL ‘ er). En DACL identificerer de konti, der er tilladt eller nægtet adgang til et objekt. En SACL beskriver, hvordan en administrator ønsker at logge forsøg på at få adgang til et objekt (dvs.revision).

ACE. En ACL er sammensat af esser. Hvert es identificerer en administrator og angiver administratorens adgang (Tillad, Afvis eller revision) for objektet. Guiden delegering af kontrol tilføjer esser til en ANNONCECONTAINERS DACL. Figur 5 viser DACL for alle brugere OU. I denne figur er udtrykket tilladelsesindtastning synonymt med ACE.

Administrator. En administrator er den enhed (en bruger, sikkerhedsgruppe eller logonsession), som et es gælder for. Hvert es gælder for en enkelt administrator. I figur 5 er udtrykket hovedstol synonymt med administrator. Figur 5 viser, at der er to esser tildelt gruppen til nulstilling af adgangskode. Med andre ord er gruppen til nulstilling af adgangskode administrator (rektor) for disse to esser.

arv. Et es kan anvendes direkte på et objekt, eller det kan arves fra ressourcens overordnede objekt. I figur 5 arves de to esser for OU ‘ En alle brugere, der indeholder gruppen til nulstilling af adgangskode som administrator, ikke fra den overordnede container (dvs.kolonnen arvet fra Læser Ingen), fordi guiden delegering af kontrol tilføjede dem direkte til DACL. Figur 6 viser DACL for den regnskabsmæssige OU. Den regnskabsmæssige OU ‘ s DACL indeholder to esser til nulstilling af adgangskode gruppe, men disse esser er arvet fra alle brugere OU (dvs.den nedarvede fra kolonne læser OU=alle brugere, DC=fabrikam,DC=local).

figur 6: gennemgang af Dacl for regnskab OU
figur 6: gennemgang af Dacl for regnskab OU

introduktion Fjern-Dsace. ps1

jeg skrev Fjern-dsace.ps1 (forkortelse for fjern directory service ACEs) for at nå følgende mål:

  • Find Ou ‘ er, der indeholder ikke-arvelige esser, der indeholder en administrator.
  • Recurse til sub-Ou ‘ er, hvis det ønskes.
  • Fjern ikke-nedarvede esser, der indeholder en administrator.
  • Fremstil kortfattet output.

scriptets syntaks er som følger:

Remove-DSACE path 

parameteren-rapport eller-Fjern bestemmer, om scriptet vil liste eller fjerne ikke-nedarvede Esser. Hvis du angiver-rapport, finder scriptet ikke-nedarvede esser, der indeholder trustees, men det fjerner dem ikke. Hvis du angiver-Fjern, fjerner scriptet de ikke-arvede Esser. Det er meget vigtigt at forstå, at scriptet fjerner alle ikke-arvede esser for administratoren, ikke kun Esser tilføjet af delegationen af Kontrolguiden. Dette skyldes, at der ikke er nogen måde at bestemme, hvordan de ikke-arvelige Esser blev tilføjet.

parametrene-rapport og-fjern er valgfri, men scriptet antager parameteren-rapport som standard. Scriptet vil kaste en fejl, hvis du angiver begge parametre på samme tid.

du bruger parameteren-Path til at angive et eller flere distinguished names (DNs) for AD Ou ‘ er. Parameternavnet-Path er valgfrit og accepterer input fra pipeline. Selvom du kan angive flere DNs, kan du ikke bruge jokertegn.

parameteren-Trustee navngiver den administrator, der skal findes i esserne. Scriptet undersøger hver OU ‘ s DACL for ikke-arvelige esser, der indeholder den navngivne administrator. Du kan angive flere trustees ved hjælp af en kommasepareret liste eller et array, men du kan ikke bruge jokertegn. Du kan angive administratornavne ved hjælp af et af de navneformater, der er angivet i tabel 1.

Format Eksempel
Tabel 1: Navneformater til parameteren-Trustee
vinduer NT 4.0 navngivningsformat (NT4) FABRIKAM \ KenDyer
objektets DN CN=Ken Dyer, CN=brugere, DC=fabrikam, DC=com
objektets kanoniske navn fabrikam.com/Users/Ken Dyer
objektets bruger hovednavn (UPN)

du inkluderer parameteren-Recurse, hvis du vil søge efter Ou ‘ er under den angivne OU. Hvis du vil oprette forbindelse til en bestemt domænecontroller (DC), kan du angive serverens navn med parameteren
-servernavn. Både parametrene-Recurse og-ServerName er valgfri.

scriptet understøtter alternative legitimationsoplysninger. Parameteren-Credential bruger et PSCredential-objekt, der indeholder det brugernavn og den adgangskode, scriptet skal bruge til at oprette forbindelse til domænet.

scriptet understøtter også parameteren-Bekræft. Parameteren-Bekræft er kun meningsfuld i kombination med parameteren-Fjern. Parameteren-Confirm er som standard aktiveret, medmindre du deaktiverer den ved at angive-Confirm:$FALSE eller ved at indstille variablen $ConfirmPreference til ingen. Du bør kun deaktivere parameteren-Bekræft, når du er helt sikker på, at du fjerner de korrekte Esser.

scriptet producerer outputobjekter, der indeholder de egenskaber, der er anført i tabel 2.

ejendom beskrivelse
tabel 2: Output objekt Egenskaber for fjern-DSACE.ps1
sti OU ‘s DN
Administrator administratorens navn i domænenavn format
Esser antallet af ikke-nedarvede esser i OU’ s ACL
resultat * ordet “fjernet” eller en fejlmeddelelse
*Resultategenskaben findes kun, når du bruger parameteren-Fjern.

scriptet inkluderer kun Ou ‘ er med ikke-arvede esser, der indeholder en administrator. Nedarvede esser for en administrator er ikke inkluderet i output. Figur 7 viser to eksempler. Den første kommando i Figur 7 producerer ingen output, fordi DACL for den regnskabsmæssige OU ikke indeholder nogen ikke-arvelige esser for gruppen til nulstilling af adgangskode. (Den regnskabsmæssige OU har to esser for gruppen til nulstilling af adgangskode, men disse esser er arvet fra OU ‘ En alle brugere, som vist i figur 6.) Den anden kommando i Figur 7 producerer output. Der er to ikke-nedarvede esser til gruppen nulstilling af adgangskode i ou ‘ En alle brugere (som det ses i figur 5).

Figur 7: sammenligning af Output fra to kommandoer
Figur 7: Sammenligning af Output fra to kommandoer

virkelige verden eksempel

lad os se på, hvordan du kan bruge Remove-dsace.ps1 i den virkelige verden. Antag, at en administrator i fabrikam.lokalt domæne havde brugt guiden delegering af kontrol til at delegere tilladelser til Sekretærpersonalegruppen i OU ‘En alle brugere og nogle af ou’ erne under den, men han kan ikke huske hvilke Ou ‘ er. Du skal fjerne disse delegerede tilladelser, så du kan delegere tilladelserne til andre grupper.

først skal du se en liste over de Ou ‘ er, der har ikke-arvelige esser, der indeholder Sekretærpersonalegruppen. For at gøre det kan du bruge kommandoen:

Remove-DSACE -Report ` -Path "OU=All Users,DC=fabrikam,DC=local" ` -Trustee "FABRIKAM\Secretarial_Staff" ` -Recurse | Format-List

denne kommando og dens output er vist i figur 8.

figur 8: liste over Ou 'er, der har ikke-nedarvede esser, der indeholder Sekretærpersonalegruppen
figur 8: liste over Ou’ er, der har ikke-nedarvede esser, der indeholder Sekretærpersonalegruppen

fra dette output kan du se, at der er tre Ou ‘ er, der har ikke-nedarvede esser, der indeholder Sekretærpersonalegruppen. Når du har bekræftet, at du kan fjerne disse esser, kan du erstatte parameteren-rapport med parameteren-Fjern og gentage kommandoen, som vist i figur 9. Som jeg nævnte før, hvis Sekretærpersonalegruppen har fået tildelt andre tilladelser uden for guiden delegering af kontrol, fjernes disse også.

figur 9: fjernelse af OU ' er, der har ikke-arvelige esser, der indeholder Sekretærpersonalegruppen
figur 9: Fjernelse af OU ‘ er, der har ikke-arvelige esser, der indeholder Sekretærpersonalegruppen

Tag kontrol over ANNONCEDELEGERING

guiden delegering af kontrol er et meget nyttigt værktøj, men der er ingen nem måde at hurtigt se eller vende dens virkninger på. Selvom du kan bruge dsrevoke.dsacls og dsacls.for at udføre disse opgaver har disse værktøjer nogle begrænsninger. Hvis du bruger Remove-dsace.ps1 scriptet i stedet, har du bedre kontrol over delegerede tilladelser i AD. Du kan hente dette script ved at klikke på knappen Hent koden nær toppen af siden.

relaterede videoer fra Brian Desmond (kun VIP-adgang):
Session 1: Mastering af Active Directory-tilladelser Delegation
Session 2: Mastering af Active Directory-sikkerhedstilladelser Delegation

Leave a Reply