Imitatie gebruiken met transportbeveiliging
Imitatie is de mogelijkheid van een servertoepassing om de identiteit van de client op te nemen. Het is gebruikelijk dat services imitatie gebruiken bij het valideren van de toegang tot resources. De servertoepassing wordt uitgevoerd met behulp van een serviceaccount, maar wanneer de server een clientverbinding accepteert, wordt de client geïmitteerd zodat toegangscontroles worden uitgevoerd met behulp van de referenties van de client. Transportbeveiliging is een mechanisme voor het doorgeven van referenties en het beveiligen van communicatie met behulp van deze referenties. In dit onderwerp wordt beschreven hoe u transportbeveiliging gebruikt in WCF (Windows Communication Foundation) met de imitatiefunctie. Zie Delegatie en imitatie voor meer informatie over imitatie met behulp van berichtbeveiliging.
Vijf imitatieniveaus
Transportbeveiliging maakt gebruik van vijf niveaus van imitatie, zoals beschreven in de volgende tabel.
Imitatieniveau | Beschrijving |
---|---|
Geen | De servertoepassing probeert de client niet te imiteren. |
Anoniem | De servertoepassing kan toegangscontroles uitvoeren op basis van de referenties van de client, maar ontvangt geen informatie over de identiteit van de client. Dit imitatieniveau is alleen zinvol voor communicatie op de computer, zoals benoemde pijpen. Het gebruik Anonymous met een externe verbinding bevordert het imitatieniveau om te identificeren. |
Identificeren | De servertoepassing kent de identiteit van de client en kan toegangsvalidatie uitvoeren op basis van de referenties van de client, maar kan de client niet imiteren. Identificeren is het standaard imitatieniveau dat wordt gebruikt met SSPI-referenties in WCF, tenzij de tokenprovider een ander imitatieniveau biedt. |
Imiteren | De servertoepassing heeft toegang tot resources op de servercomputer als client, naast het uitvoeren van toegangscontroles. De servertoepassing heeft geen toegang tot resources op externe computers met behulp van de identiteit van de client, omdat het geïmiteerde token geen netwerkreferenties heeft |
Gedelegeerde | Naast dezelfde mogelijkheden als Impersonate , stelt het niveau gemachtigde imitatie ook de servertoepassing in staat om toegang te krijgen tot resources op externe computers met behulp van de identiteit van de client en om de identiteit door te geven aan andere toepassingen.Belangrijk Het serverdomeinaccount moet worden gemarkeerd als vertrouwd voor delegatie op de domeincontroller om deze extra functies te kunnen gebruiken. Dit imitatieniveau kan niet worden gebruikt met clientdomeinaccounts die als gevoelig zijn gemarkeerd. |
De niveaus die het meest worden gebruikt met transportbeveiliging zijn Identify
en Impersonate
. De niveaus None
en Anonymous
worden niet aanbevolen voor typisch gebruik, en veel transporten ondersteunen het gebruik van deze niveaus met verificatie niet. Het Delegate
niveau is een krachtige functie die met zorg moet worden gebruikt. Alleen vertrouwde servertoepassingen moeten de machtiging krijgen om referenties te delegeren.
Als u imitatie op de Impersonate
niveaus gebruikt, Delegate
moet de servertoepassing over de SeImpersonatePrivilege
bevoegdheid beschikken. Een toepassing heeft deze bevoegdheid standaard als deze wordt uitgevoerd op een account in de groep Beheer istrators of op een account met een service-SID (netwerkservice, lokale service of lokaal systeem). Imitatie vereist geen wederzijdse verificatie van de client en server. Sommige verificatieschema's die imitatie ondersteunen, zoals NTLM, kunnen niet worden gebruikt met wederzijdse verificatie.
Transportspecifieke problemen met imitatie
De keuze van een transport in WCF is van invloed op de mogelijke keuzes voor imitatie. In deze sectie worden problemen beschreven die van invloed zijn op de standaard HTTP- en benoemde pijptransporten in WCF. Aangepaste transporten hebben hun eigen beperkingen voor ondersteuning voor imitatie.
Benoemd pijptransport
De volgende items worden gebruikt met het benoemde pijptransport:
Het benoemde pijptransport is alleen bedoeld voor gebruik op de lokale machine. Het benoemde pijptransport in WCF staat expliciet verbindingen tussen machines toe.
Benoemde pijpen kunnen niet worden gebruikt met het
Impersonate
ofDelegate
imitatieniveau. De benoemde pijp kan de garantie op de computer niet afdwingen op deze imitatieniveaus.
Zie Een transport kiezen voor meer informatie over benoemde pijpen.
HTTP-transport
De bindingen die gebruikmaken van het HTTP-transport (WSHttpBinding en BasicHttpBinding) ondersteunen verschillende verificatieschema's, zoals wordt uitgelegd in Http-verificatie. Het ondersteunde imitatieniveau is afhankelijk van het verificatieschema. De volgende items worden gebruikt met het HTTP-transport:
Het
Anonymous
verificatieschema negeert imitatie.Het
Basic
verificatieschema ondersteunt alleen hetDelegate
niveau. Alle lagere imitatieniveaus worden bijgewerkt.Het
Digest
verificatieschema ondersteunt alleen deImpersonate
enDelegate
niveaus.Het
NTLM
verificatieschema, dat rechtstreeks of via onderhandeling kan worden geselecteerd, ondersteunt alleen hetDelegate
niveau op de lokale computer.Het Kerberos-verificatieschema, dat alleen kan worden geselecteerd via onderhandeling, kan worden gebruikt met elk ondersteund imitatieniveau.
Zie Een transport kiezen voor meer informatie over het HTTP-transport.