Permisos para conectarse a una base de datos de Access remota desde ASP.NET

En este artículo se presentan los permisos para conectarse a una base de datos de Access remota.

Versión del producto original:   ASP.NET
Número KB original:   307901

Resumen

En este artículo se enumeran las opciones de seguridad mínimas necesarias para conectarse a una base de datos remota de Microsoft Access ASP.NET, incluidos:

  • Windows configuración del sistema de archivos NT (NTFS)
  • Microsoft Internet Information Services (IIS)
  • Configuración de directiva de seguridad local
  • ASP.NET de configuración (Web.config)

En este artículo no se incluye cómo configurar las conexiones de base de datos.

Más información

Cuando los usuarios exploran un ASP.NET web, solicitan que se ejecute algún código en el servidor. Todos los procesos se ejecutan en el contexto de seguridad de una cuenta específica. De forma predeterminada, IIS usa la cuenta del sistema. La cuenta del sistema tiene acceso completo al equipo servidor IIS, pero no puede acceder a carpetas compartidas en otros equipos (que a veces se denominan recursos NTFS). Por lo tanto, debe configurar el equipo IIS para que use una cuenta que no sea la cuenta del sistema. La sección Configurar el servidor IIS describe varias formas de seleccionar una cuenta alternativa.

Una vez que IIS se establece para ejecutarse en otra cuenta, debe conceder a esa cuenta permiso para todos los archivos y carpetas necesarios para usar la base de datos remota de Access, incluidos:

  • Carpeta temp en el servidor IIS.
  • Compartir en el equipo remoto.
  • Permisos del sistema de archivos NTFS para el archivo de base de datos y su carpeta.
  • Acceso al equipo remoto desde la red.
  • Permiso para iniciar sesión en el equipo remoto.

La sección Configurar el servidor de Access describe cómo establecer estos permisos en la cuenta.

Configurar el servidor IIS

En esta sección se describe cómo configurar el servidor IIS.

Usar el Web.config para habilitar la suplantación

Para conectarse a una base de datos de Access remota, ASP.NET debe pasar un token de seguridad para el usuario que suplanta al servidor remoto. Si no habilita la suplantación en el archivo Web.config, ASP.NET la cuenta del sistema de forma predeterminada. Sin embargo, la cuenta del sistema no puede autenticarse en toda la red. Para usar una cuenta diferente, agregue una etiqueta en el archivo <identity impersonate="true" /> Web.config para una aplicación ASP.NET determinada. Por ejemplo:

<configuration>
  <system.web>
     ...
     <identity impersonate="true" />
     ...
  </system.web>
</configuration>

En esta configuración, ASP.NET suplanta al usuario autenticado de IIS.

Usar un método de autenticación para seleccionar una identidad

Use uno de los siguientes métodos de autenticación para seleccionar una identidad:

  • Autenticación anónima
    Puede configurar la cuenta que se va a usar en el Administrador de servicios de Internet. De forma predeterminada, se establece en la cuenta de invitado de Internet o IUSR_ ComputerName. Independientemente de la cuenta que use, si usa una cuenta local (en lugar de una cuenta de dominio), debe seguir los pasos descritos en la sección Replicar las cuentas de usuario locales del equipo IIS.

  • Autenticación básica
    Este método de autenticación requiere que el usuario final escriba un nombre de usuario y una contraseña que se definen en el equipo IIS o en un dominio en el que el equipo IIS confía. Dado que esto permite varios id. de usuario, debe agregar todos esos id. a un grupo. Siempre que este artículo indique conceder permisos al usuario suplantado, conceda esos permisos a este grupo en su lugar.

Si alguna de estas cuentas es una cuenta local en el equipo IIS, debe replicar cada cuenta local en el equipo de Access remoto. Para ello, siga los pasos de la sección Replicar cuentas de usuario locales del equipo IIS.

  • Autenticación de Windows integrada
    Este método de autenticación solo funciona si la red está configurada para usar la autenticación y si los equipos y cuentas están configurados como de confianza Kerberos para la delegación. De lo contrario, no puede usar la autenticación Windows acceso a los datos de un recurso NTFS remoto. Esto se debe a que Windows autenticación integrada solo le permite tener acceso al servidor IIS y no a recursos NTFS adicionales a los que el servidor IIS tiene acceso de forma remota.

  • Web.config configuración
    Use el Web.config para configurar ASP.NET para suplantar una cuenta de dominio específica que tenga los permisos de acceso necesarios en el equipo remoto. De forma predeterminada, IIS se establece para impedir que otros usuarios que vean el sitio web vean el contenido del archivoWeb.config web. Sin embargo, este método requiere que almacene el nombre de usuario y la contraseña en texto sin formato en el servidor.

<configuration>
  <system.web>
     ...
     <identity impersonate="true" userName="<supplied username>" password="<supplied password>" />
     ...
  </system.web>
