Cómo proteger una aplicación ASP.NET mediante el uso de seguridad de Windows

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

En esta página

Resumen

ASP.NET puede utilizarse junto con Microsoft Internet Information Services (IIS) para autenticar a los usuarios de Web basándose en su Microsoft Windows 2000 o Windows Server 2003 credenciales de cuenta de usuario. También es posible configurar el motor de ejecución de ASP.NET para suplantar a los usuarios de Web o utilizar su propia identidad de Windows cuando tiene acceso a recursos como archivos o bases de datos.


Requisitos

Necesita el siguiente hardware, software y red infraestructura para realizar los procedimientos de este artículo:
  • Windows 2000 Server Service Pack 2
  • IIS 5.0
  • Windows Server 2003 con IIS 6.0
  • Microsoft Internet Explorer 6.0
  • Microsoft Visual Studio .NET
También se necesita experiencia con lo siguiente:
  • Desarrollo de ASP.NET con Visual Basic .NET
  • Administración de IIS
  • Administración de cuentas de usuario de Windows 2000

Cómo desarrollar el sitio Web

En este procedimiento, va a crear un sitio Web de ASP.NET simple aplicación, que se protegerán mediante la autenticación de Windows.
  1. Inicie Visual Studio .NET y, a continuación, cree un nuevo elemento Visual Aplicación Web ASP.NET básica denominada "WindowsSite".
  2. Arrastre un control label desde el cuadro de herramientas hasta el WebForm1.aspx formulario Web y, a continuación, establezca su propiedad ID enauthUserPrincipalLabel.
  3. Arrastre un segundo control label desde el cuadro de herramientas hasta el WebForm1.aspx formulario Web y, a continuación, establezca su propiedad ID enaspPrincipalLabel.
  4. Haga doble clic en WebForm1.aspx para ver la ventana de código y, a continuación, agregue la siguiente instrucción Imports encima de la declaración de clase:
    Imports System.Security
    						
    Agregue el siguiente código al procedimiento de evento Page_Load:
    Dim authUserName As String
    Dim aspUserName As String
    authUserName = User.Identity.Name
    aspUserName = Principal.WindowsIdentity.GetCurrent.Name
    authUserPrincipalLabel.Text = "You are: " & authUserName
    aspPrincipalLabel.Text = "This page runs as: " & aspUserName
    					
  5. Ver el archivo Web.config del proyecto y, a continuación, busque elautenticación elemento. Compruebe que el modo de el atributo tiene un valor de Windows.
  6. Genere y guarde el proyecto.
  7. Ejecute el proyecto y, a continuación, confirme que es la página Muestra el siguiente mensaje:
    • En el Windows 2000
      Son:
      Esta página se ejecuta como: DomainOrServer\ASPNET
    • En el Windows Server 2003
      Son:
      Esta página se ejecuta como: DomainOrServerSERVICIO DE \NETWORK
    Nota No se muestra su nombre de usuario porque no han sido autenticado por IIS; aún está habilitado el acceso anónimo.
  8. Salga de Internet Explorer para detener el proyecto.

Cómo deshabilitar el acceso anónimo

En este procedimiento, va a configurar IIS para solicitar Autenticación integrada de Windows para el sitio WindowsSite.
  1. Minimice Visual Studio y, a continuación, inicie Servicios de Internet Administrador en el grupo de programas Herramientas administrativas.
  2. Expanda el servidor y su sitio Web predeterminado, haga clic en el WindowsSite del sitio y, a continuación, haga clic en Propiedades.
  3. En la ficha Seguridad de directorios en el cuadro de diálogo de Propiedades de WindowsSite , haga clic en el botón Editar en el "acceso anónimo y autenticación de control" sección.
  4. Haga clic para desactivar la Acceso anónimo verificación Compruebe que el Autenticación integrada de Windows verificación casilla está activada y, a continuación, haga clic en Aceptar.
  5. Haga clic en Aceptar para cerrar el cuadro de diálogo Propiedades de WindowsSite .
  6. Volver a Visual Studio y, a continuación, ejecute el proyecto. Confirme que la página se muestra el siguiente mensaje:
    • En el Windows 2000
      Son: El nombre de usuario de Windows
      Esta página se ejecuta como: DomainOrServer\ASPNET
    • En el Windows Server 2003
      Son: El nombre de usuario de Windows
      Esta página se ejecuta como: DomainOrServerSERVICIO DE \NETWORK
    Nota Ha sido autenticado a través de su cuenta de Windows. Si usted había no ha iniciado una sesión en Windows, habría sido pedirá un Windows nombre de usuario y contraseña.
  7. Salga de Internet Explorer para detener el proyecto.

Autorización

En ASP.NET, es posible permitir la autorización para la aplicación al realizar ajustes adicionales disponibles en el archivo Web.config archivo. Puede permitir que determinados usuarios o determinados acceso de grupos a estos adicionales configuración. Los ejemplos siguientes describen esta capacidad. Para permitir el acceso a todos los usuarios que se encuentra en el grupo de Windows NT que se llama "Administradores", utilice el código siguiente:
<configuration>
     <system.web>
       <authorization>
         <allow roles="domainname\Managers" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
Para permitir el acceso sólo a determinados usuarios, utilice el siguiente código:
<configuration>
     <system.web>
       <authorization>
         <allow users="domainname\user1,domainname\user2,domainname\user3" />
         <deny users="*" />
       </authorization>
     </system.web>
   </configuration>
				
