Autenticación integrada de Windows

por Mike Wasson

La autenticación integrada de Windows permite a los usuarios iniciar sesión con sus credenciales de Windows mediante Kerberos o NTLM. El cliente envía credenciales en el encabezado Autorización. La autenticación de Windows es más adecuada para un entorno de intranet. Para obtener más información, vea Autenticación de Windows.

Ventajas Inconvenientes
Integrado en IIS. No se recomienda para las aplicaciones de Internet.
No envía las credenciales de usuario en la solicitud. Requiere compatibilidad con Kerberos o NTLM en el cliente.
Si el equipo cliente pertenece al dominio (por ejemplo, aplicación de intranet), el usuario no necesita escribir credenciales. El cliente debe estar en el dominio de Active Directory.

Nota:

Si la aplicación se hospeda en Azure y tiene un dominio de Active Directory local, considere la posibilidad de federar el AD local con Azure Active Directory. De este modo, los usuarios pueden iniciar sesión con sus credenciales locales, pero Azure AD realiza la autenticación. Para más información, consulte Autenticación de Azure.

Para crear una aplicación que use la autenticación integrada de Windows, seleccione la plantilla "Aplicación de intranet" en el Asistente para proyectos de MVC 4. Esta plantilla de proyecto coloca la siguiente configuración en el archivo Web.config:

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

En el lado cliente, la autenticación integrada de Windows funciona con cualquier explorador que admita el esquema de autenticación Negotiate, que incluye la mayoría de los exploradores principales. Para las aplicaciones cliente de .NET, la clase HttpClient admite la autenticación de Windows:

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

HttpClient client = new HttpClient(handler);

La autenticación de Windows es vulnerable a ataques de falsificación de solicitudes entre sitios (CSRF). Consulte Evitar ataques de falsificación de solicitudes entre sitios (CSRF).