Cómo tener acceso a archivos de red desde las aplicaciones de IIS


Se recomienda encarecidamente a todos los usuarios que actualicen a la versión 7.0 de Microsoft Internet Information Services (IIS) que se ejecuta en Microsoft Windows Server 2008. IIS 7.0 aumenta considerablemente la seguridad de la infraestructura Web. Para obtener más información acerca de temas relacionados con la seguridad IIS, visite el siguiente sitio Web de Microsoft:Para obtener más información acerca de IIS 7.0, visite el siguiente sitio Web de Microsoft:

EN ESTA TAREA

Resumen


Este artículo proporciona información acerca de los problemas con el acceso a archivos en un equipo que no sea el servidor de servicios de Internet Information Server (IIS) desde una extensión de Internet Server API (ISAPI), página de páginas Active Server (ASP) o Common Gateway Interface (CGI) aplicación. Este artículo enumeran algunos de los problemas implicados y algunos métodos posibles para hacer este trabajo.

Aunque este artículo está escrito principalmente en el contexto del acceso a archivos en recursos compartidos de red, los mismos conceptos se aplican a las conexiones de canalización con nombre también. Canalizaciones con nombre se utilizan con frecuencia para las conexiones de SQL Server y también para la llamada a procedimiento remoto (RPC) y las comunicaciones de modelo de objetos componentes (COM). En particular, si se conecta a un SQL Server a través de la red que está configurada para usar seguridad integrada de Microsoft Windows NT, no puede conectarse debido a los problemas que se describen en este artículo. COM y RPC también pueden utilizar otros mecanismos de comunicación que tienen esquemas de autenticación de red similares. Por lo tanto, pueden aplicar los conceptos de este artículo a una gran variedad de mecanismos de comunicación de red que se pueden utilizar desde las aplicaciones de IIS.


Tipos de autenticación y suplantación

Cuando una solicitud HTTP de servicios de IIS, IIS realiza la suplantación para que el acceso a los recursos para atender la solicitud adecuadamente es limitado. El contexto de seguridad suplantado se basa en el tipo de autenticación que se realiza la solicitud. Los cinco tipos diferentes de autenticación disponibles desde IIS 4.0 son:



Authentication Type Impersonation Type

Anonymous Access (no authentication) Network
Auto Password Synchronization is
ON (ON=default)

Anonymous Access (no authentication) IIS Clear Text
Auto Password Synchronization is OFF

Basic Authentication IIS Clear Text

NT Challenge/Response Authentication Network

Client SSL Certificate Mapping Interactive

Tipos de token

O no se permite el acceso a recursos de red depende del tipo de símbolo (token) de suplantación bajo el cual se está procesando la solicitud.
  • Tokens de red "No" se permiten tener acceso a recursos de red. (Red tokens se denominan así porque tradicionalmente se crea este tipo de símbolo (token) por un servidor cuando un usuario se autentica a través de la red. Para permitir que el servidor utiliza una red token actúe como un cliente de la red y tener acceso a otro servidor se denomina "delegación" y se considera un agujero de seguridad.)
  • Tradicionalmente se utilizan tokens interactivos cuando se autentica un usuario local en el equipo. Tokens interactivos pueden tener acceso a recursos a través de la red.
  • Símbolos (token) de proceso por lotes está diseñados para proporcionar un contexto de seguridad bajo las cuales se ejecutan los trabajos por lotes. Símbolos (token) de proceso por lotes tiene acceso a la red.
IIS tiene el concepto de un inicio de sesión de Texto sin cifrar . Inicio de sesión de Texto sin cifrar se denomina así debido al hecho de que IIS tiene acceso en el nombre de usuario y la contraseña en texto sin cifrar. Puede controlar si un inicio de sesión de Texto sin cifrar crea un símbolo (token) de red, un símbolo interactivo o un símbolo (token) de proceso por lotes estableciendo la propiedad LogonMethod en la metabase. De forma predeterminada, los inicios de sesión de Texto sin cifrar reciben un token interactivo y tengan acceso a recursos de red. El LogonMethod puede configurarse en el servidor, el sitio, directorio virtual, el directorio o el nivel de archivo.


Acceso anónimo suplanta la cuenta configurada como el usuario anónimo para la solicitud. De forma predeterminada, IIS tiene una cuenta de usuario anónimo único llamada IUSR_ < nombreEquipo > suplantado al tratar una solicitud no autenticados. De forma predeterminada IIS 4.0 tiene una característica configurable denominada "Habilitar sincronización automática de contraseñas" que utiliza un subautoridad de seguridad para crear el token. Los tokens creados de esta manera son símbolos (tokens) de red que "No" tener acceso a otros equipos de la red. Si deshabilita la sincronización automática de contraseñas, IIS crea el símbolo (token) de la misma manera que el inicio de sesión de Texto sin cifrar mencionado anteriormente. Sincronización automática de contraseñas sólo está disponible para las cuentas que se encuentran en el mismo equipo que IIS. Por lo tanto, si cambia la cuenta anónima a una cuenta de dominio, no puede utilizar la sincronización automática de contraseñas y recibirá un inicio de sesión de Texto sin cifrar . La excepción es si instala IIS en el controlador principal de dominio. En este caso, las cuentas de dominio están en el equipo local. La cuenta anónima y la opción de sincronización automática de contraseñas pueden configurarse en el servidor, el sitio, directorio virtual, el directorio o el nivel de archivo.

