Cómo configurar una aplicación ASP.NET para un escenario de delegación

Seleccione idioma Seleccione idioma
Id. de artículo: 810572 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

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 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:
  1. Inicie Internet Explorer. En la barra de menú, haga clic en Herramientas y, después, en Opciones de Internet.
  2. 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.

  3. 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
    .
  4. 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 Internet Explorer no es compatible con la autenticación Kerberos con servidores proxy
    325608 No funciona la delegación de la autenticación mediante Kerberos en las arquitecturas con carga equilibrada
    248350 La autenticación Kerberos no se actualiza desde IIS 4.0 a IIS 5.0
    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:
  1. Haga clic en Inicio y en Ejecutar, escriba inetmgr y haga clic en Aceptar.
  2. Expanda (equipo local) y, después, Sitio Web.
  3. Haga clic con el botón secundario del mouse (ratón) en Sitio Web predeterminado y, a continuación, haga clic en Propiedades.
  4. Haga clic en la ficha Seguridad de directorios y, después, haga clic en Modificar, en Control de autenticación y acceso anónimo.
  5. 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

  1. 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.
  2. En el archivo Web.config, busque la información siguiente en la sección <configuration>:<Code><allow users="*" /><deny users="?" /></Code>
  3. 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>
  4. En la sección <System.web>, agregue el siguiente elemento para la suplantación:<Code><identity impersonate="true" /></Code>
  5. 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 Cómo implementar la representación en una aplicación ASP.NET
    317012 Identidad de proceso y solicitud en ASP.NET
    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:
Permitir que un equipo sea de confianza para la delegación
http://technet2.microsoft.com/windowsserver/en/library/b207ee9c-a055-43f7-b9be-20599b694a311033.mspx
Cuentas de usuario y de equipo
http://technet2.microsoft.com/windowsserver/en/library/91a98c38-38c5-49dc-83bf-e69d8e1dbbfa1033.mspx
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

  1. 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 La autenticación puede dar el error "401.3" si el "Encabezado de host" del sitio Web se diferencia del nombre NetBIOS del servidor
  2. 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 No funciona la delegación de la autenticación mediante Kerberos en las arquitecturas con carga equilibrada
  3. Para que Kerberos funcione correctamente, debe usar nombres de dominio completo (FQDN) para toda la comunicación.
  4. 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.
  5. 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:
    1. Inicie Internet Explorer.
    2. En el menú Herramientas, haga clic en Opciones de Internet y, después, en la ficha Seguridad.
    3. Haga clic para activar Intranet local. Haga clic en Sitios.
    4. 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.
  6. 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:
    1. Inicie Internet Explorer.
    2. En el menú Herramientas, haga clic en Opciones de Internet y, a continuación, haga clic en la ficha Conexiones.
    3. 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.
  7. 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 ERROR: No funcionan las canalizaciones con nombre cuando el proceso de trabajo se ejecuta bajo la cuenta ASPNET
    176377 Acceso a SQL Server con seguridad integrada desde ASP
    176379 Cómo configurar IIS y SQL Server en equipos diferentes con una conexión de confianza
    247931 Métodos de autenticación para las conexiones a SQL Server en páginas Active Server

Referencias

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):
http://msdn2.microsoft.com/en-us/library/aa302415.aspx
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

Propiedades

Id. de artículo: 810572 - Última revisión: martes, 4 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
Palabras clave: 
kbauthentication kbwebforms kbdomain kbclient kbconfig kbwebserver kbhowtomaster kbhowto KB810572

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com