service - Windows: indstilling af sikkerhedsattributter på procesniveau-granularitet

Indlæg af Hanne Mølgaard Plasc

Problem



Baggrund: Jeg har en Windows-tjeneste, der fungerer i baggrunden (selvfølgelig) og bruger
  et hjælpeprogram til at udføre en bestemt interaktiv opgave og sende data tilbage
  til tjenesten over et navngivet rør. Hjælpeprogrammet kører, når tjenesten
  ser passende ud og lever kun i et par sekunder.


Problemet begynder i Vista, hvor programmet ikke kunne åbne det nævnte rør
for skriveadgang længere (se Windows Service Hardening). [2]


Jeg har til hensigt at løse problemet ved at oprette det nævnte rør med sikkerhedsattributter
sådan at give adgang til den bruger, der er logget ind under den kontekst
programmet er startet, mens et spørgsmål stod op til mig:
Kan jeg tillade adgang til det navngivne rør til kun processen ved hjælp af dens (eller dens tråd)
håndtere?


Eller at sætte anderledes: Kan Windows '(Vista/7/senere) sikkerhedsmekanisme gå ned til
procesniveau granularitet?


Jeg er en nybegynder i dette område, og docs om sikkerhed giver mig ret hovedpine, så enhver oplysning er velkommen.


Tak på forhånd.

Bedste reference


Du kan ikke sikre et objekt via proces-id (fordi processer ikke er sikkerhedsansvarlige), men du kan bruge GetNamedPipeClientProcessId, efter at forbindelsen er etableret, og fejler alle anmodninger, hvis procesidentifikationen ikke er en, du kan lide.