Dela via


Skydda meddelanden med hjälp av meddelandesäkerhet

I det här avsnittet beskrivs WCF-meddelandesäkerhet när du använder NetMsmqBinding.

Kommentar

Innan du läser igenom det här avsnittet rekommenderar vi att du läser Säkerhetsbegrepp.

Följande bild innehåller en konceptuell modell för köad kommunikation med hjälp av WCF. Den här bilden och terminologin används för att förklara

transportsäkerhetsbegrepp.

Queued Application Diagram

När du skickar köade meddelanden med WCF bifogas WCF-meddelandet som en brödtext i MEDDELANDET (MSMQ). Även om transportsäkerhet skyddar hela MSMQ-meddelandet, skyddar meddelandesäkerheten (eller SOAP) endast brödtexten i MSMQ-meddelandet.

Det viktigaste begreppet meddelandesäkerhet är att klienten skyddar meddelandet för det mottagande programmet (tjänsten), till skillnad från transportsäkerhet där klienten skyddar meddelandet för målkön. Därför spelar MSMQ ingen roll när du skyddar WCF-meddelandet med hjälp av meddelandesäkerhet.

WCF-meddelandesäkerhet lägger till säkerhetshuvuden i WCF-meddelandet som integreras med befintliga säkerhetsinfrastrukturer, till exempel ett certifikat eller Kerberos-protokollet.

Typ av meddelandeautentiseringsuppgifter

Med hjälp av meddelandesäkerhet kan tjänsten och klienten visa autentiseringsuppgifter för att autentisera varandra. Du kan välja meddelandesäkerhet genom att ange Security läget till Message eller Both (dvs. använda både transportsäkerhet och meddelandesäkerhet).

Tjänsten kan använda egenskapen Current för att inspektera de autentiseringsuppgifter som används för att autentisera klienten. Detta kan också användas för ytterligare auktoriseringskontroller som tjänsten väljer att implementera.

I det här avsnittet beskrivs de olika typerna av autentiseringsuppgifter och hur du använder dem med köer.

Certifikat

Certifikatautentiseringstypen använder ett X.509-certifikat för att identifiera tjänsten och klienten.

I ett typiskt scenario utfärdas klienten och tjänsten ett giltigt certifikat av en betrodd certifikatutfärdare. Sedan upprättas anslutningen, klienten autentiserar tjänstens giltighet med hjälp av tjänstens certifikat för att avgöra om den kan lita på tjänsten. På samma sätt använder tjänsten klientens certifikat för att verifiera klientförtroendet.

Med tanke på att köerna är frånkopplade kanske klienten och tjänsten inte är online samtidigt. Därför måste klienten och tjänsten byta ut certifikat out-of-band. I synnerhet måste klienten, genom att inneha tjänstens certifikat (som kan kopplas till en certifikatutfärdare) i sitt betrodda arkiv, lita på att den kommunicerar med rätt tjänst. För att autentisera klienten använder tjänsten X.509-certifikatet som är kopplat till meddelandet för att matcha det med certifikatet i dess arkiv för att verifiera klientens äkthet. Återigen måste certifikatet vara kopplat till en certifikatutfärdare.

På en dator som kör Windows lagras certifikat i flera typer av butiker. Mer information om de olika arkiven finns i Certifikatarkiv.

Windows

Windows-meddelandeautentiseringstypen använder Kerberos-protokollet.

Kerberos-protokollet är en säkerhetsmekanism som autentiserar användare på en domän och gör det möjligt för autentiserade användare att upprätta säkra kontexter med andra entiteter i en domän.

Problemet med att använda Kerberos-protokollet för köad kommunikation är att biljetterna som innehåller klientidentiteten som Nyckeldistributionscenter (KDC) distribuerar är relativt kortvariga. En livslängd är associerad med Kerberos-biljetten som anger biljettens giltighet. Med tanke på långa svarstider kan du därför inte vara säker på att token fortfarande är giltig för den tjänst som autentiserar klienten.

Observera att när du använder den här typen av autentiseringsuppgifter måste tjänsten köras under SERVICE-kontot.

Kerberos-protokollet används som standard när du väljer meddelandeautentiseringsuppgifter.

Användarnamnslösenord

Med den här egenskapen kan klienten autentisera till servern med ett användarnamnslösenord i meddelandets säkerhetsrubrik.

IssuedToken

Klienten kan använda tjänsten för säkerhetstoken för att utfärda en token som sedan kan kopplas till meddelandet för tjänsten för att autentisera klienten.

Använda transport- och meddelandesäkerhet

När du använder både transportsäkerhet och meddelandesäkerhet måste certifikatet som används för att skydda meddelandet både på transport- och SOAP-meddelandenivån vara detsamma.

Se även