Debe tener el tipo correcto de símbolo (token) como el primer paso para tener acceso a un recurso de la red. También debe suplantar una cuenta que tenga acceso al recurso a través de la red. De forma predeterminada, la cuenta IUSR_ < nombreEquipo > que IIS crea para peticiones anónimas sólo existe en el equipo local. Incluso si deshabilita la sincronización automática de contraseñas para que pueda obtener un curso interactivo de símbolo (token) que puede tener acceso a recursos de red, la cuenta IUSR_ < nombreEquipo > normalmente no tiene acceso a la mayoría de los recursos de red porque se trata de una cuenta que sea no se reconoce en otros equipos. Si desea tener acceso a recursos de red con solicitudes anónimas, debe reemplazar la cuenta predeterminada con una cuenta en un dominio de la red que puede ser reconocida por todos los equipos. Si instala IIS en un controlador de dominio, la cuenta IUSR_ < nombreEquipo > es una cuenta de dominio y debe ser reconocida por otros equipos de la red sin realizar ninguna acción adicional.



Prevención de problemas

Los siguientes son formas de evitar problemas al tener acceso a los recursos de red desde su aplicación de IIS:
  • Mantener los archivos en el equipo local.
  • Algunos métodos de comunicación de red no requieren una comprobación de seguridad. Un ejemplo es utilizar sockets de Windows.
  • Puede proporcionar acceso directo a los recursos de red del equipo mediante la configuración de un directorio virtual para que sea:

    "Un recurso compartido en otro equipo."
    Todo el acceso al equipo que comparte los recursos de red se realiza en el contexto de la persona especificada en el cuadro de diálogo Conectar como... . Esto ocurre independientemente de qué tipo de autenticación se configura para el directorio virtual. Mediante esta opción, todos los archivos en el recurso compartido de red están disponibles en los navegadores que tengan acceso al equipo IIS.
  • Utilice la autenticación básica o autenticación anónima sin sincronización automática de contraseñas.

    De forma predeterminada, la suplantación que Internet Information Server para la autenticación básica proporciona un token que se puede tener acceso a los recursos de la red (a diferencia de desafío/respuesta de Windows NT, que proporciona un token que no tiene acceso a los recursos de la red). Para la autenticación anónima, el testigo sólo puede acceder a un recurso de red si está deshabilitada la sincronización automática de contraseñas. De forma predeterminada, sincronización automática de contraseñas está habilitada cuando se instala Internet Information Server por primera vez. En esta configuración de forma predeterminada, el token de usuario anónimo no puede tener acceso a recursos de red.
    259353 debe introducir contraseña manualmente después de activar la sincronización de contraseña

  • Configure la cuenta anónima como una cuenta de dominio.

    Esto permite las solicitudes anónimas de acceso potencial a recursos a través de la red. Para evitar que todas las solicitudes anónimas de tener acceso a la red, sólo debe realizar la cuenta anónima en los directorios virtuales que requieran específicamente el acceso a una cuenta de dominio.
  • Configure la cuenta anónima con el mismo nombre de usuario y contraseña en el equipo que comparte los recursos de red y, a continuación, desactivar la sincronización automática de contraseñas.

    Si para ello debe asegurarse de que las contraseñas coinciden exactamente. Este método sólo debe utilizarse cuando el "configurar la cuenta anónima como una cuenta de dominio" mencionado anteriormente no una opción por algún motivo.
  • NullSessionShares y NullSessionPipes puede utilizarse para permitir el acceso a un recurso compartido de red específica o a una canalización con nombre cuando la solicitud se controla con un símbolo (token) de red.

    Si tiene un símbolo (token) de red e intenta establecer una conexión con un recurso de red, el sistema operativo intenta establecer una conexión como una conexión no autenticada (denominada "Sesión nula"). Este valor del registro debe realizarse en el equipo que comparte los recursos de red, no en el equipo IIS. Si intenta obtener acceso a un NullSessionShare o NullSessionPipe con un token de fuera de la red, se utiliza la autenticación de Microsoft Windows típica y acceso al recurso se basa en los derechos de usuario de la cuenta del usuario suplantado.
  • Potencialmente puede realizar su propia representación para crear un token de subproceso que tiene acceso a la red.

    La función LogonUser y la función ImpersonateLoggedOnUser pueden utilizarse para suplantar una cuenta diferente. Esto requiere que tenga el nombre de texto sin cifrar y contraseña de otra cuenta disponible al código. LogonUser también requiere que la cuenta que llama a LogonUser tiene el privilegio "Actuar como parte del sistema operativo" en el Administrador de usuarios. De forma predeterminada, la mayoría de los usuarios que IIS suplanta mientras controla una solicitud HTTP no tienen este derecho de usuario. Sin embargo, para "En aplicaciones de proceso" hay una serie de maneras de hacer que el contexto de seguridad actual cambiar a la cuenta LocalSystem, que tiene las credenciales administrativas "Actuar como parte del sistema operativo". Para archivos DLL de ISAPI que se ejecutan en proceso, la mejor forma de cambiar el contexto de seguridad creados por IIS a la cuenta LocalSystem es llamar a la
    Función RevertToSelf . Si está ejecutando la aplicación de IIS "fuera de proceso", este mecanismo no funciona de forma predeterminada porque el proceso se ejecuta bajo la cuenta IWAM_ < nombreEquipo > y no la cuenta de sistema Local. De forma predeterminada, el IWAM_ < nombreEquipo > "No" tiene las credenciales administrativas "Actuar como parte del sistema operativo".
  • Agregue el componente al que se llama desde la página ASP a un paquete de servidor de Microsoft Transaction Server (MTS) o aplicaciones de servidor COM + y, a continuación, especifique un usuario específico como la identidad del paquete.

    Nota: El componente se ejecuta en un archivo .exe independiente que está fuera de IIS.
  • Con la autenticación de basic/borrar texto, se recomienda que cifre los datos mediante SSL porque es muy fácil de obtener las credenciales de una traza de red. Para obtener más información acerca de cómo instalar SSL, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

    228991 cómo crear e instalar un certificado SSL en Internet Information Server 4.0