Nota Puede hacer referencia a varias funciones o usuarios cuando se utiliza un lista separada por comas.


Cómo habilitar la suplantación

En este procedimiento, va a configurar la aplicación WindowsSite para suplantar al usuario de Windows que tiene acceso a ella.
  1. En Visual Studio, vea el archivo Web.config de la Proyecto WindowsSite.
  2. Agregue el siguiente elemento después de laautenticación elemento:
    <identity impersonate = "true" />
    					
  3. Guarde el archivo Web.config.
  4. Ejecute el proyecto. Confirme que la página se muestra con el mensaje siguiente (tenga en cuenta que el motor de ejecución de ASP.NET utilizará su Credenciales de Windows para tener acceso a recursos en su nombre):
    Son: El nombre de usuario de Windows
    Esta página se ejecuta como: El nombre de usuario de Windows
  5. Salga de Internet Explorer para detener el proyecto.

Cómo asignar a un Principal personalizado

En este procedimiento, va a configurar la aplicación WindowsSite Para utilizar a una entidad de seguridad personalizado:
  1. Inicie la característica de administración de equipos de la Grupo de programas Herramientas administrativa. Crear una nueva cuenta de usuario de Windows 2000 denominado "WindowsSite", con la contraseña "password" (tenga en cuenta si el servidor es un controlador de dominio y, a continuación, utilizar y equipos de usuarios de Active Directory herramienta).
  2. Haga clic para desactivar la Usuario debe cambiar la contraseña en el próximo inicio de sesión casilla de verificación.Nota El objeto principal personalizado que seleccione debe tener los permisos que se describen en el siguiente artículo de Knowledge Base:
    317012 INFO: Proceso y solicitud de identidad en ASP.NET
  3. Cuando se ha creado la cuenta de WindowsSite, cierre la herramienta administrativa que utilizó para crearla.
  4. En Visual Studio, vea el archivo Web.config de la Proyecto WindowsSite.
  5. Editar el identidad elemento a redactado como sigue:
    identity impersonate = "true"
           userName = "DomainOrServerName\WindowsSite"
           password = "password"/>
    
    donde DomainOrServerName corresponde al nombre del de su Windows 2000 o Windows Server dominio de 2003 (en un entorno de dominio) o del equipo (en un entorno de trabajo en grupo).
  6. Guarde el archivo Web.config.
  7. Ejecute el proyecto. Confirme que la página se muestra con el siguiente mensaje:
    Son: El nombre de usuario de Windows
    Esta página se ejecuta como: DomainOrServerName\WindowsSite
    Nota Aspnet_wp.exe utilizará las credenciales de las ventanas que usted Especifica el acceso a los recursos en su nombre.
  8. Salga de Internet Explorer para detener el proyecto.
Nota La identidad del proceso que suplanta a un usuario específico en un subproceso debe tener el Actuar como parte del sistema operativo privilegio.
  • En Windows 2000, por de forma predeterminada, el proceso Aspnet_wp.exe se ejecuta bajo una cuenta de equipo se denomina ASPNET.
  • En Windows Server 2003, de forma predeterminada, ejecuta el proceso Aspnet_wp.exe bajo una cuenta de equipo que se denomina NetworkService. Sin embargo, esta cuenta no tiene los privilegios adecuados para suplantar a un usuario específico. Recibir un mensaje de error si se trata de representar un usuario específico.
Para evitar este problema, utilice uno de estos procedimientos métodos:
  • Conceder el Actuar como parte del sistema operativoprivilegios para la cuenta ASPNET (la cuenta con privilegios mínimos).

    Nota Aunque puede utilizar este método para solucionar el problema Microsoft no recomienda este método.
  • Cambiar la cuenta de que se ejecuta el proceso Aspnet_wp.exe en el sistema de cuenta en la sección de configuración <processModel> del archivo Machine.config.</processModel>
Para obtener más información acerca del proceso ASPNET, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/aa291339 (inglés) .aspx

Solución de problemas

Se puede mejorar aún más la seguridad de Windows en un sitio Web de ASP.NET (y complicada) mediante el uso de NTFS de los permisos de archivos. Si su cuenta de Windows no dispone de permisos para leer una página Web ASP.NET, IIS se le solicita credenciales alternativas a las ventanas. De forma similar, si se trata de una página ASP.NET tener acceso a un archivo de la entidad de seguridad utilizada por el motor de ejecución de ASP.NET no tiene acceso a, se le pedirá las credenciales alternativas. NTFS los permisos son una forma eficaz de controlar el acceso a las subdivisiones de un sitio Web .

Referencias

Para obtener más información acerca de cómo utilizar la autenticación de Windows en un Web de ASP.NET de sitios, vea el tema de "Seguridad" de aplicación Web ASP.NET en el Documentación de.NET Framework.

Además, consulte el artículo "Autenticación en ASP.NET: directrices de seguridad para. NET" en el siguiente sitio Web de MSDN:
http://msdn2.Microsoft.com/en-us/library/ms978378.aspx

Propiedades

Id. de artículo: 315736 - Última revisión: domingo, 28 de abril de 2013 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Servicios de Microsoft Internet Information Server 6.0
Palabras clave: 
kbconfig kbhowtomaster kbinfo kbsecurity kbweb kbmt KB315736 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 315736

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