Udostępnij za pośrednictwem


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 Impersonatepoziom 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 lub Delegate . 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 tylko Delegate poziom. Wszystkie niższe poziomy personifikacji są uaktualniane.

  • Schemat Digest uwierzytelniania obsługuje tylko Impersonate poziomy i Delegate .

  • Schemat NTLM uwierzytelniania, który można wybrać bezpośrednio lub przez negocjacje, obsługuje tylko Delegate 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.

Zobacz też