Nota: No olvide que puede impedir el acceso de red para las solicitudes anónimas donde está deshabilitada la sincronización de contraseña y las solicitudes se autentican mediante la autenticación básica (Texto sin cifrar los inicios de sesión) si establece la propiedad de la metabase LogonMethod a "2" (que indica que un inicio de sesión de red se utiliza para crear el token de suplantación). Con esta configuración, la única manera de solicitudes evitar la limitación de símbolo (token) de la red consiste en conectar a NullSessionShares o NullSessionPipes.


No utilice letras de unidad asignadas a recursos compartidos de red. No sólo hay sólo 26 letras de unidad posibles para seleccionar de, pero si intenta utilizar una letra de unidad asignada en un contexto de seguridad distinto, pueden producirse problemas. En su lugar, siempre debe utilizar nombres de convención de nomenclatura universal (UNC, Universal Naming Convention) para tener acceso a los recursos. El formato debe ser similar al siguiente:

\\MyServer\filesharename\directoryname\filename
Para obtener más información acerca del uso de UNC, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

280383 las recomendaciones de seguridad de IIS cuando se utiliza un recurso compartido UNC

La información de este artículo se aplica únicamente a Internet Information Server 4.0. En Internet Information Server 5.0 (que se incluye con Windows 2000), hay cambios significativos en los nuevos tipos de autenticación y capacidades. Aunque la mayoría de los conceptos de este artículo se siguen aplicando a IIS 5.0, los detalles sobre los tipos de tokens de suplantación que se generan con determinados esquemas de autenticación en este artículo se aplican estrictamente a IIS 4.0.

319067 cómo ejecutar aplicaciones no en el contexto de la cuenta del sistema

Si no puede determinar qué tipo de inicio de sesión que se está produciendo en el servidor IIS para controlar las solicitudes, puede activar la auditoría de inicios de sesión y cierres de sesión. Siga estos pasos:


  1. Haga clic en Inicio, haga clic en configuración, haga clic en Panel de Control, haga clic en Herramientas administrativasy, a continuación, haga clic en Directiva de seguridad Local.
  2. Después de abrir la directiva de seguridad Local, en el panel izquierdo de la vista de árbol, haga clic en Configuración de seguridad, haga clic en Directivas localesy, a continuación, haga clic en Directiva de auditoría.
  3. Haga doble clic en el Suceso de auditoría de inicio de sesión y, a continuación, haga clic en correcto y erróneo. Se agregan entradas de registro de sucesos en el registro de seguridad. Puede determinar el tipo de inicio de sesión examinando los detalles del evento en el tipo de inicio de sesión:

2=Interactive
3=Network
4=Batch
5=Service

Referencias


Para obtener más información acerca de la seguridad de red, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:

Servicio 124184 ejecuta como falla de la cuenta de sistema acceso a red

180362 servicios y unidades redirigidas

319067 cómo ejecutar aplicaciones no en el contexto de la cuenta del sistema

280383 las recomendaciones de seguridad de IIS cuando se utiliza un recurso compartido UNC

259353 debe introducir contraseña manualmente después de activar la sincronización de contraseña