Korzystanie z personifikacji z zabezpieczeniami transportu
Personifikacja to możliwość przejęcia tożsamości klienta przez aplikację serwera. Usługi często używają personifikacji podczas weryfikowania dostępu do zasobów. Aplikacja serwera działa przy użyciu konta usługi, ale gdy serwer akceptuje połączenie klienta, personifikuje klienta, aby sprawdzanie dostępu odbywało się przy użyciu poświadczeń klienta. Zabezpieczenia transportu to mechanizm zarówno przekazywania poświadczeń, jak i zabezpieczania komunikacji przy użyciu tych poświadczeń. W tym temacie opisano używanie zabezpieczeń transportu w programie Windows Communication Foundation (WCF) z funkcją personifikacji. Aby uzyskać więcej informacji na temat personifikacji przy użyciu zabezpieczeń komunikatów, zobacz Delegowanie i Personifikacja.
Pięć poziomów personifikacji
Zabezpieczenia transportu korzystają z pięciu poziomów personifikacji, zgodnie z opisem w poniższej tabeli.
Poziom personifikacji | Opis |
---|---|
None | Aplikacja serwera nie próbuje personifikować klienta. |
Anonimowe | Aplikacja serwera może przeprowadzać kontrole dostępu względem poświadczeń klienta, ale nie otrzymuje żadnych informacji o tożsamości klienta. Ten poziom personifikacji ma znaczenie tylko w przypadku komunikacji na maszynie, takiej jak nazwane potoki. Użycie Anonymous z połączeniem zdalnym promuje poziom personifikacji do identyfikowania. |
Określ | Aplikacja serwera zna tożsamość klienta i może przeprowadzić walidację dostępu względem poświadczeń klienta, ale nie może personifikować klienta. Zidentyfikuj jest domyślny poziom personifikacji używany z poświadczeniami SSPI w programie WCF, chyba że dostawca tokenu zapewnia inny poziom personifikacji. |
Personifikacja | Aplikacja serwera może uzyskiwać dostęp do zasobów na maszynie serwera jako klient oprócz przeprowadzania kontroli dostępu. Aplikacja serwera nie może uzyskać dostępu do zasobów na maszynach zdalnych przy użyciu tożsamości klienta, ponieważ personifikowany token nie ma poświadczeń sieciowych |
Delegat | Oprócz posiadania tych samych możliwości co Impersonate poziom personifikacji pełnomocnika umożliwia również aplikacji serwera dostęp do zasobów na maszynach zdalnych przy użyciu tożsamości klienta i przekazania tożsamości do innych aplikacji.Ważne Konto domeny serwera musi być oznaczone jako zaufane do delegowania na kontrolerze domeny, aby móc korzystać z tych dodatkowych funkcji. Tego poziomu personifikacji nie można używać z kontami domeny klienta oznaczonymi jako poufne. |
Poziomy najczęściej używane z zabezpieczeniami transportu to Identify
i Impersonate
. Poziomy None
i Anonymous
nie są zalecane do typowego użycia, a wiele transportu nie obsługuje używania tych poziomów z uwierzytelnianiem. Poziom Delegate
jest zaawansowaną funkcją, która powinna być używana z ostrożnością. Uprawnienia do delegowania poświadczeń powinny mieć tylko zaufane aplikacje serwera.
Użycie personifikacji na poziomach Impersonate
lub Delegate
wymaga, aby aplikacja serwera miała SeImpersonatePrivilege
uprawnienia. Aplikacja ma domyślnie to uprawnienie, jeśli jest uruchomione na koncie w grupie Administracja istrators lub na koncie z identyfikatorem SID usługi (usługa sieciowa, usługa lokalna lub system lokalny). Personifikacja nie wymaga wzajemnego uwierzytelniania klienta i serwera. Niektóre schematy uwierzytelniania obsługujące personifikację, takie jak NTLM, nie mogą być używane z uwierzytelnianiem wzajemnym.
Problemy specyficzne dla transportu związane z personifikacją
Wybór transportu w programie WCF wpływa na możliwe opcje personifikacji. W tej sekcji opisano problemy wpływające na standardowy protokół HTTP i nazwane transporty potoków w programie WCF. Transporty niestandardowe mają własne ograniczenia dotyczące obsługi personifikacji.
Nazwany transport rurowy
Następujące elementy są używane z nazwanym transportem potoku:
Nazwany transport rurowy jest przeznaczony tylko do użytku na komputerze lokalnym. Nazwany transport potoku w programie WCF jawnie nie zezwala na połączenia między maszynami.
Nazwanych potoków nie można używać z
Impersonate
poziomem personifikacji lubDelegate
. Nazwany potok nie może wymusić gwarancji na maszynie na tych poziomach personifikacji.
Aby uzyskać więcej informacji na temat nazwanych potoków, zobacz Wybieranie transportu.
HTTP Transport
Powiązania korzystające z transportu HTTP (WSHttpBinding i BasicHttpBinding) obsługują kilka schematów uwierzytelniania, jak wyjaśniono w artykule Understanding HTTP Authentication (Opis uwierzytelniania HTTP). Obsługiwany poziom personifikacji zależy od schematu uwierzytelniania. Następujące elementy są używane z transportem HTTP:
Schemat
Anonymous
uwierzytelniania ignoruje personifikację.Schemat
Basic
uwierzytelniania obsługuje tylkoDelegate
poziom. Wszystkie niższe poziomy personifikacji są uaktualniane.Schemat
Digest
uwierzytelniania obsługuje tylkoImpersonate
poziomy iDelegate
.Schemat
NTLM
uwierzytelniania, który można wybrać bezpośrednio lub przez negocjacje, obsługuje tylkoDelegate
poziom na komputerze lokalnym.Schemat uwierzytelniania Kerberos, który można wybrać tylko za pośrednictwem negocjacji, może być używany z dowolnym obsługiwanym poziomem personifikacji.
Aby uzyskać więcej informacji na temat transportu HTTP, zobacz Wybieranie transportu.