Dela via


Använda personifiering med transportsäkerhet

Personifiering är möjligheten för ett serverprogram att ta på sig klientens identitet. Det är vanligt att tjänster använder personifiering vid validering av åtkomst till resurser. Serverprogrammet körs med ett tjänstkonto, men när servern accepterar en klientanslutning personifierar den klienten så att åtkomstkontroller utförs med klientens autentiseringsuppgifter. Transportsäkerhet är en mekanism både för att skicka autentiseringsuppgifter och skydda kommunikationen med dessa autentiseringsuppgifter. Det här avsnittet beskriver hur du använder transportsäkerhet i Windows Communication Foundation (WCF) med personifieringsfunktionen. Mer information om personifiering med hjälp av meddelandesäkerhet finns i Delegering och personifiering.

Fem personifieringsnivåer

Transportsäkerhet använder fem personifieringsnivåer enligt beskrivningen i följande tabell.

Personifieringsnivå Description
None Serverprogrammet försöker inte personifiera klienten.
Anonym Serverprogrammet kan utföra åtkomstkontroller mot klientens autentiseringsuppgifter, men får ingen information om klientens identitet. Den här personifieringsnivån är endast meningsfull för kommunikation på datorn, till exempel namngivna pipes. Om du använder Anonymous med en fjärranslutning höjs personifieringsnivån till Identifiera.
Identifiera Serverprogrammet känner till klientens identitet och kan utföra åtkomstverifiering mot klientens autentiseringsuppgifter, men kan inte personifiera klienten. Identifiera är standard personifieringsnivån som används med SSPI-autentiseringsuppgifter i WCF om inte tokenprovidern tillhandahåller en annan personifieringsnivå.
Personifiera Serverprogrammet kan komma åt resurser på serverdatorn som klient förutom att utföra åtkomstkontroller. Serverprogrammet kan inte komma åt resurser på fjärrdatorer med hjälp av klientens identitet eftersom den personifierade token inte har autentiseringsuppgifter för nätverket
Delegera Förutom att ha samma funktioner som Impersonategör nivån Delegera personifiering även att serverprogrammet kan komma åt resurser på fjärrdatorer med hjälp av klientens identitet och skicka identiteten till andra program.

Viktigt Serverdomänkontot måste vara markerat som betrott för delegering på domänkontrollanten för att kunna använda dessa ytterligare funktioner. Den här nivån av personifiering kan inte användas med klientdomänkonton som markerats som känsliga.

De nivåer som oftast används med transportsäkerhet är Identify och Impersonate. Nivåerna None och Anonymous rekommenderas inte för typisk användning, och många transporter stöder inte användning av dessa nivåer med autentisering. Nivån Delegate är en kraftfull funktion som bör användas med försiktighet. Endast betrodda serverprogram bör ges behörighet att delegera autentiseringsuppgifter.

Användning av personifiering på Impersonate nivåerna eller Delegate kräver att serverprogrammet har behörigheten SeImpersonatePrivilege . Ett program har den här behörigheten som standard om det körs på ett konto i gruppen Administratörer eller på ett konto med ett tjänst-SID (nätverkstjänst, lokal tjänst eller lokalt system). Personifiering kräver inte ömsesidig autentisering av klienten och servern. Vissa autentiseringsscheman som stöder personifiering, till exempel NTLM, kan inte användas med ömsesidig autentisering.

Transportspecifika problem med personifiering

Valet av en transport i WCF påverkar de möjliga alternativen för personifiering. Det här avsnittet beskriver problem som påverkar standard-HTTP och namngivna rörtransporter i WCF. Anpassade transporter har sina egna begränsningar för stöd för personifiering.

Namngiven rörtransport

Följande objekt används med den namngivna rörtransporten:

  • Den namngivna rörtransporten är endast avsedd för användning på den lokala datorn. Den namngivna rörtransporten i WCF tillåter uttryckligen anslutningar mellan datorer.

  • Namngivna rör kan inte användas med Impersonate personifieringsnivån eller Delegate . Det namngivna röret kan inte framtvinga garantin på datorn på dessa personifieringsnivåer.

Mer information om namngivna rör finns i Välja en transport.

HTTP-transport

Bindningarna som använder HTTP-transporten (WSHttpBinding och BasicHttpBinding) stöder flera autentiseringsscheman, enligt beskrivningen i Förstå HTTP-autentisering. Den personifieringsnivå som stöds beror på autentiseringsschemat. Följande objekt används med HTTP-transporten:

  • Anonymous Autentiseringsschemat ignorerar personifiering.

  • Autentiseringsschemat Basic stöder endast Delegate nivån. Alla lägre personifieringsnivåer uppgraderas.

  • Autentiseringsschemat Digest stöder endast Impersonate nivåerna och Delegate .

  • Autentiseringsschemat NTLM , som kan väljas antingen direkt eller via förhandling, stöder endast Delegate nivån på den lokala datorn.

  • Kerberos-autentiseringsschemat, som bara kan väljas via förhandling, kan användas med valfri personifieringsnivå som stöds.

Mer information om HTTP-transport finns i Välja en transport.

Se även