Udostępnij za pośrednictwem


Zintegrowane uwierzytelnianie systemu Windows

Autor: Mike Wasson

Zintegrowane uwierzytelnianie systemu Windows umożliwia użytkownikom logowanie się przy użyciu poświadczeń systemu Windows przy użyciu protokołu Kerberos lub NTLM. Klient wysyła poświadczenia w nagłówku Autoryzacja. Uwierzytelnianie systemu Windows jest najodpowiedniejsze do użytku w środowisku sieci intranet. Aby uzyskać więcej informacji, zobacz Uwierzytelnianie systemu Windows.

Zalety Wady
Wbudowane w usługi IIS. Niezalecane w przypadku aplikacji internetowych.
Nie wysyła poświadczeń użytkownika w żądaniu. Wymaga obsługi protokołu Kerberos lub NTLM w kliencie.
Jeśli komputer kliencki należy do domeny (na przykład aplikacji intranetowej), użytkownik nie musi wprowadzać poświadczeń. Klient musi znajdować się w domenie usługi Active Directory.

Uwaga

Jeśli aplikacja jest hostowana na platformie Azure i masz lokalną domenę usługi Active Directory, rozważ sfederowanie lokalnej usługi AD z usługą Azure Active Directory. Dzięki temu użytkownicy mogą logować się przy użyciu poświadczeń lokalnych, ale uwierzytelnianie jest wykonywane przez Azure AD. Aby uzyskać więcej informacji, zobacz Azure Authentication (Uwierzytelnianie platformy Azure).

Aby utworzyć aplikację korzystającą ze zintegrowanego uwierzytelniania systemu Windows, wybierz szablon "Aplikacja intranetowa" w kreatorze projektu MVC 4. Ten szablon projektu umieszcza następujące ustawienie w pliku Web.config:

<system.web>
    <authentication mode="Windows" />
</system.web>

Po stronie klienta zintegrowane uwierzytelnianie systemu Windows współpracuje z dowolną przeglądarką, która obsługuje schemat uwierzytelniania Negocjuj , który obejmuje większość głównych przeglądarek. W przypadku aplikacji klienckich platformy .NET klasa HttpClient obsługuje uwierzytelnianie systemu Windows:

HttpClientHandler handler = new HttpClientHandler()
{
    UseDefaultCredentials = true
};

HttpClient client = new HttpClient(handler);

Uwierzytelnianie systemu Windows jest podatne na ataki fałszowania żądań między lokacjami (CSRF). Zobacz Zapobieganie atakom fałszerowania żądań między witrynami (CSRF).