Úrovně zosobnění
Pokud zosobnění proběhne úspěšně, znamená to, že klient souhlasil s tím, aby server byl klientem do určité míry. Různé stupně zosobnění se nazývají úrovně zosobněnía označují, kolik autority se serveru udělí při zosobnění klienta.
V současné době existují čtyři úrovně zosobnění: anonymní, identifikovat, zosobnita delegáta. Následující seznam stručně popisuje jednotlivé úrovně zosobnění:
-
anonymní (RPC_C_IMP_LEVEL_ANONYMOUS)
-
Klient je pro server anonymní. Proces serveru může zosobnit klienta, ale token zosobnění neobsahuje žádné informace o klientovi. Tato úroveň je podporována pouze přes místní přenos komunikace mezi procesy. Všechny ostatní přenosy bezobslužně podporují tuto úroveň k identifikaci.
-
identifikace (RPC_C_IMP_LEVEL_IDENTIFY)
-
Výchozí úroveň systému. Server může získat identitu klienta a server může zosobnit klienta, aby mohl provádět kontroly seznamu ACL.
-
zosobnění (RPC_C_IMP_LEVEL_IMPERSONATE)
-
Server může zosobnit kontext zabezpečení klienta při jednání jménem klienta. Server má přístup k místním prostředkům jako klient. Pokud je server místní, může přistupovat k síťovým prostředkům jako klient. Pokud je server vzdálený, může přistupovat pouze k prostředkům, které jsou ve stejném počítači jako server.
-
delegát (RPC_C_IMP_LEVEL_DELEGATE)
-
Nejvýkonnější úroveň zosobnění. Při výběru této úrovně může server (ať už místní nebo vzdálený) zosobnit kontext zabezpečení klienta při jednání jménem klienta. Během zosobnění je možné přihlašovací údaje klienta (místní i síťové) předat libovolnému počtu počítačů.
Aby zosobnění fungovalo na úrovni delegáta, musí být splněny následující požadavky:
- Klient musí nastavit úroveň zosobnění na RPC_C_IMP_LEVEL_DELEGATE.
- Klientský účet nesmí být označený jako "Účet je citlivý a nelze ho delegovat" ve službě Active Directory.
- Účet serveru musí být ve službě Active Directory označen atributem Důvěryhodné pro delegování.
- Počítače hostující klienta, server a všechny podřízené servery musí být spuštěné v doméně.
Když zvolíte úroveň zosobnění, klient řekne serveru, jak daleko může jít při zosobnění klienta. Klient nastaví úroveň zosobnění na proxy serveru, který používá ke komunikaci se serverem.
Nastavení úrovně zosobnění
Úroveň zosobnění můžete nastavit dvěma způsoby:
- Klient může nastavit proces pro celou organizaci prostřednictvím volání CoInitializeSecurity.
- Klient může nastavit zabezpečení na úrovni proxy na rozhraní vzdáleného objektu prostřednictvím volání IClientSecurity::SetBlanket (nebo pomocné funkce CoSetProxyBlanket).
Úroveň zosobnění nastavíte předáním příslušné hodnoty RPC_C_IMP_LEVEL_xxx do CoInitializeSecurity nebo CoSetProxyBlanket prostřednictvím parametru dwImpLevel.
Různé ověřovací služby podporují zosobnění na úrovni delegáta v různých rozsahech. NTLMSSP například podporuje zosobnění na úrovni zosobnění napříč vlákny a mezi procesy, ale ne mezi počítači. Na druhou stranu protokol Kerberos podporuje zosobnění na úrovni delegáta napříč hranicemi počítače, zatímco Schannel nepodporuje zosobnění na úrovni delegáta. Pokud máte proxy server na úrovni zosobnění a chcete nastavit úroveň zosobnění na delegování, měli byste zavolat SetBlanket pomocí výchozích konstant pro každý parametr s výjimkou úrovně zosobnění. COM zvolí protokol NTLM místně a protokol Kerberos vzdáleně (když bude fungovat protokol Kerberos).
Související témata