Dela via


COM+ Säkerhetsbegrepp

COM+ innehåller flera säkerhetsfunktioner som du kan använda för att skydda dina COM+-program, allt från tjänster som du konfigurerar administrativt till API:er som du kan anropa i kod.

När det är möjligt är det bättre att använda automatisk säkerhet för COM+-program, till exempel deklarativ rollbaserad säkerhet och autentisering, i stället för att konfigurera säkerhet inom komponenter. Med automatisk säkerhet blir det enklare att skriva och underhålla komponenter, enklare att utforma säkerhet i ett helt program och, eftersom det är konfigurerat administrativt, enklare att ändra ett programs säkerhetsprincip. Dessa automatiska säkerhetstjänster gör det möjligt för dig att lämna alla säkerhetsrelaterade funktioner borta från dina komponenter. När du kan aktivera tjänsterna och konfigurera dem på rätt sätt, kommer COM+ att hantera detaljerna för att upprätthålla den säkerhetspolicy du anger.

Men när de automatiska säkerhetstjänsterna i COM+ inte gör exakt vad du behöver göra kan du utöka dem och bygga vidare på den automatiska säkerhetsplattform som tillhandahålls av COM+. I de fall där du väljer att inte använda automatisk säkerhet eller där du vill använda den, men behöver bygga vidare på den för att passa programmets säkerhetskrav, har du följande alternativ för att konfigurera säkerhet programmatiskt:

  • Programmatisk rollbaserad säkerhet – till exempel rollkontroll, som är tillgänglig när rollbaserad säkerhet är aktiverad för ditt program.
  • Personifiering – för när du vill använda en klients identitet för att komma åt en skyddad resurs.
  • Granskningsfunktioner baserade på kontextinformation för säkerhetsanrop – även tillgängliga när rollbaserad säkerhet är aktiverad.

Vilka mekanismer du använder för att skydda ett visst program beror på programmets särskilda krav. Vissa säkerhetsval kan påverka hur du skriver komponenter, och vissa kan påverka programmets design avsevärt. Innan du fattar några beslut om hur du implementerar en säkerhetsstrategi för ett program bör du överväga dess säkerhetskrav i samband med dess övergripande design – prestandakrav, dataåtkomst, fysisk design – och välja den lämpligaste kombinationen av säkerhetsfunktioner. Mer information om hur du implementerar programmatisk säkerhet finns i Programmatic Component Security.

Korta beskrivningar av COM+ säkerhetskategorier, funktioner och problem finns här, med länkar till ämnen i det här avsnittet som ger en detaljerad diskussion om vart och ett av de viktiga områdena.

Not

Även om de inte beskrivs i det här avsnittet har köade komponenter också särskilda problem som rör vilka säkerhetsfunktioner som är tillgängliga för dem. Mer information finns i Säkerhet för köade komponenter och Utveckla köade komponenter.

 

Role-Based Säkerhet

Rollbaserad säkerhet är den centrala funktionen för COM+-programsäkerhet. Med hjälp av roller kan du skapa en auktoriseringsprincip för ett program administrativt och välja (ned till metodnivå om det behövs) vilka användare som kan komma åt vilka resurser. Dessutom tillhandahåller roller ett ramverk för att framtvinga säkerhetskontroll i kod om ditt program kräver finare detaljerad åtkomstkontroll.

Rollbaserad säkerhet bygger på en allmän mekanism som gör att du kan hämta säkerhetsinformation om alla överordnade anropare i anropskedjan till din komponent. Den här funktionen är särskilt användbar om du vill utföra detaljerad granskning och loggning. En beskrivning av granskningsfunktionerna som tillhandahålls av COM+ finns i Accessing Security Call Context Information.

En beskrivning av rollbaserade säkerhets- och administrationsproblem som du bör tänka på när du använder den finns i Role-Based Säkerhetsadministration.

Klientautentisering

Innan du kan auktorisera klienter för att kunna komma åt resurser måste du vara säker på att de är de som de säger att de är. För att aktivera den här identitetsverifieringen tillhandahåller COM+ autentiseringstjänster. Även om dessa tjänster faktiskt tillhandahålls på en mer grundläggande nivå av COM och Microsoft Windows, kan du med ett COM+-program helt enkelt aktivera autentiseringstjänsten administrativt så att den fungerar under täcket, transparent för programmet. En beskrivning av autentiseringstjänster finns i Klientautentisering.

Klientpersonifiering och delegering

I vissa fall måste programmet fungera för en klients räkning med hjälp av klientens identitet, till exempel vid åtkomst till en databas som ska autentisera den ursprungliga klienten. Detta kräver att ditt program personifierar klienten. COM+ tillhandahåller faciliteter för att möjliggöra olika nivåer av personifiering. Identitetsförfalskning konfigureras administrativt, men du måste också ge stöd för detta med applikationens komponenters kod. En beskrivning av identitetsförfalskning och problem kopplade till dess användning finns i Klientidentitetsförfalskning och delegering.

Använda principen för begränsning av programvara i COM+

En princip för begränsning av programvara ger ett sätt att köra kod som inte är betrodd och därför potentiellt skadlig i en begränsad miljö så att den inte kan missbruka användarens behörigheter. Det gör den genom att tilldela förtroendenivåer till filer som användaren kan köra. Vissa systemfiler kan till exempel vara fullständigt betrodda och ges obegränsad åtkomst till användarens behörigheter, medan en fil som laddades ned från Internet kan vara helt obetrodd och därför endast tillåtas köras i en begränsad miljö där det inte är tillåtet att använda säkerhetskänsliga användarbehörigheter.

Den systemomfattande principen för begränsning av programvara styrs via det administrativa verktyget Lokal säkerhetsprincip, som gör det möjligt för administratörer att konfigurera förtroendenivåer för enskilda filer. Alla COM+-serverprogram körs dock i filen dllhost.exe. Därför tillhandahåller COM+ ett sätt att ange principen för begränsning av programvara för varje serverprogram så att de inte behöver vara beroende av begränsningsprincipen för den dllhost.exe filen. En diskussion om hur du använder principen för begränsning av programvara i COM+ finns i Using the Software Restriction Policy in COM+.

Säkerhet för biblioteksprogram

Biblioteksprogram har särskilda säkerhetsöverväganden. Eftersom dessa program körs i klientens process påverkas de av den säkerhet som tillämpas av värdprocessen samtidigt som de inte kan kontrollera säkerheten på processnivå. En beskrivning av faktorer att tänka på för biblioteksprogram finns i Library Application Security.

Programsäkerhet på flera nivåer

COM+-program är vanligtvis mellannivåprogram. Det innebär att de flyttar information mellan klienter och serverdelsresurser, till exempel databaser. Svåra val kan vara att avgöra var säkerheten ska tillämpas och i vilken grad. Säkerhet innebär i sig prestandavägningar. Några av de allvarligaste av dessa inträffar när du måste framtvinga säkerhetskontroll på både datanivån och mellannivån. En diskussion om problem att ta hänsyn till finns i Programsäkerhet på flera nivåer.

klientautentisering

klientpersonifiering och delegering

COM+ Säkerhetsuppgifter

Programsäkerhet för bibliotek

programsäkerhet på flera nivåer

Programmatisk Komponentsäkerhet

Role-Based Säkerhetsadministration

Använda principen för begränsning av programvara i COM+