</configuration>
  • Invalidar autenticación Las instrucciones anteriores usan la etiqueta y los métodos de autenticación para que el código ASP se ejecute como una cuenta de usuario <identity impersonate="true" /> en lugar de la cuenta del sistema. Independientemente de la configuración de suplantación o autenticación, hay otras formas menos comunes de ejecutarse como una cuenta de usuario. En la siguiente lista se describen dos de estos métodos alternativos, aunque los detalles de estos métodos están fuera del ámbito de este artículo.

    • Proceso independiente Puede colocar todas las funciones de acceso a datos en ActiveX biblioteca de vínculos dinámicos (DLL) y colocar esa DLL en Servicios de componentes. A continuación, debe configurar la configuración de Servicios de componentes para ese componente para que se ejecute como su propio proceso (biblioteca de servidores). En la pestaña Identidad de Servicios de componentes, especifique la cuenta de usuario que desea usar.

    • Interfaces de programación de aplicaciones de suplantación Puede crear un archivo DLL ActiveX que use interfaces de programación de aplicaciones (API) para cambiar de la cuenta de usuario que está actualmente en uso a cualquier otra cuenta. A continuación, puede usar la base de datos de Access mientras se ejecuta como este otro usuario.

Configurar El acceso a la carpeta temporal

El motor de base de datos de Microsoft Jet escribe archivos temporales en la carpeta Temp del equipo local (que es el servidor IIS en este caso). Debe establecer los permisos adecuados para esta carpeta Temp.

  • Permisos NTFS Esta configuración requiere que la identidad del usuario (determinada por las instrucciones de suplantación anteriores) tenga permisos de control total NTFS en la carpeta Temp.

  • Variables de entorno TEMP y TMP Es posible que deba definir las variables de entorno TEMP y TMP para el sistema. Si las variables TEMP y TMP no están configuradas en el servidor IIS, el motor Jet intenta escribir estos archivos en la Windows\System32 carpeta. Dado que esto puede no ser aceptable para la mayoría de los sitios web, es común configurar variables TEMP y TMP.

Estas variables a menudo ya están configuradas para usuarios interactivos en el equipo. Sin embargo, como los procesos que se inician desde IIS no tienen acceso a estas variables, es posible que deba configurar variables TEMP y TMP para el sistema. Para configurar variables TEMP y TMP para el sistema, siga estos pasos en Microsoft Windows 2000:

  1. En el equipo IIS, haga clic con el botón secundario en Mi equipo y, a continuación, haga clic en Propiedades.

  2. En la pestaña Avanzadas, haga clic en Variables de entorno.

  3. En Variables del sistema, busque la variable TEMP. Si esta variable no existe, siga estos pasos para agregarla:

    1. En el cuadro de diálogo Variables de entorno, haga clic en Nuevo.
    2. En el cuadro de diálogo Nueva variable del sistema, en el cuadro de texto Nombre de variable, escriba TEMP.
    3. En el cuadro de texto Valor variable, escriba la ubicación de la carpeta Temp en el equipo y, a continuación, haga clic en Aceptar.
  4. Repita los pasos del 3a al 3c para la variable TMP.

Configurar el servidor de Access

En esta sección se describe cómo configurar el servidor de Microsoft Access.

Configurar permisos NTFS

Sin embargo, decide suplantar cuentas dentro de ASP.NET, si el sistema de archivos del equipo remoto es NTFS, debe establecer los permisos en el equipo remoto correctamente. Por ejemplo, debe establecer los siguientes permisos en el archivo de base de datos:

  • Lectura
  • Escritura
  • Ejecutar
  • Cambio

Además, debe establecer los siguientes permisos en la carpeta en la que reside el archivo:

  • Lectura
  • Escritura
  • Ejecutar
  • Eliminar
  • Cambio

Si hay varias cuentas de usuario posibles, como la autenticación básica o implícita, cree un grupo, agregue las cuentas de usuario a este grupo y, a continuación, conceda privilegios al grupo.

Configurar permisos de recurso compartido

Al igual que los permisos del sistema de archivos NTFS, también debe establecer permisos de uso compartido para permitir el acceso al mismo usuario, usuarios o grupo.

Es posible que tenga la tentación de usar los recursos compartidos administrativos, que Windows crea para cada unidad (como la unidad C). Sin embargo, es mejor crear un nuevo recurso compartido porque los recursos compartidos administrativos requieren que agregue todos los usuarios que usan el recurso compartido al grupo Administradores.

Si la base de datos se almacena en una plataforma que no sea una plataforma de Microsoft Windows, debe configurar este recurso compartido correctamente para la plataforma de destino.

Replicar las cuentas de usuario locales del equipo IIS

Para conceder permisos de recurso compartido y NTFS al usuario suplantado, el equipo de Access debe reconocer esa cuenta de usuario. Si la cuenta es una cuenta de dominio, puede agregarla a las listas de permisos en ambos equipos. Si una o varias de las cuentas son una cuenta local en el equipo IIS, no se reconocerá en el equipo de Access. Para resolver este problema, use el mismo nombre de usuario y la misma contraseña para crear una cuenta local duplicada en el equipo de Access.

Configurar permisos de directiva de seguridad local

También debe conceder a la misma cuenta, cuentas o grupo permiso para tener acceso al equipo en la directiva de seguridad local, a menos que la cuenta o cuentas ya pertenezcan a un grupo que tenga permiso (como el grupo Todos). Debe conceder los siguientes permisos:

  • Iniciar sesión localmente
  • Acceso a este equipo desde la red

Para obtener acceso al editor de directivas de seguridad local, siga estos pasos:

  1. En el Panel de control, haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Directiva de seguridad local.
  2. Expanda el nodo Seguridad Configuración, el nodo Directivas locales y el nodo Asignación de derechos de usuario para obtener acceso al permiso Iniciar sesión localmente y obtener acceso a este equipo desde el permiso de red.