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 Impersonate gö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 ellerDelegate
. 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 endastDelegate
nivån. Alla lägre personifieringsnivåer uppgraderas.Autentiseringsschemat
Digest
stöder endastImpersonate
nivåerna ochDelegate
.Autentiseringsschemat
NTLM
, som kan väljas antingen direkt eller via förhandling, stöder endastDelegate
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.