Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
WcF-beveiliging (Windows Communication Foundation) is onderverdeeld in drie belangrijke functionele gebieden: overdrachtsbeveiliging, toegangsbeheer en controle. Overdrachtbeveiliging biedt integriteit, vertrouwelijkheid en verificatie. Overdrachtbeveiliging wordt geleverd door een van de volgende: transportbeveiliging, berichtbeveiliging of TransportWithMessageCredential.
Zie Beveiligingsoverzicht voor een overzicht van WCF-berichtbeveiliging. Zie Autorisatie en controle voor meer informatie over de andere twee onderdelen van WCF-beveiliging.
Overdracht van beveiligingsscenario's
Veelvoorkomende scenario's waarin WCF-overdrachtbeveiliging wordt gebruikt, zijn onder andere:
Veilige overdracht met Behulp van Windows. Een WCF-client en -service worden geïmplementeerd in een Windows-domein (of een Windows-forest). De berichten bevatten persoonlijke gegevens, dus vereisten omvatten wederzijdse verificatie van de client en service, berichtintegriteit en vertrouwelijkheid van berichten. Daarnaast is bewijs vereist dat een bepaalde transactie heeft plaatsgevonden, bijvoorbeeld dat de ontvanger van het bericht de handtekeninggegevens moet vastleggen.
Veilige overdracht met behulp van
UserNameen HTTPS. Een WCF-client en -service moeten worden ontwikkeld om via internet te kunnen werken. De klantreferenties worden gevalideerd tegen een database met gebruikersnaam-/wachtwoordparen. De service wordt geïmplementeerd op een HTTPS-adres met behulp van een vertrouwd SSL-certificaat (Secure Sockets Layer). Omdat de berichten via internet worden verzonden, moeten de client en service wederzijds worden geverifieerd en moeten de vertrouwelijkheid en integriteit van de berichten behouden blijven tijdens de overdracht.Veilige overdracht met behulp van certificaten. Een WCF-client en -service moeten worden ontwikkeld om via het openbare internet te kunnen werken. De client en service hebben beide certificaten die kunnen worden gebruikt om de berichten te beveiligen. De client en service gebruiken internet om met elkaar te communiceren en om hoogwaardige transacties uit te voeren waarvoor berichtintegriteit, vertrouwelijkheid en wederzijdse verificatie is vereist.
Integriteit, vertrouwelijkheid en verificatie
Drie functies( integriteit, vertrouwelijkheid en verificatie) worden samen overdrachtsbeveiliging genoemd. Overdrachtbeveiliging biedt de functies die helpen de bedreigingen voor een gedistribueerde toepassing te beperken. In de volgende tabel worden kort de drie functies beschreven waaruit overdrachtsbeveiliging bestaat.
| Functie | Beschrijving |
|---|---|
| Integriteit | Integriteit is de zekerheid dat gegevens volledig en nauwkeurig zijn, vooral nadat ze van het ene punt naar het andere zijn gekruist en mogelijk door veel actoren zijn gelezen. Integriteit moet worden gehandhaafd om manipulatie met de gegevens te voorkomen en wordt meestal bereikt door digitale ondertekening van een bericht. |
| Vertrouwelijkheid | Vertrouwelijkheid is de zekerheid dat een bericht niet is gelezen door iemand anders dan de beoogde lezer. Een creditcardnummer moet bijvoorbeeld vertrouwelijk worden gehouden wanneer het via internet wordt verzonden. Vertrouwelijkheid wordt vaak geboden door de versleuteling van gegevens met behulp van een schema voor een openbare sleutel/persoonlijke sleutel. |
| Authenticatie | Verificatie is de verificatie van een geclaimde identiteit. Wanneer u bijvoorbeeld een bankrekening gebruikt, is het noodzakelijk dat alleen de werkelijke eigenaar van het account geld mag opnemen. Verificatie kan op verschillende manieren worden verstrekt. Een veelgebruikte methode is het gebruikers-/wachtwoordsysteem. Een tweede is het gebruik van een X.509-certificaat dat wordt geleverd door een derde partij. |
Beveiligingsmodi
WCF heeft verschillende modi voor overdrachtbeveiliging, die worden beschreven in de volgende tabel.
| Wijze | Beschrijving |
|---|---|
| Geen | Er wordt geen beveiliging geboden op de transportlaag of op de berichtlaag. Voor geen van de vooraf gedefinieerde bindingen wordt deze modus standaard gebruikt, behalve het <basicHttpBinding-element> of, bij het gebruik van code, de BasicHttpBinding klasse. |
| Vervoer | Maakt gebruik van een beveiligd transport, zoals HTTPS voor integriteit, vertrouwelijkheid en wederzijdse verificatie. |
| Bericht | Gebruikt SOAP-berichtbeveiliging voor integriteit, vertrouwelijkheid en wederzijdse verificatie. SOAP-berichten worden beveiligd volgens de WS-Security normen. |
| Gemengde modus | Maakt gebruik van transportbeveiliging voor integriteit, vertrouwelijkheid en serververificatie. Maakt gebruik van berichtbeveiliging (WS-Security en andere standaarden) voor clientverificatie. (Deze opsomming voor deze modus is TransportWithMessageCredential.) |
| Beide | Hiermee worden beveiliging en verificatie op beide niveaus uitgevoerd. Deze modus is alleen beschikbaar in het <element netMsmqBinding> . |
Referenties en overdrachtsbeveiliging
Een referentie is gegevens die worden gepresenteerd om een geclaimde identiteit of bevoegdheden vast te stellen. Het presenteren van een referentie houdt in dat je zowel de gegevens als het bewijs van het bezit van de gegevens presenteert. WCF ondersteunt verschillende referentietypen op zowel het transport- als berichtbeveiligingsniveau. U kunt een type referentie opgeven voor een WCF-binding.
In veel landen of regio's is een rijbewijs een voorbeeld van een referentie. Een licentie bevat gegevens die de identiteit en mogelijkheden van een gebruiker vertegenwoordigen. Het bevat bewijs van bezit in de vorm van het beeld van de bezitsbezitgever. De licentie wordt uitgegeven door een vertrouwde instantie, meestal een overheidslicentieafdeling. De licentie is verzegeld en kan een hologram bevatten, waarin wordt aangegeven dat er niet met is geknoeid of vervalst.
Denk bijvoorbeeld aan twee typen referenties die worden ondersteund in WCF: gebruikersnaam en (X.509)-certificaatreferenties.
Voor de gebruikersnaamreferentie vertegenwoordigt de gebruikersnaam de geclaimde identiteit en het wachtwoord geeft het bewijs van bezit weer. De vertrouwde instantie in dit geval is het systeem dat de gebruikersnaam en het wachtwoord valideert.
In de certificaatreferentie kunnen de onderwerpnaam, alternatieve onderwerpnaam of specifieke velden in het certificaat worden gebruikt om de geclaimde identiteit en/of mogelijkheden weer te geven. Bewijs van het bezit van de gegevens in het bewijsdocument wordt geleverd door de bijbehorende private sleutel te gebruiken om een handtekening te genereren.
Zie voor meer informatie over de beveiliging van overdracht voor programmeren en het specificeren van inloggegevens Bindingen en beveiliging en Beveiligingsgedrag.
Transportclient-credentialtypen
In de volgende tabel ziet u de mogelijke waarden die worden gebruikt bij het maken van een toepassing die gebruikmaakt van overdrachtsbeveiliging. U kunt deze waarden gebruiken in code- of bindingsinstellingen.
| Configuratie | Beschrijving |
|---|---|
| Geen | Hiermee geeft u op dat de client geen referenties hoeft te presenteren. Dit vertaalt zich naar een anonieme client. |
| Eenvoudig | Specificeert basisverificatie. Zie RFC2617 http-verificatie: basis- en digestverificatie voor meer informatie. |
| Samenvatting | Hiermee geeft u digest-verificatie op. Zie RFC2617 http-verificatie: basis- en digestverificatie voor meer informatie. |
| Ntlm | Specificeert Windows-verificatie door SSPI-onderhandeling op een Windows-domein. SSPI-onderhandeling resulteert in het gebruik van het Kerberos-protocol of NT LanMan (NTLM). |
| Ramen | Geeft aan dat Windows-verificatie wordt gebruikt met behulp van SSPI op een Windows-domein. SSPI kiest uit het Kerberos-protocol of NTLM als verificatieservice. SSPI probeert eerst kerberos-protocol; als dat mislukt, wordt NTLM gebruikt. |
| Certificaat | Voert clientverificatie uit met behulp van een certificaat, meestal X.509. |
Typen berichtclientreferenties
In de volgende tabel ziet u de mogelijke waarden die worden gebruikt bij het maken van een toepassing die gebruikmaakt van berichtbeveiliging. U kunt deze waarden gebruiken in code- of bindingsinstellingen.
| Configuratie | Beschrijving |
|---|---|
| Geen | Hiermee kan de service communiceren met anonieme clients. |
| Ramen | Hiermee kunnen SOAP-berichtenuitwisselingen plaatsvinden onder de geverifieerde context van een Windows-referentie. Maakt gebruik van het SSPI-onderhandelingsmechanisme om te kiezen uit het Kerberos-protocol of NTLM als verificatieservice. |
| Gebruikersnaam | Hiermee kan de service vereisen dat de client wordt geverifieerd met een gebruikersnaamreferentie. Houd er rekening mee dat WCF geen cryptografische bewerkingen met de gebruikersnaam toestaat, zoals het genereren van een handtekening of het versleutelen van gegevens. WCF vereist daarom dat het transport wordt beveiligd bij het gebruik van gebruikersnamen. |
| Certificaat | Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een certificaat. |
| CardSpace | Hiermee kan de service vereisen dat de client wordt geverifieerd met behulp van een CardSpace. |
Programmeerkwalificaties
Voor elk van de clientreferentietypen kunt u met het WCF-programmeermodel de referentiewaarden en referentievalidators opgeven met behulp van servicegedrag en kanaalgedrag.
WCF beveiliging heeft twee typen referenties: referentiegedrag van de service en referentiegedrag van het kanaal. Het gedrag van referenties in WCF geeft de werkelijke gegevens op, namelijk referenties die worden gebruikt om te voldoen aan de beveiligingsvereisten die worden uitgedrukt via bindingen. In WCF is een clientklasse het runtime-onderdeel dat wordt geconverteerd tussen aanroepen van bewerkingen en berichten. Alle clients erven van de klasse ClientBase<TChannel>. Met ClientCredentials de eigenschap op de basisklasse kunt u verschillende waarden van clientreferenties opgeven.
In WCF worden servicegedragkenmerken toegepast op de klasse die een servicecontract (interface) implementeert om de service programmatisch te beheren. Met de ServiceCredentials klasse kunt u certificaten opgeven voor servicereferenties en clientvalidatie-instellingen voor verschillende clientreferentietypen.
Onderhandelingsmodel voor berichtbeveiliging
Met de berichtbeveiligingsmodus kunt u overdrachtsbeveiliging uitvoeren, zodat de service-credentials worden geconfigureerd op de client buiten het reguliere communicatiekanaal. Als u bijvoorbeeld een certificaat gebruikt dat is opgeslagen in het Windows-certificaatarchief, moet u een hulpprogramma zoals een MMC-module (Microsoft Management Console) gebruiken.
Met de berichtbeveiligingsmodus kunt u ook overdrachtsbeveiliging uitvoeren, zodat de servicereferentie wordt uitgewisseld met de client als onderdeel van een eerste onderhandeling. Als u onderhandeling wilt inschakelen, stelt u de NegotiateServiceCredential eigenschap in op true.