En este artículo paso a paso se describe cómo configurar
Servicios de Internet Information Server (IIS) y requerir Active Directory para
la delegación de aplicaciones ASP.NET. La delegación es el paso siguiente
después de la suplantación. La delegación posibilita la capacidad de tener
acceso remoto a los recursos en nombre del cliente en lugar de sólo disponer
de acceso local. En este artículo se describen los pasos que debe seguir para
delegar una aplicación conectada con ASP.NET.
Requisitos para la delegación
La delegación se basa en la autenticación de Windows integrada
para el acceso a los recursos. No hay límite en el número de equipos en los
que puede delegar una cuenta, sólo debe configurar correctamente cada uno de
ellos. El método de autenticación de Windows integrada sólo funciona si se
cumplen las dos condiciones siguientes:
- Configura la red para usar el protocolo de autenticación
de Kerberos y requiere Active Directory.
- Puede configurar los equipos y las cuentas de la red como
de confianza para la delegación.
Si estas condiciones no se cumplen, no puede usar la
autenticación de Windows integrada para tener acceso a los datos en un recurso
remoto porque esta autenticación sólo le concede acceso al servidor IIS y no
a los recursos adicionales configurados para la autenticación de Windows a los
que el servidor IIS tiene acceso de forma remota.
La autenticación
de Kerberos autentica al servidor y al cliente, mientras que la autenticación
mediante desafío y respuesta de Windows NT sólo autentica al cliente. Los
sistemas operativos anteriores a Windows 2000 no admiten la autenticación de
Kerberos. Kerberos requiere el uso de IIS 5.0 o una versión posterior. Por lo
tanto, debe ejecutar Windows 2000 o un sistema operativo más reciente en todos
los equipos donde use la delegación de Kerberos. Además, debe poner todos los
equipos en el mismo bosque de Active Directory. Sólo Microsoft Internet
Explorer 5.0 y las versiones posteriores admiten Kerberos.
Para obtener más
información al respecto, haga clic en el número de artículo siguiente para
verlo en Microsoft Knowledge Base:
217098
(http://support.microsoft.com/kb/217098/
)
Introducción básica al protocolo de autenticación de usuarios Kerberos en Windows 2000
Configurar Internet Explorer para la delegación
Si usa Internet Explorer 5.0 o versiones posteriores, puede
configurar Internet Explorer para la delegación de IIS y ASP.NET. Para ello,
siga estos pasos:
- Inicie Internet Explorer. En la barra de menú, haga clic
en Herramientas y, después, en Opciones de
Internet.
- Haga clic en la ficha Avanzadas y active
la casilla de verificación Habilitar autenticación integrada de
Windows (requiere reinicio).
Esta opción permite que
Internet Explorer responda a un desafío de negociación y, después, realice
la autenticación de Kerberos. Dado que esta característica requiere Windows
2000 o una versión posterior, cuando Internet Explorer no se ejecuta en estos
sistemas operativos, no responde a un desafío de negociación. De forma
predeterminada, Internet Explorer usa la autenticación de NTLM, incluso si
activa la casilla de verificación Habilitar autenticación integrada
de Windows (requiere reinicio).
Advertencia: pueden producirse problemas graves si modifica incorrectamente
el Registro mediante el Editor del Registro o con cualquier otro método. Estos
problemas pueden requerir que reinstale el sistema operativo. Microsoft no
puede garantizar la solución de esos problemas. Modifique el Registro bajo su
responsabilidad.
Nota: En los equipos que ejecutan Microsoft Windows y versiones
posteriores, los administradores pueden establecer el valor de la entrada
REG_DWORD de EnableNegotiate en 1 en la siguiente clave del Registro para activar la
autenticación de Windows integrada: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
.- A continuación se enumeran algunas situaciones en las que
Kerberos puede fallar en el cliente de Internet Explorer.
Para obtener más información acerca de problemas
relacionados con la autenticación de Kerberos, haga clic en los números de
artículo siguientes para verlos en Microsoft Knowledge Base:
321728
(http://support.microsoft.com/kb/321728/
)
Internet Explorer no es compatible con la autenticación Kerberos con servidores proxy
325608
(http://support.microsoft.com/kb/325608/
)
No funciona la delegación de la autenticación mediante Kerberos en las arquitecturas con carga equilibrada
248350
(http://support.microsoft.com/kb/248350/
)
La autenticación Kerberos no se actualiza desde IIS 4.0 a IIS 5.0
264921
(http://support.microsoft.com/kb/264921/
)
Cómo autentica IIS a los clientes del explorador
Configurar IIS para la delegación
Para activar la autenticación de Windows integrada y la
suplantación en una aplicación conectada con ASP.NET, tiene que configurar
Servicios de Internet Information Server (IIS). Para configurar la
autenticación de Windows en IIS, realice los pasos siguientes:
- Haga clic en Inicio y en
Ejecutar, escriba inetmgr y haga clic
en Aceptar.
- Expanda (equipo local) y, después,
Sitio Web.
- Haga clic con el botón secundario del mouse (ratón) en Sitio Web predeterminado y, a
continuación, haga clic en Propiedades.
- Haga clic en la ficha Seguridad de
directorios y, después, haga clic en Modificar, en
Control de autenticación y acceso anónimo.
- Active la casilla de verificación Autenticación
de Windows integrada y, a continuación, desactive las casillas de
verificación Autenticación anónimaAutenticación
de texto implícita para servidores del dominio Windows y
Autenticación básica.
Nota: si se habilita el acceso anónimo, IIS siempre intentará
autenticar con ella primero, incluso si hay habilitados otros métodos de
autenticación.
Si se seleccionan la autenticación básica, la
autenticación anónima y la autenticación de Windows integrada a la vez, la
autenticación de Windows integrada tiene prioridad sobre las
demás.
Configurar ASP.NET para la delegación
- Abra un archivo Web.config en un editor de texto, como
puede ser el Bloc de notas. El archivo Web.config se encuentra en la carpeta
Web Application.
- En el archivo Web.config, busque la información siguiente
en la sección <configuration>:<Code><allow users="*"
/><deny users="?" /></Code>
- En la sección <System.web>, compruebe que el
elemento de autenticación está establecido en Windows de la
forma siguiente:<Code><authentication mode="Windows"
/></Code>
- En la sección <System.web>, agregue el siguiente
elemento para la suplantación:<Code><identity impersonate="true"
/></Code>
-
Para obtener más información al respecto, haga clic en los números de
artículo siguientes para verlos en Microsoft Knowledge Base:
306158
(http://support.microsoft.com/kb/306158/
)
Cómo implementar la representación en una aplicación ASP.NET
317012
(http://support.microsoft.com/kb/317012/
)
Identidad de proceso y solicitud en ASP.NET
315736
(http://support.microsoft.com/kb/315736/
)
Cómo asegurar una aplicación ASP.NET utilizando la seguridad de Windows
Configurar Active Directory para la delegación
La delegación se debe habilitar en todos los equipos con
credenciales de delegación. Se puede configurar en las herramientas de Active
Directory.
Para obtener más información, visite los siguientes
sitios Web de Microsoft:
El proceso de IIS principal, InetInfo.exe, es un servicio que se
ejecuta en la cuenta LocalSystem y hace lo siguiente:
- Acepta la solicitud del cliente.
- Suplanta al usuario.
- Realiza las tareas adecuadas.
- Revierte a la identidad del proceso. Se trata de LocalSystem
Si ejecuta InetInfo.exe en una cuenta diferente de LocalSystem,
debe comprobar que puede actuar como delegada. En este caso, no configure el
equipo para delegación.
Solución de problemas
- Si el nombre del servidor Web que se usa en la dirección
URL para llamar a la página ASP.NET no es el mismo nombre NetBIOS del equipo
IIS, la autenticación integrada puede provocar el error 401.3. Para resolver
este problema, registre un nuevo nombre de servicio principal para el equipo
con la utilidad SetSPN.exe.
Para obtener más información al respecto, haga clic en el
número de artículo siguiente para verlo en Microsoft Knowledge Base:
294382
(http://support.microsoft.com/kb/294382/
)
La autenticación puede dar el error "401.3" si el "Encabezado de host" del sitio Web se diferencia del nombre NetBIOS del servidor
- Kerberos no funciona en una arquitectura con carga
equilibrada e IIS vuelve a la autenticación NTLM Puesto que no puede usar NTLM
para la delegación, cualquier aplicación o servicio que la requiera no
funcionará.
Para obtener
más información al respecto, haga clic en el número de artículo siguiente
para verlo en Microsoft Knowledge Base:
325608
(http://support.microsoft.com/kb/325608/
)
No funciona la delegación de la autenticación mediante Kerberos en las arquitecturas con carga equilibrada
- Para que Kerberos funcione correctamente, debe usar nombres
de dominio completo (FQDN) para toda la comunicación.
- Cuando usa Internet Explorer en un cliente Windows 2000 y
busca un sitio Web donde el nombre del encabezado del host es diferente del
nombre NetBIOS del equipo, la autenticación integrada puede dar el error
401.3. Observe que los clientes de Internet Explorer que usan Windows NT 4,
Windows 98 o Windows 95 no darán ese error. Además, los demás esquemas de
autenticación funcionarán.
- Si el servidor Web usa un nombre de dominio completo, debe
agregar el sitio a la lista de sitios de intranet en Internet Explorer. Para
comprobar que el servidor Web usa un nombre de dominio completo, siga estos
pasos:
- Inicie Internet Explorer.
- En el menú Herramientas, haga clic en
Opciones de Internet y, después, en la ficha
Seguridad.
- Haga clic para activar Intranet local.
Haga clic en Sitios.
- Haga clic en Avanzadas y escriba la
dirección Web en el cuadro de diálogo Agregar este sitio Web a la
zona. Haga clic en Agregar y en
Aceptar.
- Si el cliente de Internet Explorer está establecido para
utilizar un servidor proxy, debe activar la casilla de verificación No
usar servidor proxy para direcciones locales. Para comprobar que el
cliente de Internet Explorer está configurado para usar un servidor proxy, se
siguen estos pasos:
- Inicie Internet Explorer.
- En el menú Herramientas, haga clic en
Opciones de Internet y, a continuación, haga clic en la ficha
Conexiones.
- Haga clic en Configuración LAN. En
Servidor proxy, compruebe que la casilla de verificación No usar
servidor proxy para direcciones locales está activada.
- Si desea tener acceso a SQL Server desde la aplicación
conectada con ASP.NET, debe usar TCP/IP. Canalizaciones con nombre no admiten
la delegación de Kerberos. Las canalizaciones con nombre sólo usan NTLM. Para
ello, agregue el atributo siguiente a la cadena de
conexión:<Code>"Network Library =dbmssocn"</Code> Si no establece
explícitamente la biblioteca de red, NTLM toma la primera biblioteca
configurada en la utilidad de configuración del cliente (Cliconfg.exe). Esto,
de forma predeterminada, cambia de las canalizaciones con nombre a TCP/IP en
Microsoft Data Access Components (MDAC) 2.6.
Para obtener más información al respecto, haga clic en
los números de artículo siguientes para verlos en Microsoft Knowledge Base: 315159
(http://support.microsoft.com/kb/315159/
)
ERROR: No funcionan las canalizaciones con nombre cuando el proceso de trabajo se ejecuta bajo la cuenta ASPNET
176377
(http://support.microsoft.com/kb/176377/
)
Acceso a SQL Server con seguridad integrada desde ASP
176379
(http://support.microsoft.com/kb/176379/
)
Cómo configurar IIS y SQL Server en equipos diferentes con una conexión de confianza
247931
(http://support.microsoft.com/kb/247931/
)
Métodos de autenticación para las conexiones a SQL Server en páginas Active Server
Para obtener más información acerca de cómo diseñar
aplicaciones basadas en Web más seguras y escenarios de delegación, visite
los siguientes sitios Web de Microsoft Developer Network (MSDN):
Para obtener más información acerca cómo diseñar aplicaciones
basadas en Web seguras, vea lo siguiente (en inglés):
Designing Secure Web-Based Applications"
Microsoft Press
Michael Howard, Marc Levy, and Richard Waymire
ISBN 0-7356-0995-0
Id. de artículo: 810572 - Última revisión: martes, 04 de diciembre de 2007 - Versión: 8.6
La información de este artículo se refiere a:
- Microsoft ASP.NET 1.1
- Microsoft ASP.NET 1.0
- Microsoft Internet Information Services 5.0
- Servicios de Microsoft Internet Information Server 6.0
| kbauthentication kbwebforms kbdomain kbclient kbconfig kbwebserver kbhowtomaster kbhowto KB810572 |